/usr/sbin/grub-probe:error:无法获取 /cow 的规范路径。来自具有持久存储的 Live USB (mkusb)

/usr/sbin/grub-probe:error:无法获取 /cow 的规范路径。来自具有持久存储的 Live USB (mkusb)

当我这样做时,sudo update-grub我收到此消息:

/usr/sbin/grub-probe:error:failed to get canonical path of /cow

我尝试了所有的谷歌解决方案,但都不起作用,大概是因为我正在从具有持久存储(mkusb)的 Live USB 运行 Ubuntu 20.04,而不是安装版本的 Ubuntu,如果你问为什么,那是因为任何操作系统的完整安装都无法直接启动或不断冻结。

我希望完全控制我的 RX580s 进行超频,我不想只对我的 RX580s 的超频应用固定值,这就是为什么我避免使用以下软件:

手动通过文件,我无法超频,因为没有控制核心、内存和电压的文本文件,并且需要 sudo update-grub。

TuxClocker不会运行make命令,因为 Qt 软件不会运行该命令qmake rojekti.pro并且它还需要sudo update-grub

所以我最终决定瓦特曼GTK猜猜看,这也需要 sudo update-grub。

我该如何修复这个困扰了我一个月的痛苦错误,以便继续我的生活?如果我使用 AMDGPU 开源或 AMDGPU-PRO 闭源驱动程序会有什么不同吗?

答案1

在可启动 USB 上修改 GRUB

可启动 USB 有多种类型。

一些 USB 工具会将 ISO 文件克隆到 USB 作为 ISO9660 分区。这些工具没有可编辑的 grub.cfg 文件。它们包括mkusb-仅限直播蚀刻机磁盘映像工具启动盘创建器Gnome 磁盘

在 20.10 之前,一些 USB 工具使用 Syslinux 在 BIOS 模式下启动,使用 GRUB 在 UEFI 模式下启动。对于 BIOS 模式,您需要编辑 syslinux.cfg 或 txt.cfg。这些包括联合国网启动鲁弗斯普遍的多启动USB. Syslinux.cfg 和 txt.cfg 可以像 grub.cfg 一样手动编辑。

我只知道在 20.10 之前有几个工具使用 GRUB2 来实现 BIOS 和 UEFI,韓國由美。YUMI 有一个使用 grubfordos 和 syslinux 的 BIOS 启动版本和一个用于 UEFI 启动的 GRUB2 版本。GRUB 版本现在可在 BIOS 模式下与 20.04 配合使用。

文图伊使用GRUB2启动ISO文件,但是grub.cfg文件非常复杂,并且一个文件可以启动大多数类型的Linux。

总结:您只能在使用 mkusb、UNetbootin、Rufus、Universal、YUMI 和 MultiBootUSB 制作的 Live 和 Live Persistent USB 上编辑 grub.cfg。如果您在 20.10 之前的 BIOS 模式下启动 Ubuntu,则其中大多数都需要编辑 Syslinux.cfg 或 txt.cfg。

您无法轻松地在使用以下设备制作的 USB 上编辑 grub:mkusb-live-only、dd、Etcher、Win32DiskImager、Startup Disk Creator、Gnome-Disks 和 Ventoy。

答案2

如何在持久实时驱动器中编辑 grub

sudo update-grub不适用于实时和持续实时系统。您需要安装系统才能使该命令行运行。

在持久实时系统中,您可以grub.cfg直接修改该文件。如果您使用 mkusb 版本 12(mkusb-dus)创建了系统,则可以在 USB 驱动器的分区号 3 中找到此文件。

使用热键组合ctrl+ alt+打开终端窗口t并运行以下命令以访问相关内容grub.cfg。以下演示示例使用 Lubuntu,因为我有一个适用于该版本 Ubuntu 的当前持久实时系统,但所有版本的 Ubuntu(包括标准 Ubuntu)的启动结构和命令都是相同的。

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

lubuntu@lubuntu:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           770M  1.7M  769M   1% /run
/dev/sda4       1.9G  1.9G     0 100% /cdrom
/cow             54G  102M   52G   1% /
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
tmpfs           3.8G     0  3.8G   0% /tmp
tmpfs           770M   80K  770M   1% /run/user/999
/dev/sda5        54G  102M   52G   1% /media/lubuntu/writable
/dev/sda1        55G   67M   55G   1% /media/lubuntu/usbdata
lubuntu@lubuntu:~$ setxkbmap se
lubuntu@lubuntu:~$ sudo mount /dev/sda3 /mnt
lubuntu@lubuntu:~$ ls -l /mnt/boot/grub/grub.cfg 
-rwxr-xr-x 1 root root 2241 Dec 30 13:17 /mnt/boot/grub/grub.cfg
lubuntu@lubuntu:~$ 

您的实时系统驱动器(USB 驱动器)可能被视为/dev/sdb/dev/sdc... 而不是/dev/sda。这通过命令显示df -h

由于您需要sudo编辑它,我建议您使用文本模式编辑器nano

$ sudo nano /mnt/boot/grub/grub.cfg

编辑1:我应该添加以下评论:

在持久实时系统中,您可以添加位于主目录中的设置(通常为隐藏文件),并且可以添加应用程序包。

但是您无法升级内核,也无法添加或修改内核驱动程序,因为内核及其驱动程序是在激活持久性覆盖之前启动的。如果这是您想要的,您必须使用已安装的系统。它可以在外部驱动器(例如 USB 闪存盘)中创建已安装的系统。如果您想要这样做,请告诉我,我可以为您提供一些提示和链接。

相关内容