arch linux не загружается и невозможно выполнить grub-install из chroot

Вопрос или проблема

У меня есть установка Arch Linux с использованием LVM, которую я обновлял нормально в течение нескольких лет до двух недель назад. Когда я обновился две недели назад, я запустил команду lvremove для старого снимка моего корневого тома, и команда зависла. Я выключил машину, и с тех пор она не загружается. Я только что загрузился через live USB, чтобы попытаться понять, что происходит. Вывод fdisk -l показывает /dev/nvme0n1 (это мой единственный диск) с разделами p1, p2, p3, где p1 – это мой EFI-раздел, p2 – загрузочный раздел, а p3 – это LVM-раздел.

Поэтому я сделал следующее после загрузки в live USB, чтобы смонтировать и выполнить chroot в свою систему:

vgchange -ay
mount /dev/vg0/lv_root /mnt
mount /dev/nvme0n1p2 /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/efi
mount /dev/vg0/lv_home /mnt/home
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/bash

Внутри все выглядит “нормально” (то есть, в моем домашнем каталоге все файлы, в основном так, как если бы я загрузился нормально). Поскольку я не знаю, почему система не загружается, я попытался переустановить grub с помощью grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck, но эта команда выдает ошибку:


Переменные EFI не поддерживаются в этой системе
Переменные EFI не поддерживаются в этой системе
grub-install: ошибка: efibootmgr не удалось зарегистрировать загрузочный элемент: Нет такого файла или каталога

(да, первое сообщение об ошибке появляется дважды). Во-первых, выполнение grub-install похоже на метод “угадай и проверяй” (но я не знаю, что еще попробовать)… и во-вторых, когда я гуглил эту ошибку, большинство результатов предполагают, что я, возможно, загрузился в режиме совместимости, но я вижу значение 64, если выполню cat /sys/firmware/efi/fw_platform_size, так что я знаю, что это не так (и когда я загрузился в живую среду, она также показала UEFI в скобках), поэтому я не понимаю, почему я не могу выполнить grub-install (я не уверен, что это исправит ситуацию, но стоит попробовать, так как я не знаю, что еще проверить).

Редактирование 1:
Нашел эту тему Переменные EFI не поддерживаются в этой системе и заставил grub-install выполниться, передав флаг --no-nvram, затем выполнил grub-mkconfig -o /boot/grub/grub.cfg (не заметил особой разницы в сгенерированном grub.cfg по сравнению с предыдущим). К сожалению, все равно не могу загрузиться, когда я пытаюсь загрузиться с моего диска, он сразу возвращается в меню BIOS, не знаю, как узнать “ошибки” того, что происходит…

Ответ или решение

Проблема с загрузкой Arch Linux и установка GRUB из среды chroot

Проблема, с которой вы столкнулись, связана с неправильно настроенным загрузчиком GRUB после неудачного удаления снимка логического тома. Это могло привести к повреждению конфигурации загрузчика и утрате возможности его дальнейшей установки. Давайте рассмотрим все возможные шаги для решения данной проблемы.

Шаг 1: Подготовка к chroot

Ваши начальные действия по загрузке с Live USB и изменения состояния логических томов через vgchange -ay были верными. Вы правильно монтируете необходимые файловые системы:

mount /dev/vg0/lv_root /mnt
mount /dev/nvme0n1p2 /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/efi
mount /dev/vg0/lv_home /mnt/home
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/bash

Эти команды обеспечили корректный переход в среду вашего установленного Arch Linux.

Шаг 2: Установка GRUB

Ошибка, с которой вы столкнулись lors выполнения команды grub-install, указывает на проблемы с доступом к EFI-переменным. Практически, это может произойти из-за:

  1. Неисправной конфигурации UEFI: Проверьте, действительно ли ваше устройство загружается в UEFI-режиме. Вы можете использовать команду ls /sys/firmware/efi/efivars, чтобы убедиться, что EFI-переменные доступны.

  2. Настройки BIOS/UEFI: Убедитесь, что в настройках BIOS вашего компьютера установлен режим UEFI, а не Legacy или CSM (Compatibility Support Module).

Решение ошибки с установкой GRUB

Вы уже нашли способ обойти проблему с EFI-переменными, используя флаг --no-nvram. Это приемлемый временный шаг, но важно понимать, что GRUB, вероятно, не регистрирует вашу загрузочную запись в NVRAM из-за вышеупомянутых ограничений. Попробуйте выполнить следующие команды после установки GRUB:

grub-mkconfig -o /boot/grub/grub.cfg

После выполнения команд проверьте содержимое /boot/grub/grub.cfg. Убедитесь, что настройки вашего ядра и файловой системы корректны.

Шаг 3: Проверка конфигурации GRUB

Убедитесь, что в файле конфигурации /boot/grub/grub.cfg указаны правильные параметры для загрузки. Иногда GRUB может отсутствовать при загрузке из-за неверных путей к ядру или образу initramfs.

Примерный блок инициализации:
menuentry 'Arch Linux' {
    set root='hd0,gpt2'
    linux /vmlinuz-linux root=/dev/vg0/lv_root rw
    initrd /initramfs-linux.img
}

Шаг 4: Устранение неполадок

Если после выполнения всех вышеуказанных шагов система по-прежнему не загружается и возвращает в меню BIOS, рассмотрите следующие действия:

  1. Запуск системы в безопасном режиме: Попробуйте загрузить систему с помощью дополнительных параметров (например, nomodeset).

  2. Проверка блокировок томов: Используйте lvscan и vgscan для проверки состояния логических томов.

  3. Проверка ошибок: Зайдите в journalctl после попытки загрузки через Live USB для получения детализированной информации об ошибках.

Заключение

Данное руководство должно помочь вам определить и устранить проблемы с загрузкой Arch Linux и установкой GRUB. Возможно, потребуется немного детальным изучением конфигурации BIOS/UEFI и GRUB. Если после выполнения всех шагов система все еще не загружается, рассмотрите возможность создания резервной копии данных и переустановки системы.

Оцените материал
Добавить комментарий

Капча загружается...