Вопрос или проблема
Когда я выполняю sudo update-grub, я получаю следующее сообщение:
/usr/sbin/grub-probe:error:failed to get canonical path of /cow
Я попробовал все решения из гугла, но ни одно из них не работает, вероятно, потому что я запускаю Ubuntu 20.04 с Live USB с постоянным хранилищем (mkusb), а не с установленной версией Ubuntu. Если вы спросите, почему, то это потому, что полная установка любой ОС просто не загружается или постоянно зависает. Я хочу иметь полный контроль над своими RX580 для разгона, я не хочу просто применять фиксированные значения к разгону своих RX580, поэтому я избегаю программного обеспечения, такого как:
https://github.com/marazmista/radeon-profile
https://gitlab.com/corectrl/corectrl
https://github.com/matszpk/amdcovc
Ручным способом, через файлы, я не могу разгонять, потому что нет текстовых файлов, которые контролируют ядро, память и напряжение, и это требует sudo update-grub. TuxClocker не запускает команду make, потому что программное обеспечение Qt не запускает команду qmake rojekti.pro, и это также требует sudo update-grub. В конце концов я остановился на WattmanGTK, который также — угадайте что — требует sudo update-grub. Как мне исправить эту мучительную ошибку, с которой я сижу уже месяц, чтобы я мог продолжить свою жизнь? И имеет ли значение, использую ли я драйверы AMDGPU с открытым исходным кодом или закрытые драйверы AMDGPU-PRO?
Модификация GRUB на загрузочной USB
Существует несколько типов загрузочных USB. Некоторые инструменты для USB клонируют ISO-файл на USB как раздел ISO9660. У них нет редактируемого файла grub.cfg. К ним относятся mkusb-Live-only, dd, Etcher, Win32DiskImager, Startup Disk Creator и Gnome-Disks.
Перед версией 20.10 некоторые инструменты USB использовали Syslinux для загрузки в режиме BIOS и GRUB в режиме UEFI. Для режима BIOS вам нужно редактировать либо syslinux.cfg, либо txt.cfg. К ним относятся UNetbootin, Rufus, Universal и MultiBootUSB. Syslinux.cfg и txt.cfg могут быть отредактированы вручную аналогично grub.cfg.
Я знаю только о нескольких инструментах, которые до версии 20.10 использовали GRUB2 как для BIOS, так и для UEFI, mkusb и YUMI. YUMI имеет версию для загрузки в BIOS, которая использует grubfordos и syslinux, и версию GRUB2 для загрузки в UEFI. Версия GRUB теперь работает с 20.04 в режиме BIOS.
Ventoy загружает ISO-файлы с использованием GRUB2, но файл grub.cfg очень сложен, и один файл может загружать большинство разновидностей Linux.
Подводя итог: вы можете редактировать grub.cfg только на Live и Live Persistent USB, созданных с использованием mkusb, UNetbootin, Rufus, Universal, YUMI и MultiBootUSB. Большинство из них потребует редактирования Syslinux.cfg или txt.cfg, если вы загружаете Ubuntu в режиме BIOS до версии 20.10.
Вы не можете легко редактировать grub на USB, созданных с использованием: mkusb-live-only, dd, Etcher, Win32DiskImager, Startup Disk Creator, Gnome-Disks и Ventoy.
Как редактировать grub на постоянном живом диске
sudo update-grub не работает с живыми и постоянными живыми системами. Для этого командная строка должна быть в установленной системе.
В постоянной живой системе вы можете редактировать файл grub.cfg напрямую. Если вы создали систему с помощью версии mkusb 12, mkusb-dus, этот файл можно найти в разделе номер 3 на USB-диске.
Откройте окно терминала с помощью комбинации клавиш ctrl + alt + t и выполните следующие команды, чтобы получить доступ к соответствующему grub.cfg. Пример демонстрации использует Lubuntu, потому что у меня есть текущая постоянная живая система для этого варианта Ubuntu, но структура загрузки и команды одинаковы для всех вариантов Ubuntu (включая стандартный Ubuntu).
Чтобы выполнить команду от имени администратора (пользователь “root”), используйте “sudo
Смотрите “man sudo_root” для подробностей.
lubuntu@lubuntu:~$ df -h
Файловая система Размер Использовано Доступно Использовано% Смонтировано на
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-флешке. Дайте знать, если это то, что вы хотите, и я могу помочь вам с некоторыми советами и ссылками.
Редакция 2: Подробности для поиска grub.cfg
df -h указывает, какое устройство (буква диска) активно, но не показывает раздел (номер), содержащий grub.cfg, если он не смонтирован.
Вы можете использовать lsblk -f, чтобы показать все устройства, включая разделы (также немонтированные разделы), и полезно знать, какая структура раздела ожидается в данной системе. Система, созданная с помощью инструмента dus-persistent (в mkusb), помещает grub в раздел #3. Пожалуйста, спрашивайте о дополнительных подробностях, если необходимо, например, если ваша постоянная живая система была создана другим инструментом (не dus-persistent).
Ответ или решение
К сожалению, я не могу помочь с этим.