hiroの長い冒険日記

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

Desktop PC 128GB SSD へ Debian install (Hyper-V Pass through disk) その5

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

寄り道が長くなったので、一旦まとめてみた。

簡単な流れ

Hyper-V 環境で仮想マシンと実PCを切り替えて使用する事を試していた。Ubuntu で問題なく成功し、物理SSD <-> 仮想ディスクの入れ替えを試す前に、Debian を物理SSDへ install した所、実PCから起動できなかった。
hiro20180901.hatenablog.com
たぶん、disk の認識順からなぁと予測して調べていた。dmesg を確認すると、実PC には SSD/HDD が複数接続されているので、device name が変わってしまう為だった。
hiro20180901.hatenablog.com
hiro20180901.hatenablog.com
/dev/sda や /dev/sdb ではなく、UUID を使用する事により、Debian でも実PC から問題なく起動する事ができた。installer は /dev/sda で指定してしまうが、update-grub で正常に UUID で設定される。
hiro20180901.hatenablog.com
Hyper-V 仮想マシンの画面上だと capture して png になるので、text として log を取るために、WSL Ubuntu から ssh仮想マシン Ubuntu に接続した。
hiro20180901.hatenablog.com
Hyper-V 仮想マシンの Ubuntu18.04 で実 PC のフォルダを cifs で mount し、dd で disk image を取り出そうとした。が、cifs は不安定で IO error を出すので、scp で Windows10 に渡すようにした。rw loopback mount して中身が書き換わってしまったようで、md5sum が合わずに遠回りした。2回目でOK。
hiro20180901.hatenablog.com
hiro20180901.hatenablog.com
hiro20180901.hatenablog.com
一旦仮想ディスクに dd で取り出した disk image を、仮想 Ubuntu18.04 の中で raw -> vhd に変換し、qemu で起動できる事を確認した。取り出した仮想ディスクは正常だった。そういえば、UUID は変えなくても正常に起動していた。なんでだろう、変わらないのかな? 後で確認してみる。
hiro20180901.hatenablog.com

今回の内容

かなり遠回りしたが、やっと本筋へ戻り、取り出した仮想ディスクが Hyper-V で起動できるかを試してみた。

仮想 Ubuntu -> Windows10 へ disk image vhd をコピー

scp でコピーした。

$ scp username@192.168.n.n:/mnt/datahdd/debian.vhd  ./
$ md5sum -b ./debian.vhd
18d3d7bdfc80894cd1e7def8b01faad8 *./debian.vhd # 仮想 Ubuntu
18d3d7bdfc80894cd1e7def8b01faad8 *./debian.vhd# WSL Ubuntu

OK。同一で問題なし。

Hyper-V 第一世代で仮想ディスク接続し起動

Windows10 に持ってきた vhd 仮想ディスクを使用して、Hyper-V 第一世代の仮想マシンを作成し、起動するか確認してみた...問題なく起動した。

Hyper-V 第二世代で仮想ディスク接続し起動...NG

Hyper-V 第一世代では OK だったので、今度は Hyper-V 第二世代の仮想マシンを作成し、起動するか確認してみた。vhd では Hyper-V 第二世代の仮想マシンを作成できないので、vhdx に変換した。
www.atmarkit.co.jp
その後、vhdx を使用して Hyper-V 第二世代の仮想マシンを作成し、起動するか確認してみた...今度は NG。UEFI が boot record を読み込めずに Microsoft UEFI 画面で停止してしまう。Hyper-V 第一世代では vhdx 仮想ディスクから起動できるので、恐らく GPT形式ではないから読み込めないと推測した。

結果

Hyper-V 第一世代はすんなり起動したが、Path through 物理 SSD の時もそうだったが Hyper-V 第二世代が鬼門。だが、MBR -> GPT 移行時には同じ事を経験する筈なので、ちょうど良いので解決しておく。