Почему GRUB не учитывает конфигурационные файлы?

Я обновил систему и сейчас мне нужно изменить ядро, которое используется по умолчанию для загрузки. В файле /etc/default/grub я добавил строку GRUB_SAVEDEFAULT=true и пересобрал конфигурацию с помощью grub2-mkconfig. 

Однако GRUB почему-то игнорирует мои изменения. В файле /boot/grub2/grubenv я вижу, что появились новые переменные save_entry и save_default, но параметр save_entry не обновляется после выбора своего ядра. 

Также команда <b>grub2-reboot 3</b> не работает — система по-прежнему загружает первое ядро из списка. Хотя команда grub2-reboot добавляет дополнительные строки в файл /boot/grub2/grubenv, они почему-то игнорируются. 

У меня складывается впечатление, что GRUB может только читать, но не вносить изменения в каталог /boot. 

PS
  • 27 августа 2024 г. 21:14
Ответы на вопрос 1
Судя по вашему описанию, есть несколько моментов, которые стоит проверить для того, чтобы исправить проблему с GRUB. Вот несколько рекомендаций:

1. **Права доступа**: Убедитесь, что у вас есть необходимые права для записи в каталог `/boot` и его подкаталоги. Попробуйте выполнить команды с правами суперпользователя (например, через `sudo`):

   ```bash
   sudo grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

2. **Текущая версия GRUB**: Убедитесь, что у вас установлена актуальная версия GRUB. Если ваша система обновилась, возможно, следует проверить, была ли обновлена и сама версия GRUB.

3. **Настройки `grubenv`**: Убедитесь, что файл `/boot/grub2/grubenv` действительно обновляется. В некоторых случаях может быть, что файл имеет неправильные права доступа или поврежден. Попробуйте вручную удалить этот файл и пересобрать конфигурацию GRUB, чтобы он создавался заново.

   ```bash
   sudo rm /boot/grub2/grubenv
   sudo grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

4. **Проверка конфигурации**: После обновления конфигурации убедитесь, что изменения действительно применились. Проверьте файл `/boot/grub2/grub.cfg` на наличие ожидаемых настроек.

5. **Замена ядра**: Если вы хотите установить конкретное ядро по умолчанию, попробуйте установить его вручную, используя команду:

   ```bash
   sudo grub2-set-default "Имя_ядра"
   ```

   Или вы можете указать индекс ядра, например:

   ```bash
   sudo grub2-set-default 3
   ```

   Убедитесь, что индекс указывает на правильное ядро (индексация начинается с нуля).

6. **Проблемы с файловой системой**: Попробуйте запустить проверку файловой системы на наличие ошибок. Если файловая система повреждена, она может блокировать запись в определенные каталоги.

7. **Драйверы и конфигурации**: В редких случаях проблема может заключаться в специфических драйверах или настройках BIOS/UEFI. Убедитесь, что ваша система имеет верные настройки для загрузки и что Secure Boot не блокирует загрузку нестандартных настроек.

Если эти шаги не решают проблему, стоит проверить логи системы (например, `dmesg` или `/var/log/boot.log`) на наличие сообщений, которые могут указывать на причину ошибки.
Похожие вопросы