Es bestand die Notwendigkeit, den Linux-Betrieb sowohl auf einer virtuellen Maschine (VirtualBox) als auch auf realer Hardware bereitzustellen. Nachdem ich viel gesucht und versucht hatte, Linux von einer virtuellen Festplatte wie Windows aus auszuführen, was entweder zu kompliziert ist oder nicht funktioniert, fand ich eine ziemlich einfache Möglichkeit, dies zu tun. Richtig, nicht von Datenträgern im VHD-Format, sondern von einem Datenträgerpartitions-Image im VMDK-Format.
Linux kann von einem Partitionsimage gebootet werden. Jetzt müssen wir sicherstellen, dass wir sowohl ein Disk-Image haben, das VirtualBox versteht, als auch ein Partitions-Image, das Grub laden kann.
Das Folgende ist, wie es schnell und ohne unnötige Kopfschmerzen gemacht werden kann.
Alles andere wird unter Windows erledigt.
Erstellen Sie eine neue Festplatte mit fester Größe im VMDK-Format:
VBoxManage createmedium disk --format VMDK --variant Fixed --filename test1.vmdk --size 10000
Wir haben die Dateien erstellt:
test1.vmdk
- Datenträgerdeskriptor, Textdateitest1-flat.vmdk
- eine Datei mit einem Disk-Image
Jetzt müssen Sie am Anfang der Festplatte ein weiteres Stück mit einer Größe von 1 MB hinzufügen.
Erstellen Sie eine 1M-Datei test1-boot.vmdk:
fsutil file createnew test1-boot.vmdk 1048576
Wechseln Sie in test1.vmdk createType="custom"
zu createType="monolithicFlat"
. Dies bedeutet, dass die Festplatte aus mehreren Dateien besteht.
Fügen Sie test1-boot.vmdk
in test1.vmdk
erster. Nach dem Hinzufügen test.vmdk
sollte es ungefähr so aussehen:
... createType="monolithicFlat" RW 2048 FLAT "test1-boot.vmdk" 0 RW 20480000 FLAT "test1-flat.vmdk" 0 ...
Dabei 2048
ist 2048 * 512 = 1048576 Byte (1 MB) für diesen Teil der Festplatte.
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, … .
Es sollte beachtet werden, dass Aktualisierungen, die sich auf grub auswirken, in einem System, das auf realer Hardware ausgeführt wird, nicht korrekt ausgeführt werden, da keine Partition mit einem Bootloader vorhanden ist. Dies beeinträchtigt jedoch nicht den normalen Betrieb. Und solche Updates können über VirtualBox angewendet werden.
Das Image test1-flat.vmdk
kann übrigens auf ein Ventoy-Flash-Laufwerk kopiert und von dort ausgeführt werden. Es funktioniert auch.
Und zuletzt. Ventoy kann Linux von vhd booten, erfordert jedoch zusätzliche Manipulationen mit installiertem Linux ( https://www.ventoy.net/en/plugin_vtoyboot.html ). Leider führten diese Manipulationen für mich dazu, dass der Download entweder auf realer Hardware oder in VirtualBox funktioniert. Und hier und da mit einem Bild funktioniert das nicht.