物理SSD から取り出した約120GB の disk image を、仮想マシンの仮想ディスク内から実 PC の HDD に copy すると md5sum が変わっていた。この原因は、rw で loopback mount した際に何かが書き換わってしまった為と考えられる。もう一度 scp で取り出して比較すると、同一の値となった。
hiro20180901.hatenablog.com
Windows10 側で作業する前に、取り出した disk image がまともなのか確認する為に、仮想 Ubuntu 内で仮想マシンを動作させて、disk image が正常なのかどうかを確認してみた。
vboxmanage で disk image を 仮想ディスクへ変換 (vhd) ... 失敗
後で Windows10上に持っていく事を考えて、Virtualbox 標準の vdi ではなく、Hyper-V の vhd 仮想ディスクへ変換した。
$ sudo vboxmanage convertfromraw /mnt/datahdd/sdb.img /mnt/datahdd/debian.vhd --format VHD Converting from raw image file="/mnt/datahdd/sdb.img" to file="/mnt/datahdd/debian.vhd"... Creating dynamic image with size 128035676160 bytes (122105MB)... VBoxManage: error: Failed to write to disk image "/mnt/datahdd/debian.vhd": VERR_INVALID_PARAMETER
vboxmanage では仮想 Ubuntu でも error が発生する。
qemu-img で disk image を仮想ディスクへ変換 (vhd)
qemu-img でも同様に変換してみた。
$ sudo apt install qemu $ sudo qemu-img convert -f raw -O vpc /mnt/datahdd/sdb.img /mnt/datahdd/debian.vhd
こちらはOK。
qemu-system-x86_64 で仮想マシン起動
仮想 Ubuntu 内では Intel VT-x 有効じゃないので、 Virtualbox では Debian64 は起動できなかった。Hyper-V の中なのでしょうがない。Nest させたらいけるかな?
qemu-system-x86_64 で仮想マシンを起動させてみた。
$ qemu-system-x86_64 -m 1024 /mnt/datahdd/debian.vhd
無事、問題なく起動した。流石に二重に仮想化されているので、CLI とはいえモッサリした動作だった。
結果
仮想 Ubuntu の中で、以下の事が出来ることを確認した。
- 物理SSD から取り出した仮想ディスク (raw) を qemu-img で vhd に変換できた。vboxmanage では error で変換できず。
- 変換後の vhd を使って、qemu (x86_64) で仮想マシンを起動できた。Hyper-V 内の仮想 Ubuntu では Intel VT-x 無効なので Virtualbox で Debian64 は起動できず。
- 軽く使ってみた感じでは問題なく動作していた。
これまでの作業で、色々と遠回りはしたが、
- Hyper-V Path through 物理 SSD に Debian64 をinstall し、
- 仮想マシンでも実 PC でも起動でき、
- 仮想マシンの Ubuntu の dd で Path through 物理 SSD の中身を取り出し
- disk image を raw -> vhd に qemu-image で変換し、
- qemu から仮想マシンを起動する
という所まで確認出来た。
取り出した仮想ディスクが使用できる事が分かったので、次は主目的の Windows10 Hyper-V で起動できるかどうかを試してみる。