上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

いやまぁうちの環境の問題で死んだので普通ならうまくいくんですが
(実際カーネルは起動してsystemdも動いてた。まぁ原因は後ほど)

参考
Windows 上の VirtualBox で実パーティション上の Linux を起動する:中年の主張:So-netブログ

参考先はBIOS&MBRで少しトリッキーなことをやっているがUEFIなら少し楽だと思われる。

環境
ディスク構成は
disk 0のpartition 5,6を使用
partition 5はespで/EFI/BOOT/bootx64.eflがgummibootになってる。
6はLinuxのrootfs。
diskとかpartitionの番号はdiskpartっていうコマンド使えば確認できます
Windons7のVirtualBoxでデュアルブート用のraw partitionにあるLinuxを起動させる | @knok blog

なぜgummibootかというと(grubでもいいが)、VirtualboxのUEFIのNVRAMはシャットダウンするたびに消えるのでefibootmgrでUEFIエントリを登録しても意味が無いっぽいため。
その状態でvmlinuzを直接叩くとrootfsがどれかわからなくなってpanicしてしまう。
(まぁカーネル引数でroot=を指定して自分でビルドしてもいいけども)
そこでgummibootのconfigでrootを指定しようというわけです。
で、Virtualboxは/EFI/BOOT/bootx64.efiを叩くのでgummibootのefiを適当に配置する

呪文
> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename "C:\VirtualBox VMs"\arch.vmdk -rawdisk \\.\PHYSICALDRIVE0 -partitions 5,6

"-rawdisk \\.\PHYSICALDRIVE0"で物理ディスクの0番を指定、"-partitions 5,6"で5,6番目のパーティションのみって感じだと思う。
これは管理者権限のcmdで実行しないとVERR_ACCESS_DENIEDと怒られる。

ディスクを用意したらVirtualboxをまた管理者権限で起動してVM作成してディスクを選択する
(管理者権限でないとディスクが選べずまたVERR_ACCESS_DENIEDされる)

で"設定-システム-マザーボード-EFIを有効化"のチェックを入れて起動。

めでたしめでたし

でなんで動かなかったかというとfstabでWindowsのパーティションをマウントするように設定してたのにvmdkからはそのパーティションを見えないようにしてたから。
Windowsが起動した状態でLinuxからWindowsのパーティション触らせるのは危険だから抜いたんだけど、普通にLinuxを起動するときはマウントしておきたくてfstabに書いておいたのを忘れてた。

fstabから削除すれば動くと思うけどLinux起動して生活する時間のほうが長いしそこまでしてWinからLinux使えなくてもいいやという判断。
スポンサーサイト

Thoughts on スポンサーサイトWindowsのVirtualboxで物理ディスクのLinuxを起動しようとしたら失敗した話

Leave a Reply

* 16文字以内
* 24文字以内
* 16文字以内
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。