Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

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

grub
preseed
linux
Теги: #<Tag:0x00007fedc468d2d8> #<Tag:0x00007fedc468d198> #<Tag:0x00007fedc468cfb8>

(Artur Korobeynyk) #1

Такое дело. Ставлю дебиан в автоматическом режиме на много машин. Использую 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 в тэгах жмакает и может помочь?


(Artur Korobeynyk) #2

Вобщем, решение - не использовать последний 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 ;