Era necesario proporcionar el funcionamiento de Linux tanto en una máquina virtual (VirtualBox) como en hardware real. Después de mucho buscar e intentar ejecutar Linux desde un VHD como Windows, que es demasiado complicado o no funciona, se me ocurrió una forma bastante simple de hacerlo. Es cierto, no de discos en formato VHD, sino de una imagen de partición de disco en formato VMDK.
Linux se puede arrancar desde una imagen de partición. Ahora debemos asegurarnos de tener una imagen de disco que VirtualBox entienda y una imagen de partición que grub pueda cargar.
A continuación se explica cómo se puede hacer de forma rápida y sin dolores de cabeza innecesarios.
Todo lo demás se hace desde Windows.
Cree un nuevo disco de tamaño fijo en formato vmdk:
VBoxManage createmedium disk --format VMDK --variant Fixed --filename test1.vmdk --size 10000
Tenemos los archivos creados:
test1.vmdk
- descriptor de disco, archivo de textotest1-flat.vmdk
- un archivo con una imagen de disco
Ahora necesita agregar una pieza más de 1 M de tamaño al comienzo del disco.
Cree un archivo de 1M test1-boot.vmdk:
fsutil file createnew test1-boot.vmdk 1048576
En test1.vmdk, cambie createType="custom"
a createType="monolithicFlat"
. Esto significará que el disco consta de varios archivos.
Añadir test1-boot.vmdk
en test1.vmdk
primer lugar. Después de agregarlo, test.vmdk
debería verse algo como esto:
... createType="monolithicFlat" RW 2048 FLAT "test1-boot.vmdk" 0 RW 20480000 FLAT "test1-flat.vmdk" 0 ...
donde 2048
es 2048 * 512 = 1048576 bytes (1M) para esta parte del disco.
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, … .
Debe tenerse en cuenta que si las actualizaciones afectan a grub, entonces no se completarán correctamente en un sistema que se ejecuta en hardware real, porque no hay una partición con un gestor de arranque. Sin embargo, esto no interfiere con el funcionamiento normal. Y estas actualizaciones se pueden aplicar a través de VirtualBox.
Por cierto, la imagen test1-flat.vmdk
se puede copiar a una unidad flash Ventoy y ejecutar desde ella, también funciona.
Y por último. Ventoy puede arrancar Linux desde vhd, pero requiere manipulaciones adicionales con Linux instalado ( https://www.ventoy.net/en/plugin_vtoyboot.html ). Pero, desafortunadamente, para mí estas manipulaciones llevaron al hecho de que la descarga funciona en hardware real o en VirtualBox. Y aquí y allá con una imagen no funciona.