Вопрос или проблема
Недавно я настроил новый виртуальный частный сервер для хостинга нескольких вещей с использованием YunoHost. Он работает на Debian 12. Во время первоначальной настройки я объявил как основной диск, так и второй диск (Локальное блочное хранилище) логическими томами в одной группе, так что вместо двух дисков по 500 ГБ у меня теперь один на 1 ТБ.
Первоначальная загрузка не вызвала проблем, но с тех пор сервер постоянно не загружается. Он просто не загружается в Debian, а вместо этого загружается в Grub2, который бесполезно находит раздел efi, объявляет все реальные физические тома нечитаемыми и просто не хочет
ls (lvm/LogVol)
по какой-то причине.
Однако, когда я виртуально вставляю live usb с GParted, у меня есть опция не загружаться в образ live usb, а выбрать опцию под названием “Настройки прошивки UEFI”. Когда я выбираю это и затем “Debian” из списка опций, я нормально загружаюсь в свою систему.
В чем дело?
Вывод grub-install, grub-update и efibootmgr:
me@killefitt:~$ sudo grub-install
[sudo] пароль для me:
Установка для платформы x86_64-efi.
Установка завершена. Ошибок не обнаружено.
me@killefitt:~$ sudo update-grub
Генерация конфигурационного файла grub ...
Найдены изображения linux: /boot/vmlinuz-6.1.0-28-amd64
Найдено изображение initrd: /boot/initrd.img-6.1.0-28-amd64
Найдены изображения linux: /boot/vmlinuz-6.1.0-18-amd64
Найдено изображение initrd: /boot/initrd.img-6.1.0-18-amd64
Предупреждение: os-prober не будет выполнен для обнаружения других загрузочных разделов.
Системы на них не будут добавлены в конфигурацию загрузки GRUB.
Проверьте запись документации GRUB_DISABLE_OS_PROBER.
Добавление записи в меню загрузки для настроек прошивки UEFI ...
готово
me@killefitt:~$ sudo efibootmgr
BootCurrent: 0009
Timeout: 3 секунды
BootOrder: 0009,0001,0002,0003,0004,0005,0006,0007,0000,0008,000A
Boot0000* UiApp
Boot0001* UEFI QEMU DVD-ROM QM00001
Boot0002* UEFI Разное устройство
Boot0003* UEFI PXEv4 (MAC:4A5A629B3980)
Boot0004* UEFI PXEv4 (MAC:4A5A629B3980) 2
Boot0005* UEFI PXEv6 (MAC:4A5A629B3980)
Boot0006* UEFI HTTPv4 (MAC:4A5A629B3980)
Boot0007* UEFI HTTPv6 (MAC:4A5A629B3980)
Boot0008* EFI Внутренний оболочка
Boot0009* debian
Boot000A* UEFI Разное устройство 2
me@killefitt:~$ sudo efibootmgr -o 0009,0001
BootCurrent: 0009
Timeout: 3 секунды
BootOrder: 0009,0001
Boot0000* UiApp
Boot0001* UEFI QEMU DVD-ROM QM00001
Boot0002* UEFI Разное устройство
Boot0003* UEFI PXEv4 (MAC:4A5A629B3980)
Boot0004* UEFI PXEv4 (MAC:4A5A629B3980) 2
Boot0005* UEFI PXEv6 (MAC:4A5A629B3980)
Boot0006* UEFI HTTPv4 (MAC:4A5A629B3980)
Boot0007* UEFI HTTPv6 (MAC:4A5A629B3980)
Boot0008* EFI Внутренний оболочка
Boot0009* debian
Boot000A* UEFI Разное устройство 2
me@killefitt:~$ sudo journalctl -b | grep EFI
Dec 12 21:44:04 killefitt.eu kernel: efi: EFI v2.70 от EDK II
Dec 12 21:44:04 killefitt.eu kernel: fb0: EFI VGA framebuffer устройство
Ответ или решение
Восстановление настроек загрузки Grub/UEFI для логических томов в Debian 12
Если ваша система на основе Debian 12 не загружается должным образом, и вы сталкиваетесь с проблемами загрузки через Grub2, это может быть связано с неправильной конфигурацией UEFI или загрузочного процесса для логических томов. Рассмотрим пошаговый процесс для исправления ситуации и восстановления нормального загрузочного процесса.
1. Понимание проблемы
Из вашего описания видно, что система может загружаться с помощью UEFI, когда выбран соответствующий пункт, однако при прямой попытке загрузки через Grub система не может найти логические тома (LVM). Существует вероятность, что Grub не настроен должным образом для работы с логическими томами, что также подтверждается предупреждениями из update-grub
о резервной системе, не обнаруженной на томах.
2. Настройка Grub для логических томов
Для настройки Grub для работы с LVM выполните следующие шаги:
Шаг 1: Загрузитесь в систему
Запустите вашу систему через настройку UEFI, как вы делали ранее, чтобы получить доступ к системе Debian.
Шаг 2: Обновление Grub
-
Убедитесь, что LVM установлен:
sudo apt install lvm2
-
Соберите информацию о ваших логических томах:
sudo lvscan
Убедитесь, что ваши логическиеVolume находятся в состоянии "active".
-
Перегенерируйте конфигурацию Grub:
sudo update-grub
После выполнения этой команды ваше внимание должно привлечь, если система обнаружила все необходимые модули. Убедитесь, что сообщение об обнаружении вашей операционной системы отображается.
Шаг 3: Переустановите Grub
-
Переустановите Grub на UEFI:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian
Убедитесь, что вы указали правильный путь к вашей EFI директории.
-
Проверьте результаты:
Если команда прошла успешно, вы не должны увидеть никаких ошибок.
Шаг 4: Проверьте настройки efibootmgr
-
Проверьте текущие настройки загрузки:
sudo efibootmgr
Убедитесь, что
BootOrder
установлен так, чтобы сначала загружалсяdebian
. В противном случае измените порядок, используя команду:sudo efibootmgr -o 0009,0001
-
Проверьте и обновите UEFI настройки:
Теперь снова выполнитеsudo efibootmgr
, чтобы убедиться, что ваши изменения сохранены.
Шаг 5: Завершение процесса
-
Перезагрузите систему:
sudo reboot
-
Проверьте, будет ли система загружаться непосредственно через Grub.
Заключение
Эти шаги помогут вам восстановить настройки загрузки Grub и UEFI для ваших логических томов на Debian 12. Важно, чтобы все команды выполнялись с корректными правами доступа и с осознанием их последствий. Если проблема не решается, возможно, вам потребуется обратиться к документации вашего виртуального сервера или консультироваться с сообществом Debian для более специализированной помощи.