В нашей системе существует две установленные операционных системы Ubuntu.
Во время начальной загрузки спрашивает GRUB, от которого Ubuntu загрузиться, но теперь я должен добавить новый пункт меню в GRUB и что пункт меню позволит пользователю изменять Linux по умолчанию для начальной загрузки.
В изображении выше, я должен добавить третий пункт меню, это меню позволяет пользователю выбирать новую операционную систему начальной загрузки по умолчанию. Если пользователь выберет "Установленный по умолчанию Linux 2", то следующий раз на порядке загрузки перезагрузки будет похож в изображении ниже.
Я нашел документацию об изменяющемся порядке загрузки, но те документы описывают процесс в рамках Ubuntu, я хочу достигнуть этого в самом GRUB. Как я могу сделать это?
Мы можем достигнуть этого блока Среды Личинки использования. Блок Среды хранится в /boot/grub/grubenv
и этот файл является немного особенным, он имеет предварительно выделенный размер 1 024 байтов. Мы не должны редактировать этот файл с текстовым редактором, даже если можно открыть этот файл с текстовым редактором для отображения, это довольно.
Мы можем отредактировать /boot/grub/grubenv
с различными инструментами:
Терминальная команда sudo grub-editenv [OPTION...] FILENAME COMMAND
, см. также man grub-editenv
Команда записи меню save_env [-f file] var
, посмотрите детали в Руководстве Личинки GNU
Если файл /boot/grub/grubenv
не выходит, можно создать его с
sudo grub-editenv /boot/grub/grubenv create
Мы должны будем создать некоторые записи пользовательского меню, https://help.ubuntu.com/community/Grub2/CustomMenus предоставляет полезную информацию, как сделать это.Править /etc/grub.d/40_custom
так, чтобы это было похоже на это:
#!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. # submenu 'Set boot default' { menuentry 'Set first entry as default' { set saved_entry=0 save_env saved_entry reboot } menuentry 'Set second entry as default' { set saved_entry=1 save_env saved_entry reboot } }
Если у нас уже есть записи пользовательского меню в файле, мы просто добавляем строки после строк комментария в наш файл. Команды в записях меню действуют следующим образом:
set saved_entry set the environment variable saved_entry to the specified value. Save_env saved_entry stores the variable saved_entry in /boot/grub/grubenv. reboot reboot the machine
Кроме того, мы должны будем отредактировать /etc/default/grub
который содержит основную конфигурацию Личинки. Снова, в Руководстве Личинки GNU мы найдем подробную информацию.
В /etc/default/grub
мы должны изменить значение для GRUB_DEFAULT
кому: GRUB_DEFAULT=saved
. Это вынудит Личинку загрузить запись меню по умолчанию из /boot/grub/grubenv
когда мы загружаемся. Если Вы находите строку с GRUB_SAVEDEFAULT=true
, удалите эту строку.
Для применения изменений, мы сделали к основному конфигурационному файлу Личинки /boot/grub/grub.cfg
мы должны работать sudo update-grub
.
Как следующий шаг мы работаем sudo grub-editenv - set saved_entry=0
в терминале. Мы делаем это для предотвращения конфликтов, когда Личинка загрузится в следующий раз, когда Личинка будет искать для saved-entry
в /boot/grub/grubenv
и может найти его.
Теперь мы можем перезагрузить, когда меню Личинки появится, мы будем видеть добавленное подменю в списке, мы открываем его и выбираем одну из записей. Личинка установит saved_entry на заданное значение, сохранит его к /boot/grub/grubenv
и затем перезагрузка. Меню личинки появляется снова, и мы будем видеть, что новое значение по умолчанию выбрано автоматически.
Еще одна вещь думать о
В которой операционной системе мы должны внести эти изменения? У нас есть два дистрибутива Linux, установленные и обе поставки с Личинкой. С информацией от Boot-Info-summary и терминальной команды findmnt
мы должны смочь определить распределение, которое содержит и управляет конфигурационными файлами. В этом распределении мы должны выполнить вышеупомянутые шаги затем. В другом распределении Личинка не нужна и должна быть удалена или даже очищена, только для предотвращения любого вида конфликтов.
Дополнительная информация:
Протестированный это в моей системе с версией Личинки 2.02~beta2-36ubuntu3.8
.
CD/etc/default /
личинка энергии
изменяется GRUB_DEFAULT=0 к тому, который Вы хотите.
ИЛИ
энергия cd/boot/grub
grub.cfg
здесь быть осторожными при редактировании
Перестроение функции menuentries, и Вы сможете видеть это на загрузчике.