Встановіть "старіше" ядро ​​як запис за замовчуванням


93

Я встановив основне ядро ​​для тестування. Я хотів би встановити grub для завантаження зі старшого ядра за замовчуванням.

Я знаю, що я можу встановити GRUB_DEFAULT=0налаштування для першої сторінки grub, але як я можу встановити її за замовчуванням з одного ядра на другій сторінці (Розширена сторінка)?

Я вважаю за краще це робити без встановлення іншого програмного забезпечення (наприклад, grub-customizer).

Пов’язані запитання:
Як встановити Windows для завантаження як за замовчуванням у завантажувачі?
Як змінити порядок завантаження grub?


3
@belacqua: Це не дублікат. Це питання стосується встановлення старого ядра, яке немає на першій сторінці параметрів grub як стандартне.
До

Схоже, цей випадок повинен бути висвітлений у попередніх питаннях, навіть якщо метод потребує оновлення на 12.10, старіші ядра тощо.
belacqua

3
Випадок використання запитання різний, і відповідь дуже конкретний таким чином, що не стосується інших заявлених дублікатів. Я прийшов сюди, щоб вирішити цю конкретну проблему; не змінювати порядок завантаження; ні для завантаження Windows. +1 для "не дублікат".
Робі Басак

Відповіді:


128

Спочатку зробіть резервну копію /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 або більш конкретно розділ 15.1.0 про встановлення за замовчуванням .


Примітка: Існує метод, що використовує числа для доступу до ядер і меню, але це не рекомендується, оскільки це ненадійно, коли відбувається оновлення ядра.


24
Використання числового значення може бути проблематичним, коли відбувається оновлення. Краще використовувати текст за замовчуванням, тобто: GRUB_DEFAULT = "Попередні версії Linux> Ubuntu, з Linux 3.2.0-18-generic"
Bealer

27
Можна sudo grub-mkconfig | lessпереглянути всі можливі варіанти
Nitz,

9
Це хороше рішення, але ще краще - відкрити /boot/grub/grub.cfgі там ви побачите все manuentryі все submenus. Якщо ви редагуєте їх, ви можете легко встановити типові, навіть змінити заголовки параметрів у списку grub під час перезавантаження комп'ютера.
Алекс

7
Однозначно корисно вивчити, /boot/grub/grub.cfgщоб визначити точні назви, якими слід користуватися. Але не змінюйте цей файл, оскільки він буде автоматично відроджений update-grub, в тому числі на оновлення пакетів.
Робі Басак

18
Форматування для GRUB_DEFAULT дещо застаріло (оскільки принаймні Ubuntu 14.04.2). Запуск update-grubЯ зіткнувся з попередженням: Не використовуйте старий заголовок Previous Linux versions>Ubuntu, with Linux 3.13.0-53-genericдля GRUB_DEFAULT, використовуйте Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic(для версій до 2.00) або gnulinux-advanced-b0ce60c3-184c-453b-af59-419b56a2584f>gnulinux-3.13.0-53-generic-advanced-b0ce60c3-184c-453b-af59-419b56a2584f(для 2.00 або пізнішої версії)
Wumms

22

Найкращим рішенням для мене було встановити (в /etc/default/grub):

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

За допомогою цих параметрів останнє вибране значення зберігається для наступного завантаження. Якщо у вас є нове ядро, вам не потрібно буде редагувати конфігурацію.

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

Рішення полягає в читанні: info grub-mkconfig


4
Це приголомшливо
Мефісто

ти впевнений у крапці з комою ( ;) наприкінці рядків?!?
DJCrashdummy

Я не можу заглянути в свій комп’ютер, де я ним користувався в цей момент, але ти маєш рацію ";" здається, неправильним чи непотрібним!
Мартін Т.

21

Тепер, коли 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.


Працює і в Debian.
Лоуренс Д'Олівейро

Я вважаю цю відповідь дуже корисною, оскільки після оновлення ядра все одно вказує на новітнє ядро. Наприклад, у моїй установці це 1> 0, що означає: розширений лістинг (це завжди новітнє ядро). моя система колись зупинилася, щоб автоматично оновити запис 0 grub з найновішим ядром, тому я використовую цей метод.
Пітер Флекс

9

Щоб мати можливість встановити, який варіант завантаження використовувати як за замовчуванням, ви повинні знати, що існує ... так:

Щоб відобразити записи в меню без фактичного завантаження , спробуйте щось на кшталт:

$ lsb_release -s -rdc
Ubuntu 16.04.4 LTS
16.04
ксеніальний

$ update-grub - конверсія
grub-mkconfig (GRUB) 2,02 ~ beta2-36ubuntu3.17

$ grep -Ei 'підменю | menuentry' /boot/grub/grub.cfg | sed -re "s / (.?) '([^'] +) '. * / \ 1 \ 2 /"
меню Ubuntu
підменю Розширені параметри для Ubuntu
    меню Ubuntu, з Linux 4.4.0-34-generic
    меню Ubuntu, з Linux 4.4.0-34-generic (на початку)
    меню Ubuntu, з Linux 4.4.0-34-generic (режим відновлення)
Налаштування системи

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.