无法使用实时 USB 上的参数更新 grub

Nan*_*nne 33 live-usb grub2 12.10

我已经从实时 USB(“尝试 Ubuntu”)启动,它也有一个持久选项集(我使用LiLi创建一个)来为我遇到的这个 pcie 热插拔问题做一些测试。

我正在尝试通过执行此操作来测试一些引导参数(例如在这个问题中

sudo nano /etc/default/grub
sudo update-grub
Run Code Online (Sandbox Code Playgroud)

问题是最后一个命令给了我这个:

/usr/sbin/grub-probe: error: failed to get canonical path of /cow.
Run Code Online (Sandbox Code Playgroud)

根据以下内容,它看起来像是/cow安装在 上的文件系统/

:~# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/cow             4056896 2840204   1007284  74% /
udev             1525912       4   1525908   1% /dev
tmpfs             613768     844    612924   1% /run
....
Run Code Online (Sandbox Code Playgroud)

有没有办法让我运行 update-grub?

nan*_*rad 47

您需要进行一些重新安装和重新映射。

启动 liveCD 后,我们将把 Ubuntu 分区挂载到/mnt

sudo mount /dev/sd*# /mnt
Run Code Online (Sandbox Code Playgroud)

在哪里/dev/sd*#更新到您的 Ubuntu 分区。

如果你有一个单独的/boot分区,我们也需要安装它/mnt/boot

sudo mount /dev/sd*# /mnt/boot
Run Code Online (Sandbox Code Playgroud)

其中/dev/sd*#被更新到您的/boot分区。

如果需要,这应该以足够的访问权限来安装它以获取规范路径,但我们可能不需要这个。

最后,只需使用正确的根目录和目标更新 grub:

sudo grub-install --root-directory=/mnt /dev/sdX
Run Code Online (Sandbox Code Playgroud)

这里/dev/sdX是我们希望GRUB的磁盘(不分区)。

  • 尝试了这个,并得到“尝试将 GRUB 安装到分区磁盘或分区。这是一个坏主意。嵌入是不可能的。只能通过使用阻止列表在此设置中安装 GRUB。但是,阻止列表是不可靠的,它们的使用气馁。”。尝试 --force 使其安装,但它破坏了 grub 并使 USB 记忆棒无法启动。那是 14.04。还有其他想法吗? (4认同)