仮想マシン(VirtualBox)と実際のハードウェアの両方でLinux操作を提供する必要がありました。複雑すぎるか機能しないWindowsのようなVHDからLinuxを何度も検索して実行しようとした後、私はそれを行うためのかなり簡単な方法を思いつきました。確かに、VHD形式のディスクからではなく、VMDK形式のディスクパーティションイメージからです。
Linuxはパーティションイメージから起動できます。次に、VirtualBoxが理解できるディスクイメージと、grubがロードできるパーティションイメージの両方があることを確認する必要があります。
以下は、不必要な頭痛の種なしに迅速に行う方法です。
それ以外はすべてWindowsから実行されます。
vmdk形式で新しい固定サイズのディスクを作成します。
VBoxManage createmedium disk --format VMDK --variant Fixed --filename test1.vmdk --size 10000
ファイルが作成されました:
test1.vmdk
-ディスク記述子、テキストファイルtest1-flat.vmdk
-ディスクイメージを含むファイル
次に、ディスクの先頭に1Mサイズのピースをもう1つ追加する必要があります。
1Mファイルtest1-boot.vmdkを作成します。
fsutil file createnew test1-boot.vmdk 1048576
test1.vmdkで、に変更createType="custom"
しcreateType="monolithicFlat"
ます。これは、ディスクが複数のファイルで構成されていることを意味します。
最初に追加test1-boot.vmdk
しtest1.vmdk
ます。追加すると、test.vmdk
次のようになります。
... createType="monolithicFlat" RW 2048 FLAT "test1-boot.vmdk" 0 RW 20480000 FLAT "test1-flat.vmdk" 0 ...
ここで、2048
は2048 * 512 = 1048576バイト(1M)で、ディスクのこの部分です。
Linux, test1.vmdk
ubuntu/kubuntu/xubunu. , 18.04 ( ) 21.04, .
: 1M. .
/dev/sda, /dev/sda1. .
, , VirtualBox, , Linux .
Linux . .
( usb-) Ventoy (https://www.ventoy.net/).
ventoy\ventoy_grub.cfg
:
menuentry 'boot linux from vmdk part' { set imgfile="/mydisks/test1-flat.vmdk" set d_label="MYDISK" search --set=root --label ${d_label} loopback loop0 ${imgfile} set root=(loop0) linux /boot/vmlinuz root=/dev/disk/by-label/${d_label} loop=${imgfile} rw nosplash initrd /boot/initrd.img }
:
imgfile="/mydisks/test1-flat.vmdk"
—d_label="MYDISK"
— ,test1-flat.vmdk
, F6 , "boot linux from vmdk part". Linux.
OS, VirtualBox Linux .
, , Windows Linux VirtualBox, … .
更新がgrubに影響を与える場合、ブートローダーを備えたパーティションがないため、実際のハードウェアで実行されているシステムでは更新が正しく完了しないことに注意してください。ただし、これは通常の操作を妨げるものではありません。そして、そのような更新はVirtualBoxを介して適用できます。
ちなみに、画像test1-flat.vmdk
をVentoyフラッシュドライブにコピーして実行することもできます。
そして最後に。VentoyはvhdからLinuxを起動できますが、インストールされているLinux(https://www.ventoy.net/en/plugin_vtoyboot.html)で追加の操作が必要です。しかし、残念ながら、私にとってこれらの操作は、ダウンロードが実際のハードウェアまたはVirtualBoxのいずれかで機能するという事実につながりました。そして、あちこちで1つの画像が機能しません。