Executando Linux a partir de um disco virtual vmdk em hardware real e VirtualBox

Havia a necessidade de fornecer operação Linux tanto em uma máquina virtual (VirtualBox) quanto em hardware real. Depois de muitas pesquisas e tentativas de executar o Linux a partir de um VHD como o Windows, que é muito complicado ou não funciona, descobri uma maneira bastante simples de fazer isso. É verdade, não de discos no formato VHD, mas de uma imagem de partição de disco no formato VMDK.







O Linux pode ser inicializado a partir de uma imagem de partição. Agora precisamos ter certeza de que temos uma imagem de disco que o VirtualBox entende e uma imagem de partição que o grub pode carregar.







Veja a seguir como isso pode ser feito rapidamente e sem dores de cabeça desnecessárias.







Todo o resto é feito no Windows.







Crie um novo disco de tamanho fixo no formato vmdk:







VBoxManage createmedium disk --format VMDK --variant Fixed --filename test1.vmdk --size 10000
      
      





Temos os arquivos criados:







  • test1.vmdk



    - descritor de disco, arquivo de texto
  • test1-flat.vmdk



    - um arquivo com uma imagem de disco


Agora você precisa adicionar mais um pedaço de 1M de tamanho ao início do disco.







Crie um arquivo de 1M test1-boot.vmdk:







fsutil file createnew test1-boot.vmdk 1048576
      
      





Em test1.vmdk, mude createType="custom"



para createType="monolithicFlat"



. Isso significa que o disco consiste em vários arquivos.







Adicionar test1-boot.vmdk



em test1.vmdk



, em primeiro lugar. Depois de adicioná-lo test.vmdk



, ele deve ter a seguinte aparência:







...
createType="monolithicFlat"

RW 2048 FLAT "test1-boot.vmdk" 0
RW 20480000 FLAT "test1-flat.vmdk" 0
...
      
      





onde 2048



é 2048 * 512 = 1048576 bytes (1M) para esta parte do 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, … .







Deve-se ter em mente que se as atualizações afetarem o grub, elas não serão concluídas corretamente em um sistema rodando em hardware real, porque não há partição com um bootloader. No entanto, isso não interfere na operação normal. E essas atualizações podem ser aplicadas através do VirtualBox.







Aliás, a imagem test1-flat.vmdk



pode ser copiada para um flash drive Ventoy, e rodar a partir dele também funciona.







E por fim. Ventoy pode inicializar o linux a partir do vhd, mas requer manipulações adicionais com o Linux instalado ( https://www.ventoy.net/en/plugin_vtoyboot.html ). Mas, infelizmente, para mim essas manipulações levaram ao fato de o download funcionar tanto em hardware real quanto no VirtualBox. E aqui e ali com uma imagem não funciona.








All Articles