Copiei meu sistema de arquivos raiz ext4 (em /dev/nvme0n1p6
) para um novo sistema de arquivos btrfs em /dev/nvme1n1p2
.
Há muitos guias me ensinando como fazer chroot no novo sistema de arquivos e fazer com que o GRUB o considere a partição primária, mas isso é um salto e tanto! Quero ter certeza de que minha configuração atual funciona até saber que posso inicializar na nova.
Quero manter o sistema de arquivos antigo como entrada principal de boot e ter o novo como secundário. Já consegui que este grub inicializasse duas partições Linux diferentes E duas partições Windows antes, então isso não parece ser algo que possa ser desfeito.
Se eu executar update-grub
(com o novo sistema de arquivos montado), ele me dará uma entrada de boot para o novo sistema em grub.cfg, mas está obviamente errado:
menuentry 'Linux Mint 22 Xfce (on /dev/nvme1n1p2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-6.8.0-58-generic--0d9f074e-f0b5-4418-8831-a6b1d96479b1' {
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root 0d9f074e-f0b5-4418-8831-a6b1d96479b1
linux /boot/vmlinuz-6.8.0-58-generic root=UUID=42be809f-0321-4fee-bc70-b3ac34ef0adc ro quiet splash
initrd /boot/initrd.img-6.8.0-58-generic
}
0d9f074e-f0b5-4418-8831-a6b1d96479b1
é o UUID correto para a partição. 42be809f-0321-4fee-bc70-b3ac34ef0adc
é o UUID da partição original (aquela da qual estou executando no momento).
Tenho ( quase ) certeza de que o Grub realmente pode inicializar em uma partição BTRFS (vi o conselho do SE de que /boot deveria ser uma partição separada, mas nenhuma delas é dos últimos 5 anos), mas o que me chama a atenção é que essa configuração não dá nenhuma indicação do subvolume btrfs que tem meu fs raiz.
Qual é o formato correto de um btrfs grub.cfg?
Como acontece com tanta frequência, quase assim que posto, encontro uma resposta. Esta veio do Reddit, mas, de alguma forma, perdi o histórico do navegador...
Eu estava certo de que os UUIDs estavam errados, mas a chave é:
Ou seja, coloque
/@
(ou qualquer que seja o seu subvolume "root" — mas "@" é o padrão de fato) antes dos nomes dos caminhos erootflags=subvol=@
nas opções de inicialização. E faça com que ambos os UUIDs correspondam ao UUID do sistema de arquivos btrfs.