无法在永久实时 USB 上更新 grub

无法在永久实时 USB 上更新 grub

我正在尝试更新我的 live usb 上的 grub 但出现以下错误:

ubuntu@ubuntu:~$ sudo update-grub
/usr/sbin/grub-probe: error: failed to get canonical path of `/cow'.

有什么想法吗?我在网上找到的任何东西都没有用。

这是我的挂载点的详细信息:

/cow            872M   62M  766M   8% / 
udev            930M  4.0K  930M   1% /dev
tmpfs           189M  1.1M  188M   1% /run
/dev/sdb1       1.9G  1.9G   31M  99% /cdrom  # <- this is the USB I'm using
/dev/loop0      939M  939M     0 100% /rofs
none            4.0K     0  4.0K   0% /sys/fs/cgroup
tmpfs           942M  4.0K  942M   1% /tmp
none            5.0M     0  5.0M   0% /run/lock
none            942M   76K  942M   1% /run/shm
none            100M   44K  100M   1% /run/user

答案1

你不能update-grub使用具有持久性的 liveUSB。你必须修改配置文件其他运行 Linux 的计算机(或 Windows,如果您对 Cygwin 有良好的命令行知识)。

使用 /cow(在您的设置中,USB 上的 Casper 文件系统被挂载为 /)运行update-grub时,它会尝试更新根分区的 grub 条目,而对于 liveUSB,这实际上并不是 grub 运行的位置。它从 /cow 以外的设备运行,然后更改为 /cow 以供您使用。

表面上,您可以chroot进入/rofs循环设备(循环意味着文件系统位于文字文件中而不是物理磁盘中),因为update-grub在那里运行实际上会更新用于运行 liveUSB 环境的文件的 grub。

不幸的是,这里使用的映像无法更新,因为它是只写安装的(应该是这样!您不希望临时文件系统自行修改)。我建议您尝试使用两个 USB,一个用于实时磁盘,另一个用于安装。确保断开所用计算机的硬盘驱动器,以避免 grub(或更糟的是,您要安装的整个 linux 系统)安装在已经存在的引导加载程序上。

来源:我一直在徒劳地尝试做我想象中你正在尝试做的事情,并且在此过程中学到了很多东西。

相关内容