我有一个使用 Xubuntu 焦点的旧版/UEFI 启动棒。一切都很好。现在我正在创建克隆,为此,我对每个都进行了更改:
- 主机名
- 分区的 UUID
- 这些分区的 /etc/fstab 中列出的 UUID。
这些记忆棒不会启动,因为 GRUB 中的 UUID 没有改变,而且我对 GRUB 记录它们的方式感到相当困惑,并且认为自己更新它们太容易出错而无法尝试。
因此,由于我可以将这些棒安装在正在运行的系统上,我想 chroot 进入棒并在 chroot 进程中运行 update-grub。我看到的示例不允许进程访问设备等,我不知道如何正确设置它。我猜我想在 chroot 中访问至少 /dev 和 /sys 和或 /proc。这三个在原始过程中都是“假的”,而不是任何驱动器上文件系统的一部分。
任何指针?是否有不同的方法可以让这些克隆启动?
任何人都知道当 GRUB 进入紧急模式时如何启动它?
嗯。我想我在这个链接找到了答案:https ://docs.rackspace.com/support/how-to/mount-a-partition-and-chroot-into-your-primary-file-system-from-rescue-模式/
它似乎专注于某种服务器集群的细节,但基本看起来是可用的。如果它有效,我会报告。
后来:是的!它工作,稍作调整,并忽略不适用的东西。
简而言之:如果使用 /etc/hostname 和 /etc/fstab 设置它们应该是,(对我来说,这意味着 /etc/fstab 正在使用 UUID 来识别驱动器,并且它们是准确的)然后这应该工作:
确保已完成任何所需的安装。在我的情况下,这意味着将根分区安装在 /mnt 上,将引导分区安装在 /mnt/boot 上。
在 root shell 中,输入代码
你应该在 chroot 环境中。您可以通过将主机名的输出与 /etc/hostname 的内容进行比较来轻松检查。
我在 chroot 中所做的关键事情是“update-grub”,它可以将所有正确的 UUID 放到事物上。然后我立即退出 chroot,而不是担心如何撤消挂载命令,我只是重新启动,并选择了新驱动器。很好。
另一件事是在没有任何其他驱动器的情况下运行该驱动器(我只是断开其他驱动器的电源并执行“partprobe”)并以这种方式运行“update-grub”以获得干净的启动菜单,而没有我使用的系统的工件对于这一切。
我还发现了可能是更好的解决方案。它解决了另一个驱动器上的问题,该驱动器由于某种原因无法运行 update-grub,甚至无法从另一个驱动器运行 grub-install。
在更改分区的 UUID 并针对这些更改更正 /etc/fstab 之后,我启动了一个具有 GRUB 引导救援的拇指驱动器。瞧,它认出了驱动器,并很快重建了一个可用的 grub 配置。之后驱动器启动得很好。