Como configurar o arquivo preseed para fazer o ponto de configuração do grub na unidade correta

0

Quando eu instalo o debian usando o arquivo preseed, eu tenho um stick USB ao vivo montado como sda1 e ssd drive como sdb1 . Então eu instalei o MBR para sdb1 . Mas quando o pen drive USB é removido, a unidade SSD se torna sda1 . E /boot/grub/grub.cfg não funciona mais. Eu adicionei um comando atrasado para consertar isso de acordo com a documentação. É simples e funciona se eu rodá-lo manualmente na máquina, mas falha no preseed (depois de reiniciar o arquivo de configuração do grub ainda tem caminhos para sdb1 ).

d-i preseed/late_command string \
in-target sed -i 's/root\=\/dev\/sdb1/root\=\/dev\/sda1/g' /boot/grub/grub.cfg; \
in-target update-grub;

Então, o que está errado aqui na perspectiva da pré-configuração?

PS: Eu também tentei gerar com força o grub config e executar a configuração no shell de destino, mas isso também falha:

d-i preseed/late_command string \
in-target grub-mkconfig -o /boot/grub/grub.cfg ; \
sed -i 's/root\=\/dev\/sdb1/root\=\/dev\/sda1/g' /target/boot/grub/grub.cfg; \
in-target bash -c 'update-grub'; 
    
por Artur Korobeynyk 23.04.2018 / 09:11

1 resposta

0

Na verdade, a solução não é usar o último update-grub, pois restaura a configuração para a que está atualmente em uso durante a instalação.

Então, minha etapa preseed é:

d-i preseed/late_command string \
in-target sed -i 's#^\(GRUB_CMDLINE_LINUX_DEFAULT="quiet\)"$# root=/dev/sda1"#' /etc/default/grub \
in-target grub-mkconfig -o /boot/grub/grub.cfg ; \
in-target sed -i 's/root\=\/dev\/sdb1/root\=\/dev\/sda1/g' /boot/grub/grub.cfg ;
    
por Artur Korobeynyk 24.04.2018 / 09:16