エンジニアですよ!

頑張れ俺くん、巨匠と呼ばれるその日まで

windowsからvirtualboxで別パーティションのubuntuを起動したいけどできない話

やりたいことは、日本語だと

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

これとか、 Windons7のVirtualBoxでデュアルブート用のraw partitionにあるLinuxを起動させる | @knok blog

にかかれているようなことで、すでに先人が軽々とやってのけたことをやりたいだけなのである。しかしうまくいかない。

状況としては, windowsから見たとき下記のようなパーティションがあり、

PS C:\Users\takhi> Get-Partition


   DiskPath: \\?\scsi#disk&ven_nvme&prod_samsung_mzvlb1t0#5&2ab59ee0&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

PartitionNumber  DriveLetter Offset                                        Size Type
---------------  ----------- ------                                        ---- ----
1                            1048576                                     260 MB System
2                            273678336                                    16 MB Reserved
3                C           290455552                                522.43 GB Basic
6                            561249255424                             426.37 GB Unknown
5                            1019064877056                              3.81 GB Unknown
4                            1023160614912                              1000 MB Recovery

ちなみにUbuntuからWindowsを起動するのはできてる。これは普通にできた。

しかし、今windowsを使いたいときというのは都合により物理windowsでしか使えない(使っても意味がない)ソフトウェアを使いつつubuntuを使いたいからであり、かつ多くの場合はubuntuをメインで使いたくて必要なときしかwindowsを使うことはないため、VMではなく物理パーティションubuntuを起動したいというわけで、逆ができても意味がない。(わかりにくい)

試したこと

シンプルに createrawvmdk -partitions 5,6

boot media が見つからない。だめ

まぁそりゃそのはずで、 物理では UEFI で起動していてそのシステムパーティションは1なのにそれが含まれていないので、起動できるはずがない。という理解であっているのかはよくわかっていない

createrawvmdk -partitions 5,6 で -mbr を渡す

-mbr オプションで MBR を渡すことができるので、Linux を起動してパーティション1 から

dd if=/dev/nvme0p1n1 of=a.mbr bs=512 count=1

で取得した MBR を渡してみる。

が、だめ。

これもそれはそうで、そもそも正常な MBR ではない。

パーティションテーブルを見ても起動フラグがどのパーティションにも立ってないし、というか「Disk Error…(ry」というメッセージが入っておりもはや MBR の体をなしてない。そんなもの食わせたらエラーになるに決まってる

( UEFIハマりポイント - syuu1228's blog を見るとUEFIブートなので、MBRパーティションテーブルでブートフラグが立っていないのは正しそうである)

createrawvmdk -partitions 1,5,6

UEFI のシステムパーティションを含めてみた形

Virtual Linux envirionments using real partitions for dual boot system にはそのように書いてある

no bootable mediumでだめ

UEFI有効にして起動すると、 required disk isn't connected or cannot access 的なエラーでリカバリー画面になる

createrawvmdk でパーティションを指定しない

安全のためパーティションを指定して起動しようとしていたが、もはやわからないのでパーティションを指定しなければいいのでは?

UEFI は grub2 を起動していて ubuntuwindows かいつも選択して起動しているので、起動画面が出れば ubuntu を指定して起動できるだろう?

と思ったけどもちろん(?)だめ

これもエラーが発生してリカバリが必要です、な画面になる。

同じだけどログ的には書き込みが権限エラーになっている様子。まぁそりゃそうだろう。というかエラーで済んで良かったという。

あとどうするか?

How to Run an Existing Linux Partition in VirtualBox - YouTube

これはあまりに古めかしいが、内容的には起動ディスクを別途作って起動するのはありえそうではある。

WindowsのVirtualboxで物理ディスクのLinuxを起動しようとしたら失敗した話 | ゲームの小ネタメモ帳 > スポンサー広告 > Linux

この方はparition5がespと書いてるように、UEFI で起動するならやはりシステムパーティションはもう1つ?必要か?

はたまた grub-install とかして MBR で起動できるようにすればいいのか…

とか考えてるけどわからん😇