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.