環境
移行元マシン:
- Windows2003Server
- HP Ml110G7
- 物理ハードディスク2台構成
- 1台の物理ハードディスク(ディスク0)をドライブCとドライブDに分けている
- もう一台の物理ハードディスク(ディスク1)にディスク0のC,DそれぞれソフトウェアRAID(「ディスクの管理」からの「ミラー」)をしていた。
移行先マシン:
- Ubuntu 18.04
- Fujitsu PRIMERGY TX1310 M3。
- VirtualBox
UbuntuのインストールにはUnetbootinを使ってUSBメモリ化したUbuntuを使った。
今回は、物理ディスクをイメージファイル化せず、安直に物理ディスクを移行先マシンに接続してVirtualBoxから使用した。
準備作業
移行元マシンでドライブC、ドライブD共にミラーを解除。ミラー先(ディスク1)の物理HDDを取り外す。
ミラー元(ディスク0)は移行元マシンに戻し、起動を確認し、P2Vトラブル時に備えておく。
TX1310 M3 が BIOSループで起動しない件
- BIOS 設定で、Advanced-Launch CSM を DisabledからEnabledに変更する
- USB Ubuntuブートの時は Boot Legacy & UEFI とする
VirtualBoxの設定
- レポジトリからインストール。
- VirtualBoxを起動。
- 新規仮想マシンを「Windows2003」という名前で作り、ハードディスクを指定せずに終了。
物理ディスクをつなげて、直接読む。
電源を切り、先の「ディスク1」を移行先マシンに接続して起動する。
Ubuntuからは /dev/sdb として認識する。これを VirturlBox から読ませるために、VirtualBoxを利用するユーザに権限を追加する。
$ sudo usermod -aG vboxusers <username>
として権限をつける。ログアウト/ログインするか再起動して反映しておく。
2018/08/09追記:
別マシンで同様に構築した時は、以下もやっておかないとダメでした。Ubuntuのインストール時に「最小インストール」を選択したから?
$ sudo usermod -aG disk <username>
次に、ディスクファイルを作る。
$ mkdir ~/VirtualBoxFiles
$ VBoxManage internalcommands createrawvmdk -filename ~/VirtualBoxFiles/Win2003Server.vmdk -rawdisk /dev/sdb
これを仮想マシンに登録、起動。
ネットワークドライバを登録する
ログインしてネットワークドライバ
https://downloadcenter.intel.com/ja/product/50485
をインストール。
ファイルを別マシンでダウンロードして、USBメモリ経由でゲストOS上に持って行った。
素のVirtualBoxなので、USB2は使えないけれども、この程度のファイルサイズなら支障ない。
ドライバを一通りインストールした後に、ライセンス認証、動作確認して問題なければ実用に。
USB3を使えるようにする
USB3機器のストレージををつなげると、
failed to create a proxy device for the usb device. (error verr_pdm_no_usb_ports)
と出て接続できなかった。
Ubuntu 18.04 には VirtualBox 5.2.10が入っていたので、
https://www.virtualbox.org/wiki/Download_Old_Builds_5_2
こちらから
Oracle_VM_VirtualBox_Extension_Pack-5.2.10.vbox-extpack
をダウンロード、実行する。
細々したTips
Headless で動かす場合はGUI無くてもいいが、今回はエンドユーザーが直接オペレーションするのでGUIを導入。
追加パッケージ
Ubuntu Linux は、Desktop版を使用。管理のために以下のパッケージを追加インストール。
- vim
- ssh
- vino
デスクトップ共有の設定
KVM切替器を使っていて、何らかのトラブルのためにキーボード・マウスが利用できなくなった時があった。Ubuntu自体も17.10からGUI関連のキーボードオペレーションが変わっていて、仮想コンソール呼び出しなどで(?)な挙動をすることがある。Ubuntu18.04のキーボード・マウスの安定性が不安ということもあり、VNCを使えるようにしておく。
設定画面の「共有」-「画面共有」を「オン」にする。
Windows上のVNCクライアントからも接続できるよう、暗号化を解除しておく。
$ sudo gsettings set org.gnome.Vino require-encryption false
または
$ gsettings set org.gnome.Vino require-encryption false
(どちらで行わないといけないかは、未検証)
トラブルシューティング
ログオンできない
今回の物理HDDは250G程度、ドライブCは100G程度と、元々P2V移行をある程度想定して少なめにパーティーションを切っていた。
しかしながら、今後のハンドリングを容易にするために、VirtualBoxのハードディスクとして登録する前の段階でパーティションサイズを変更する作業を行ってみた。
使用ツールはgparted. 80GBytes程度に少なくしようとしたが、エラーで中断。それでもパーティーション自体は小さくなったように見えたのでそれを使って起動。
chkdskらしき画面を経由した後、Windowsのログオンダイアログが出てくるところまでは来た。問題なく回復したように見えたが・・・
WindowsのID/Passwordを使ってログインするときに「ログイン認証の手続きを今すぐ実行しますか?」「はい」、「いいえ」、「キャンセル」というダイアログが出現する。
ここで、いずれを押しても同じダイアログに戻ってしまって進まなくなってしまった。
解決方法
再度移行元マシンにディスク1を接続し、ミラーを取り直して解除、パーティーションサイズの変更は諦め、そのまま接続して起動。無事ログオンできた。
準備時にミラーを削除してしまった
移行元ではWindowsOSによるソフトウェアミラーを構築していたが、ミラーを解除ではなく削除してしまった。改めてミラーを構築しなおした。
ミラーを解除した後ログオンできない
これは上記Windows2003Serverの事例を元に、同様にやってみたときのトラブル。
- ディスク0には、ブート領域とシステム領域(ドライブC)がある。
- ディスク1には、ディスク0のブート領域とシステム領域(ドライブC)それぞれミラーを構築している。
- それぞれ、ミラーを解除。
- その後、VirtualBoxで読むディスクとして使用する前に、移行元マシンでディスク1だけで起動できるかチェック。
- Windows 2012 Server - セカンダリ プレックス
を選択して起動。 - ログオン画面まで到達したが、パスワードを入れると画面が暗転してしまう。
- 電源ボタンを押すとシャットダウンが走るので、フリーズしているのではないが、本来ならばシャットダウンダイアログで止まるはず。GUI関連が全く動いていない模様。
この、ディスク1を使うのをあきらめ、ディスク0を使ってVirtualBoxに読ませることにした。