(Esta resposta tenta explicar o que está acontecendo e oferece um patch (possível).)
Parece que o código incorreto está em grub-mkconfig_lib
lines 169-182 no Debian atual 9.
O ponto do bug é que a instalação e a inicialização insistem em configurar e usar o UUID para uma parte do processo de inicialização, apesar de não serem informadas pelo sysadmin / configuration.
Possivelmente não conseguir carregar o grub.cfg em conseqüência. por exemplo. está sempre fazendo grub-probe --target=fs_uuid /
em grub-mkconfig_lib
; no nosso caso deve ser grub-probe --target=device /
ou ser específico do código, ele deve usar $fs_hint
e não refazer novamente grub_probe
com fs_uuid
Eu fiz um patch para desabilitar a geração de UUID quando GRUB_DISABLE_LINUX_UUID
está configurado como verdadeiro para o Debian 9. Ele funciona aqui. Por favor, teste-o.
Confirmo novamente que o arquivo incorreto é: /usr/share/grub/grub-mkconfig_lib
Eu escrevi um patch que se GRUB_DISABLE_LINUX_UUID
estiver definido como true
, ele não incluirá a diretiva search
tentando selecionar uma raiz baseada em UUID. O administrador do sistema deve entender as conseqüências de selecionar essa opção ao inserir novos discos.
O patch para /usr/share/grub/grub-mkconfig_lib
foi feito com:
diff -u grub-mkconfig_lib.old grub-mkconfig_lib > grub-mkconfig_lib.patch
e está aqui: link
ou você pode obtê-lo aqui:
e para aplicá-lo:
cd /usr/share/grub
patch -p0 < grub-mkconfig_lib.patch
Basicamente, começando na linha 169, eu adicionei o novo if, e o recuo adequado, para desabilitar a pesquisa da partição raiz para o UUID que substitui a escolha pelo dispositivo se uma partição com um UUID válido for encontrada :
if [ "x${GRUB_DISABLE_LINUX_UUID}" != "xtrue" ] ; then
if fs_uuid="'"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null'" ; then hints="'"${grub_probe}" --device $@ --target=hints_string 2> /dev/null'" || hints= echo "if [ x\$feature_platform_search_hint = xy ]; then" echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}" echo "else" echo " search --no-floppy --fs-uuid --set=root ${fs_uuid}" echo "fi" fi
fi
Eu testei, regenerando a configuração do grub, alterando o UUID e inicializando sem problemas, ao contrário da situação anterior, em que seríamos colocados no grub.
PS: Isso parece não estar restrito ao Debian. Depois de apontar para grub-mkconfig_lib
, encontrei um tópico relacionado sobre fedora