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

1

Eu tenho vários computadores com 2 drives (um é ssd, o outro é hdd). Eu criei o arquivo preseed para implantação automatizada que funciona bem, exceto para a parte com o particionamento. Por enquanto é feito manualmente, mas mesmo neste caso o grub não funciona durante a próxima inicialização.

O ponto é quando eu inicializo a partir da unidade flash USB, a unidade flash em si se torna dispositivo sda durante o processo de instalação, então eu coloquei grub para MBR do SDB (que é a unidade SSD). Mas depois que a instalação for concluída e o stick USB for removido, o disco SSD se torna sda e a configuração grub não funciona, então eu tenho que editar manualmente o grub config para poder inicializar a partir de sda, depois inicializar no sistema, alterar o arquivo permanente de configuração do grub, atualize o grub para tornar a máquina inicializável da próxima vez. Qual é a maneira de lidar com esse tipo de problema?

Como fazer preseed:

  1. Coloque tudo no SSD (é a unidade principal), particione-o automaticamente sem criar um volume de troca, coloque o grub nele.
  2. Formate o HDD como ntfs e monte-o.
  3. Tudo deve funcionar após a reinicialização sem ajustes manuais na configuração do grub.
Artur Korobeynyk
fonte
Eu estou tentando no momento fazer as coisas usando o 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; mas este comando falha durante a instalação
Artur Korobeynyk
Eu também tentei: d-i preseed/late_command string sed -i 's/root\=\/dev\/sdb1/root\=\/dev\/sda1/g' /target/boot/grub/grub.cfg; in-target bash -c 'update-grub'; Não funciona
Artur Korobeynyk
Montar / dev / sda1 no initramfs e verificar os arquivos mostra que todos esses arquivos não foram atualizados. Eu também tentei editar o / etc / default / grub com in-target sed -i 's#^\(GRUB_CMDLINE_LINUX_DEFAULT="quiet\)"$#\1 root=/dev/sda1"#' /etc/default/grub
Artur Korobeynyk

Respostas:

0

A solução é, na verdade, 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\)"$#\1 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 ;
Artur Korobeynyk
fonte