Вопрос или проблема
Как мы можем изменить порядок строк в меню grub, ведь некоторые говорят, что изменение порядка блоков menuentry в /boot/grub/grub.cfg противоречит файлу у меня? Какой реальный правильный способ сделать это?
Вы можете отредактировать /boot/grub/grub.cfg
с помощью текстового редактора, так как это обычный текстовый файл.
Однако, если вы установите новое ядро, будет запущен grub-mkconfig
, который заново создаст файл, используя каждый скрипт в /etc/grub.d
: ваши изменения будут потеряны. Тогда вы можете добавить скрипт в эту директорию, который вставляет menuentry в нужное место. Изменить поведение скрипта 10_linux
, который, похоже, перечисляет доступные ядра Linux, начиная с последнего, будет сложнее.
Ответ или решение
Чтобы изменить порядок строк в меню GRUB, необходимо учесть несколько важных моментов, касающихся работы с конфигурацией GRUB и его особенностями. В отличие от простых текстовых файлов, конфигурация GRUB автоматически перезаписывается при обновлениях или изменениях системы. Давайте разберемся, как правильно изменить порядок меню GRUB, учитывая все нюансы.
1. Не редактируйте grub.cfg
напрямую
Первое правило: никогда не вносите изменения напрямую в файл /boot/grub/grub.cfg
. Этот файл автоматически генерируется утилитой grub-mkconfig
, которая собирает конфигурацию из скриптов, расположенных в директории /etc/grub.d/
. Внесенные изменения будут потеряны при следующем обновлении конфигурации GRUB.
2. Порядок загрузки через скрипты в /etc/grub.d/
Для изменения порядка загрузки вы можете создать или модифицировать существующие скрипты в директории /etc/grub.d/
. Вот основные шаги:
a. Найдите соответствующий скрипт
Наиболее актуальный скрипт для вашей задачи — это 10_linux
, который отвечает за перечисление установленных ядер и их порядок. Если вам нужно изменить его поведение, вы можете создать пользовательский скрипт, который будет вызываться до или после этого скрипта.
b. Создание пользовательского скрипта
-
Создайте новый файл в директории
/etc/grub.d/
, например,05_custom_order
(число перед названием скрипта определяет порядок его выполнения).sudo touch /etc/grub.d/05_custom_order
-
Дайте файл пакетам на выполнение:
sudo chmod +x /etc/grub.d/05_custom_order
-
Откройте файл для редактирования:
sudo nano /etc/grub.d/05_custom_order
-
Добавьте свои
menuentry
. Пример структуры:#!/bin/sh set -e echo "Adding custom menu entries" cat << EOF menuentry 'My Custom Entry 1' { set root=(hd0,1) linux /vmlinuz-custom1 root=/dev/sda1 initrd /initrd-custom1 } menuentry 'My Custom Entry 2' { set root=(hd0,2) linux /vmlinuz-custom2 root=/dev/sda2 initrd /initrd-custom2 } EOF
c. Запуск обновления конфигурации GRUB
После внесения изменений не забудьте перегенерировать файл конфигурации GRUB:
sudo update-grub
Это запустит grub-mkconfig
, который использует все доступные скрипты в директории /etc/grub.d/
.
3. Подведение итогов
Теперь вы знаете, как изменить порядок записей в меню GRUB корректным и безопасным способом. Используя пользовательские скрипты, вы можете гибко настраивать меню GRUB без риска потерять изменения при будущих обновлениях системы. Помните, что порядок загрузки влияет на первое восприятие вашей системы, поэтому не стесняйтесь экспериментировать с конфигурацией для оптимизации вашего рабочего процесса.