Eu criei uma imagem de inicialização de uma variante do Arch Linux para gravar em pendrives USB. Ele usa o grub com valores padrão e funciona bem quando inicializa uma caixa física do USB. (Esta questão não deve ter nada a ver com o Arch embora)
Agora estou tentando usar a mesma imagem com o VirtualBox (em um Mac, se isso importa). Primeiro eu converto (ainda no Linux / Arch):
VBoxManage convertfromraw foo.img foo.vmdk --format VMDK
então eu scp-lo para o Mac e passar pela interface gráfica, selecionando "Linux" / "Other Linux (64-bit)", e o arquivo .vmdk como o disco raiz.
O Grub aparece, mostra as opções corretas, depois os espaços em branco da tela (como deveria), pensa um pouco e depois eu recebo uma versão do "não consigo encontrar o disco raiz":
ERROR: device 'UUID=3d6ee...' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=3d6ee...'.
You are being dropped to a recovery shell.
Nesse shell de recuperação:
# blkid
(nada)
No entanto, se eu selecionar a opção de inicialização do grub "fallback initramfs", ele inicializará bem. Se eu disser então:
# blkid
/dev/sda1: UUID="3d6ee..." TYPE="ext4" PARTUUID="771...-01"
/dev/sda2: UUID="98234..." TYPE="ext4" PARTUUID="771...-02"
que parece me dizer que o UUID que ele não conseguiu encontrar está realmente lá.
Eu tentei GRUB_DISABLE_LINUX_UUID = true em / etc / default / grub ao configurar o grub, mas a mensagem é:
ERROR: device '/dev/mapper/loop1p1' not found. Skipping fsck.
ERROR: Unable to find root device '/dev/mapper/loop1p1'.
(não posso culpá-lo por esse eu acho ...)
Então, por que o initframfs de fallback o encontra, mas o padrão não. Pior, por que blkid não mostra nada?
(Eu publiquei esta questão tanto para as placas de suporte do Arch Linux como do VirtualBox, mas sem respostas até agora.)