Il était nécessaire de fournir un fonctionnement Linux à la fois sur une machine virtuelle (VirtualBox) et sur du matériel réel. Après beaucoup de recherches et d'essais d'exécuter Linux à partir d'un VHD comme Windows, ce qui est soit trop compliqué, soit ne fonctionne pas, j'ai trouvé un moyen assez simple de le faire. C'est vrai, pas à partir de disques au format VHD, mais à partir d'une image de partition de disque au format VMDK.
Linux peut être démarré à partir d'une image de partition. Nous devons maintenant nous assurer que nous avons à la fois une image disque que VirtualBox comprend et une image de partition que grub peut charger.
Voici comment cela peut être fait rapidement et sans maux de tête inutiles.
Tout le reste est fait à partir de Windows.
Créez un nouveau disque de taille fixe au format vmdk:
VBoxManage createmedium disk --format VMDK --variant Fixed --filename test1.vmdk --size 10000
Nous avons les fichiers créés:
test1.vmdk
- descripteur de disque, fichier textetest1-flat.vmdk
- un fichier avec une image disque
Vous devez maintenant ajouter un autre morceau de taille 1M au début du disque.
Créez un fichier 1M test1-boot.vmdk:
fsutil file createnew test1-boot.vmdk 1048576
Dans test1.vmdk, passez createType="custom"
à createType="monolithicFlat"
. Cela signifie que le disque se compose de plusieurs fichiers.
Ajoutez test1-boot.vmdk
d' test1.vmdk
abord. Après l'ajout, cela test.vmdk
devrait ressembler à ceci:
... createType="monolithicFlat" RW 2048 FLAT "test1-boot.vmdk" 0 RW 20480000 FLAT "test1-flat.vmdk" 0 ...
où 2048
est 2048 * 512 = 1048576 octets (1M) pour cette partie du disque.
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, … .
Il faut garder à l'esprit que si les mises à jour affectent grub, elles ne seront pas effectuées correctement dans un système fonctionnant sur du matériel réel, car il n'y a pas de partition avec un chargeur de démarrage. Cependant, cela n'interfère pas avec le fonctionnement normal. Et ces mises à jour peuvent être appliquées via VirtualBox.
À propos, l'image test1-flat.vmdk
peut être copiée sur un lecteur flash Ventoy et exécutée à partir de celle-ci, cela fonctionne également.
Et enfin. Ventoy peut démarrer Linux à partir de vhd, mais nécessite des manipulations supplémentaires avec Linux installé ( https://www.ventoy.net/en/plugin_vtoyboot.html ). Mais, malheureusement, pour moi, ces manipulations ont conduit au fait que le téléchargement fonctionne soit sur du matériel réel, soit dans VirtualBox. Et ici et là avec une seule image ne fonctionne pas.