Вопрос или проблема
Недавно я настроил новый виртуальный частный сервер для размещения нескольких вещей, используя YunoHost. Он работает на Debian 12. Во время первоначальной настройки я объявил как основной диск, так и второй диск (Локальное блочное хранилище) логическими томами в одной группе, так что вместо двух 500 ГБ дисков теперь у меня был один 1 ТБ диск.
Сначала загрузка прошла без проблем, но с тех пор сервер постоянно не загружается. Сервер просто не загружается в Debian, а переходит в Grub2, который без особой помощи находит раздел efi, объявляет все фактические физические тома нечитаемыми и просто не может
ls (lvm/LogVol)
по какой-то причине.
Однако, когда я виртуально вставляю живую флешку GParted, у меня есть возможность не загружаться в образ живой флешки, а выбрать вариант под названием “Настройки прошивки 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 Внутренний Shell
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 Внутренний Shell
Boot0009* debian
Boot000A* UEFI Разное устройство 2
me@killefitt:~$ sudo journalctl -b | grep EFI
12 дек 21:44:04 killefitt.eu kernel: efi: EFI v2.70 от EDK II
12 дек 21:44:04 killefitt.eu kernel: fb0: EFI VGA framebuffer device
Ответ или решение
Восстановление настроек загрузчика GRUB/UEFI с корневой файловой системой на логическом томе
Настройка загрузчика на виртуальном частном сервере может вызвать различные сложности, особенно когда речь идет о работе с логическими томами, такими как LVM (Logical Volume Manager). На основе вашего описания, следует принять несколько шагов для диагностики и решения проблемы с загрузкой Debian 12 под управлением YunoHost.
1. Анализ проблемы
На данный момент вы наблюдаете, что сервер не загружается по умолчанию, а попадает в GRUB, который не распознаёт логические тома. По всей видимости, ваш сервер корректно загружается только при выборе Debian через параметры UEFI, что указывает на потенциальные проблемы с конфигурацией GRUB или UEFI.
Выводы из команд:
- grub-install: Установка прошла без ошибок, что говорит о том, что GRUB установлен корректно.
- update-grub: Сообщения указывают на обнаружение ядер, но есть предупреждение о том, что os-prober не будет выполнен, что может повлиять на добавление других загрузочных систем.
- efibootmgr: Список загрузочных записей показывает, что запись для Debian существует и имеет высокий приоритет, однако она может не срабатывать должным образом.
2. Возможные причины
- Проблемы с распознаванием LVM: GRUB может не распознавать логические тома на этапе загрузки, что может быть вызвано неправильной конфигурацией или отсутствием необходимых модулей.
- Ошибки в конфигурации UEFI: Неправильные параметры UEFI могут приводить к тому, что ваше устройство не может корректно загрузить GRUB.
3. Шаги для восстановления загрузчика
3.1. Проверка конфигурации GRUB
Вы можете начать с простого редактирования конфигурации GRUB, чтобы убедиться, что он видит ваши логические тома:
-
Запустите систему через режим UEFI, как ранее.
-
Откройте файл конфигурации GRUB:
sudo nano /etc/default/grub
-
Убедитесь, что строки, отвечающие за загрузку LVM и модуль os-prober, настроены правильно. Например:
GRUB_DISABLE_OS_PROBER=false
-
Сохраните изменения и выполните:
sudo update-grub
3.2. Установка необходимых модулей
GRUB может требовать дополнительные модули для работы с LVM. Убедитесь, что они установлены и активны:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck
3.3. Проверка целостности файловой системы
Иногда проблемы могут быть связаны с поврежденной файловой системой. Выполните:
sudo fsck /dev/<ваш_логический_том>
Замените <ваш_логический_том>
на актуальный путь к логическому тому.
4. Установка порядка загрузки в UEFI
Иногда порядок загрузки может вызывать проблемы. Убедитесь, что запись для вашей Debian находится на первом месте:
sudo efibootmgr -o 0009,0001
Это уже было выполнено, но следует дважды проверить после того, как вы внесли изменения в предыдущие шаги.
5. Запуск:
После выполнения всех вышеперечисленных шагов, перезагрузите сервер:
sudo reboot
Выберите Debian из меню загрузки UEFI и проверьте, загружается ли система корректно.
Заключение
Следуя вышеописанным шагам, вы должны быть в состоянии восстановить функциональность вашего загрузчика GRUB и наладить систему для корректной работы с логическими томами. Если проблема сохранится, может быть полезным проверить документацию GRUB и разделы о LVM, а также участвовать в сообществах для поиска дополнительных экземпляров похожих проблем.