hiroの長い冒険日記

主にコンピュータ周辺の興味を持った内容を綴ります

仮想 Ubuntu 内の仮想マシンで disk image 動作確認

当日記ではアフィリエイト広告を利用しています

物理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-Vvhd 仮想ディスクへ変換した。

$ 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 は起動できず。
  • 軽く使ってみた感じでは問題なく動作していた。

これまでの作業で、色々と遠回りはしたが、

  1. Hyper-V Path through 物理 SSD に Debian64 をinstall し、
  2. 仮想マシンでも実 PC でも起動でき、
  3. 仮想マシンUbuntu の dd で Path through 物理 SSD の中身を取り出し
  4. disk image を raw -> vhdqemu-image で変換し、
  5. qemu から仮想マシンを起動する

という所まで確認出来た。

取り出した仮想ディスクが使用できる事が分かったので、次は主目的の Windows10 Hyper-V で起動できるかどうかを試してみる。