Вопрос или проблема
После серии неудач с Secure Boot (попытка подписать модули ядра VMWare Player) GRUB перестал отображать записи, соответствующие Ubuntu 19.10, установленной как корень ZFS (по умолчанию параметры установщика 19.10), который загружается в настройках системы по умолчанию.
Я смог загрузиться в свою систему, выполнив следующее (по памяти; некоторые детали ниже могут быть неточными).
В оболочке GRUB я ввел
set root=(hd0,gptXXX)
linux /BOOT/ubuntu_YYY/@/vmlinuz root=ZFS=rpool/ROOT/ubuntu_YYY boot=zfs
initrd /BOOT/ubuntu_YYY/@/initrd.img
boot
Чтобы найти, какую партицию gptXXX
использовать, я выполнил ls
, а затем ls (hd0,gptXXX)/
, пока не нашел загрузочные файлы. ubuntu_YYY
кажется уникальным идентификатором для системы Ubuntu. Я нашел его, выполняя ls
в (hd0,gptXXX)/BOOT
.
При выполнении ls
в GRUB я получил несколько ошибок, касающихся сжатия алгоритма 115 не поддерживается
.
У меня не установлена никакая другая операционная система, и я временно отключил Secure Boot.
Теперь мне интересно, какие шаги предпринять, чтобы восстановить правильную работу загрузчика GRUB. Если я не смогу это исправить, мне, возможно, просто придется установить новую копию 20.04 LTS. Но, по крайней мере, вышеизложенное может быть полезным для любого, кто окажется в такой же ситуации.
Правка: У меня установлено compression=lz4
на rpool
(но не на bpool
), это может быть связано.
Так как ваши команды выше позволяют загрузиться, самый простой способ – вставить их в ваш /boot/grub/grub.cfg
(стандартное расположение) следующим образом:
Menuentry 'моя установка Ubuntu' {
insmod zfs
insmod part_gpt
insmod (что угодно)
... здесь ваши команды (без "boot")...
}
Скорее всего, если редактирование grub.cfg
достаточно, вам не понадобятся команды insmod
. В любом случае, не помешает посмотреть записи, которые уже там есть (созданные системой установки).
ИЛИ вы можете выбрать переустановку grub целиком с помощью команды grub-install
, предполагая, что ваше (hd0)
— это /dev/sda
: grub-install /dev/sda
.
Ответ или решение
Чтобы восстановить загрузчик GRUB для Ubuntu 19.10, установленной на файловой системе ZFS, вы можете выполнить следующие шаги. Предполагается, что вы уже смогли загрузиться в свою систему, используя временную загрузку через GRUB shell.
Шаг 1: Перезапись конфигурации GRUB
-
Загрузитесь в систему. Используйте свои предыдущие команды в GRUB shell, чтобы загрузить систему.
-
Откройте терминал. После загрузки откройте терминал.
-
Задайте параметры для вашего подключения к ZFS.
В файле конфигурации GRUB необходимо указать правильные параметры. Внесите изменения в файл конфигурации/boot/grub/grub.cfg
, добавив новый пункт меню.Откройте файл с помощью любого текстового редактора, например,
nano
:sudo nano /boot/grub/grub.cfg
-
Добавьте новый пункт меню для загрузки.
Внутри данного файла добавьте следующее:menuentry 'Моя установка Ubuntu' { insmod zfs insmod part_gpt set root=(hd0,gptXXX) # Замените XXX на ваш номер раздела linux /BOOT/ubuntu_YYY/@/vmlinuz root=ZFS=rpool/ROOT/ubuntu_YYY boot=zfs initrd /BOOT/ubuntu_YYY/@/initrd.img }
Убедитесь, что
gptXXX
корректно указывает на ваш раздел, аubuntu_YYY
– на ваш уникальный идентификатор. -
Сохраните изменения и выйдите. В
nano
, нажмитеCtrl + O
для сохранения иCtrl + X
для выхода.
Шаг 2: Переустановите GRUB
Если редактирование grub.cfg
не решает проблему, следующим шагом будет переустановка GRUB.
-
Убедитесь, что у вас установлен пакет grub.
sudo apt update sudo apt install --reinstall grub-efi-amd64
-
Запустите команду установки GRUB на ваш основной диск.
Предполагая, что ваш диск – это/dev/sda
:sudo grub-install /dev/sda
-
Обновите конфигурацию GRUB.
После установки выполните следующую команду для обновления конфигурации GRUB:sudo update-grub
Шаг 3: Проверка и тестирование
-
Перезагрузите систему.
После завершения всех шагов перезагрузите компьютер, чтобы проверить, загружается ли система нормально через GRUB. -
Если проблема остается, рассмотрите возможность использования Live USB.
В качестве последнего средства, если вы по-прежнему не можете загрузить GRUB, вы можете использовать Live USB с Ubuntu для восстановления системы. Загрузитесь с Live USB и выполните предыдущие шаги для восстановления GRUB из Live-сессии.
Возможные проблемы
- Если вы увидите сообщения об ошибках, связанных с алгоритмом сжатия, это может указывать на несовместимость версии GRUB с используемым вами алгоритмом сжатия для ZFS. Убедитесь, что все компоненты системы обновлены.
- Возможно, вам потребуется отключить Secure Boot, если он включен, чтобы установить GRUB.
Эти шаги должны помочь вам восстановить GRUB и вернуть стандартное поведение загрузчика для вашей Ubuntu 19.10 под управлением ZFS. Если проблема сохраняется, возможно, стоит рассмотреть возможность чистой установки более новой версии Ubuntu, такой как 20.04 LTS, которая поддерживает улучшенные функции работы с ZFS.