在 preseed Late_command 中重新配置 grub

在 preseed Late_command 中重新配置 grub

当我使用预置文件安装 debian 时,我有一个实时 USB 记忆棒安装为sda1,SSD 驱动器安装为sdb1.所以我将 MBR 安装到sdb1.但是当USB棒被移除时SSD驱动器就变成了sda1。并且/boot/grub/grub.cfg不再起作用了。我添加了一个延迟命令,以便根据文档修复该问题。它很简单,如果我在机器上手动运行它,但预置失败(重新启动后,grub 配置文件仍然有路径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;

那么从 preseed 的角度来看,这里有什么问题呢?

答案1

解决方案实际上是不使用最后一个 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;

相关内容