t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как в Debian переконфигурировать grub в late_command string из preseed конфигурации

Теги: #<Tag:0x00007f7489f2d258> #<Tag:0x00007f7489f2cee8> #<Tag:0x00007f7489f2cbf0>

Такое дело. Ставлю дебиан в автоматическом режиме на много машин. Использую preseed файл. Установка с USB. Всё просто, нужна машина - подошел, вставил флэшку, через 10 минут полностью готовый енвайронмент. Но вот с недавних пор на 9-м дебиане начал grub ломаться. Когда вставляю флэшку, она мапится как /dev/sda1, соответственно хард становится /dev/sdb1. После установки вынимаю флэшку и при следующей загрузке хард уже /dev/sda1, но grub при установке конфигурируется на /dev/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;

Не работает.

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;

Тоже не работает.
Команда выполняется, но настройки не сохраняются. Если то же самое делаю руками на машине, то всё работает.
Ну, кто здесь не только jmeter и selenium в тэгах жмакает и может помочь?

Вобщем, решение - не использовать последний update-grub. Так как он восстанавливает конфигурацию которая используется во время инсталяции. Мой пресид шаг выглядит теперь так:

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 ;