我有几台带有 2 个驱动器的计算机(一个是 ssd,另一个是 hdd)。我已经创建了用于自动部署的预置文件,除了分区部分外,它运行良好。目前它是手动完成的,但即使在这种情况下,grub 在下次启动时也不会工作。
问题是当我从 USB 闪存驱动器启动时,闪存驱动器本身在安装过程中变为 sda 设备,因此我将 grub 放入 SDB 的 MBR(即 SSD 驱动器)。但是在安装完成并移除 USB 驱动器后,SSD 磁盘变为 sda,并且 grub 配置不起作用,因此我必须手动编辑 grub 配置才能从 sda 启动,然后启动进入系统,更改永久 grub 配置文件,更新 grub 以使机器下次可启动。如何处理此类问题?
如何制作预种子:
- 将所有内容放在 SSD 上(它是主驱动器),自动对其进行分区而不创建交换卷,将 grub 放入其中。
- 将硬盘格式化为 ntfs 并挂载。
- 重启后一切都应该正常工作,无需手动调整 grub 配置。
答案1
解决方案实际上是不使用最后的更新 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 ;