Когда я устанавливаю debian использование предварительно отобранного файла, мне смонтировали живую карту с интерфейсом USB как sda1
и твердотельный диск как sdb1
. Таким образом, я устанавливаю MBR на sdb1
. Но то, когда карта с интерфейсом USB является удаленным твердотельным диском, становится sda1
. И /boot/grub/grub.cfg
больше не работает. Я добавил последнюю команду для фиксации этого согласно документации. Это просто и работает, если я выполняю его вручную на машине, но сбои в предварительном семени (после того, как перезапускают файл конфигурации личинки все еще, имеет пути к 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;
Так что не так здесь с точки зрения предварительного семени?
PS: я также попытался сильно генерировать конфигурацию личинки и выполнить конфигурацию в в целевой оболочке, но это перестало работать также:
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';
Решение не состоит в том, чтобы на самом деле использовать личинку последнего обновления, поскольку это восстанавливает конфигурацию к той, которая используется в настоящее время во время установки.
Таким образом, мой шаг перед семенем:
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 ;