Установите «старшее» ядро как запись по умолчанию grub

81

Я установил основное ядро для тестирования. Я хотел бы установить grub для загрузки из старого ядра по умолчанию.

Я знаю, что могу установить параметр GRUB_DEFAULT=0 для первой страницы grub, но как установить его для загрузки по умолчанию из одного ядра на второй странице (дополнительная страница)?

Я бы предпочел сделать это без установки другого программного обеспечения (например, grub-customizer).

Related Questions:
How do I set Windows to boot as the default in the boot loader?
How do I change the grub boot order?

    
задан To Do 12.11.2012 в 22:51
источник

4 ответа

115

Сначала создайте резервную копию /etc/default/grub . Если что-то пойдет не так, вы можете легко вернуться к хорошо известной копии.

sudo cp /etc/default/grub /etc/default/grub.bak

Затем отредактируйте файл с помощью текстового редактора по вашему выбору (например, gedit и т. д.).

sudo -H gedit /etc/default/grub

Найдите строку, содержащую GRUB_DEFAULT - это то, что вы хотите изменить, чтобы установить значение по умолчанию. Вы должны знать полное имя ядра, которое вы хотите - например, Ubuntu, with Linux 3.13.0-53-generic - вместе с полным именем «расширенного меню» - например, Advanced options for Ubuntu .

Затем вы объединяете эти две строки с > и устанавливаете GRUB_DEFAULT для них как: GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic" (включая кавычки).

Сохраните его, затем создайте обновленное меню grub.

sudo update-grub

См. также: Руководство GNU GRUB 2.02

Примечание. Существует метод, использующий номера для доступа к ядрам и меню, но это не рекомендуется, так как это ненадежно, когда происходят обновления ядра.

    
ответ дан DaimyoKirby 12.11.2012 в 23:31
источник
13

Теперь, когда меню Advanced по умолчанию используется в Ubuntu, вам нужно выбрать его перед ядром, которое вы хотите использовать с символом > .

Установите, например:

GRUB_DEFAULT="1>7"

в /etc/default/grub и повторно запустите sudo update-grub .

Важно отметить, что для нумерации меню GRUB начинается с 0 . Поэтому 1 выше указывает на меню Advanced . В качестве меры предосторожности вы можете сначала установить GRUB_TIMEOUT=5 . Некоторые могут не иметь доступа к GRUB, нажав клавишу во время загрузки. Это защитная сетка, если вы случайно укажете на что-то вроде Memory test . Также необходимо включить приведенные выше цифры в кавычки. Это не будет работать иначе.

Я тестировал 16.04 LTS.

    
ответ дан sarnold 08.12.2016 в 19:48
12

Лучшим решением для меня было установить (в /etc/default/grub ):

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

При этих настройках последнее выбранное значение сохраняется для следующей загрузки. Если у вас есть новое ядро, вам не нужно редактировать свою конфигурацию.

Не забудьте повторно запустить sudo update-grub

Решение от чтения: info grub-mkconfig

    
ответ дан Martin T. 28.01.2018 в 20:08
3

Чтобы установить, какой параметр загрузки использовать по умолчанию, вам нужно знать, что есть ... так:

Чтобы отобразить записи меню без фактической загрузки , попробуйте что-то вроде:

$ lsb_release -s -rdc
Ubuntu 16.04.4 LTS
16.04
xenial

$ update-grub --version
grub-mkconfig (GRUB) 2.02~beta2-36ubuntu3.17

$ grep -Ei 'submenu|menuentry ' /boot/grub/grub.cfg | sed -re "s/(.? )'([^']+)'.*/ /"
menuentry  Ubuntu
submenu  Advanced options for Ubuntu
    menuentry  Ubuntu, with Linux 4.4.0-34-generic
    menuentry  Ubuntu, with Linux 4.4.0-34-generic (upstart)
    menuentry  Ubuntu, with Linux 4.4.0-34-generic (recovery mode)
menuentry  System setup

    
ответ дан Hannu 31.03.2018 в 19:58