Aventura: O mesmo sistema rodando em máquina virtual e dual boot

Pegue um cafezinho para acompanhar essa história interessante!

Tenho em meu ssd antigo uma partição com o debian instalado. Usei ele de 2017 a 2020 e serve mais como sistema de backup para qualquer eventualidade. Felizmente não precisei usá-lo nos últimos meses e ele estava pegando poeira. Mas porque não colocá-lo virtualizado E também como sistema de inicialização?

A ideia é simples: Usar a partição física como disco no virt-manager, assim a partição ficará disponível virtualmente.

O principal problema: é que não tem como virtualizar a partição efi do sistema, pois ela fica atualmente montada na minha instalação. Mas isso pode ser contornado adicionando um disco à máquina virtual que servirá apenas como partição efi. Não uso MBR nem na máquina virtual por me negar a usar uma tecnologia de 50 anos atrás.

Como:
O primeiro passo é criar uma máquina virtual (ou modificar uma já existente que foi a minha opção) com um pequeno disco. Para não precisar de um cd de instalação, eu montei o disco “qcow” em um dispositivo nbd, particionei o disco com apenas uma partição efi, e criei um sistema de arquivos fat32. Copiei então o conteúdo atual da partição /boot/efi/EFI/debian para o disco virtual.

Depois é necessário adicionar um dispositivo de bloco como disco virtual. Minha máquina virtual ficou então:

/dev/sda -> disco qcow com 120MB
    /dev/sda1 -> partição efi
/dev/sdb -> disco cd-rom
/dev/sdc -> sistema raiz  = partição baremetal /dev/sda2

Perceba que na máquina virtual o sdc não tem particionamento. Dá pra montar direto do dispositivo de bloco sem problemas!

Inicializei a máquina e pelo shell efi iniciei o grub do disco zero. Batuquei para inicializar pra ver se ia rolar.

A initramfs e o kernel foram carregados, afinal o grub conseguiu achar a partição raiz através do UUID da partição, mesmo que o disco não estivesse particionado. SHOW!

Porém, é claro, caí no modo de manutenção do sistema. Alguns sistema de arquivos não foram achados e por isso a inicialização parou por ali. Coisa simples de resolver: Editei o fstab para não carregar a partição configurada como swap e alterei o UUID da /boot/efi pra a respectiva da nova partição efi virtual.

Reiniciei a máquina virtual e caiu num grub-rescue. Aconteceu que o firmware da máquina virtual acabou carregando o grub que se instalou na MBR do mini disco virtual. Usei então novamente o shell efi para inicializar o grub da partição efi.

O sistema então carregou completamente, iniciando também a interface gráfica. Criei então um nova entrada de boot efi com o efibootmgr e agora o sistema inicializa corretamente sem precisar de intervenção.

Com o sistema funcionando corretamente fiz o dist-upgrade pro debian 11, tudo funcionando legal!!!

Para ficar perfeito, ainda vou mudar o UUID da partição efi do disco virtual ser a mesma que do disco real, assim a inicialização do debian tanto virtual como em dual boot vai ocorrer sem problemas.

5 curtidas

Deleterium = Madlad
Assim que tu conseguir mudar o UUID, dá uma atualizada no tópico :smiley:

2 curtidas

Então, mexi aqui e já tá rodando liso!

Dá pra editar “na mão” o uuid da partição vfat seguindo a segunda resposta desse tópico.

Já fiz a prova de fogo e funcionou perfeitamente tanto com o vídeo “virtio” da máquina virtual quanto como “amdgpu” da máquina real. Parada poderosa! Lembrando que o sistema de backup fica com o /home na partição raiz, afinal é só pra emergência.

3 curtidas