Последнее ядро вызывает проблемы с моим звуком, который хорошо работал с более старой версией. Поскольку у меня есть только установленная Ubuntu, Личинка не становится отображенной при начальной загрузке. Как я могу вручную выбрать свою версию ядра при начальной загрузке?
Самый простой способ отображения ваш Grub должен нажать и удерживать кнопку SHIFT во время загрузки.
В качестве альтернативы вы всегда можете отобразить Grub без загрузки какого-либо конкретного ядра:
gksudo gedit /etc/default/grub
измените GRUB_TIMEOUT
на -1 и закомментируйте GRUB_HIDDEN_TIMEOUT
завершите, запустив
sudo update-grub
Удерживая нажатой клавишу Shift во время загрузки, откроется меню Grub. Теперь вы можете выбрать старую версию ядра.
Чтобы выбрать более старое ядро в качестве ядра по умолчанию, см. этот пост
От https://help.ubuntu.com/community/Grub2 :
GRUB_HIDDEN_TIMEOUT = 0
Этот параметр определяет, как долго экран без меню GRUB 2 будет отображаться. Пока экран пуст, пользователь может нажать любую клавишу, чтобы отобразить меню.
По умолчанию меню скрывается, если используется только одна операционная система. настоящее. Если пользователь только с Ubuntu хочет отобразить меню, поместите символ # в начале этой строки, чтобы отключить скрытое меню
Понижение версии ядра: Как понизить версию ядра на 11.10
Обновить ядро: Как я могу обновить ядро до 3.1?
Установите предыдущее ядро с помощью следующей команды:
sudo apt-get install linux-image-3.0.0-12-generic linux-headers-3.0.0-12-generic
Затем перезагрузитесь. Вам будет предложено выбрать ядро.
При загрузке, когда появляется GRUB с записями, выберите вторую запись, т.е. Дополнительные параметры для Ubuntu , там вы можете увидеть разные старые версии ядра, которые были установлены ранее, вы можете выбрать одну среди них, что хорошо работает для вас. В противном случае вы переходите к grub.cfg и вставляете требуемую версию ядра поверх текущей установленной записи ядра. В обоих случаях он работает
Если в вашей системе несколько ядер, вы можете вручную указать, какая версия ядра будет запускаться:
Перезагрузите компьютер, нажав кнопку Shift, чтобы отобразить GRUB после запуска BIOS. Вы увидите что-то вроде:
Выберите «Дополнительные параметры для Ubuntu» и запомните индекс этой строки меню (счет начинается с 0) На картинке индекс равен 1
Выберите конкретное ядро для загрузки, а также запомните индекс этой строки меню (счет начинается с 0 ) На картинке индекс выбранного ядра равен 2
Start system. Это действие предназначено для одной загрузки с конкретным ядром. Если вы хотите все время начинать с конкретного ядра, вам следует сделать следующие шаги:
4.1. Откройте и отредактируйте установочный файл GRUB:
sudo nano /etc/default/grub
4.2. Найдите строку GRUB_DEFAULT = ... (по умолчанию GRUB_DEFAULT = 0) и задайте в кавычках путь меню к конкретному ядру (помните индексы меню из шагов 2 и 3). В моей системе первый индекс был 1, а второй - 2. Я установил GRUB_DEFAULT
GRUB_DEFAULT="1>2"
Сохранить файл.
4.3. Обновите информацию GRUB для применения изменений:
sudo update-grub
4.4. После перезагрузки вы автоматически загружаетесь в ядро по выбранному пути в меню. Пример на моей машине 1 -> 2
4.5. Проверьте версию ядра после перезагрузки:
uname -r
Сразу после заставки BIOS / UEFI во время загрузки в BIOS быстро нажмите и удерживайте клавишу Shift , которая вызовет GNU GRUB меню. (Если вы видите логотип Ubuntu, вы пропустили момент, когда вы можете войти в меню GRUB.) В UEFI нажмите (возможно, несколько раз) клавишу Esc , чтобы перейти в меню GRUB. Иногда заставка производителя является частью загрузчика Windows, поэтому при включении компьютера он сразу переходит к экрану GRUB, а затем нажимать Shift не нужно.
На экране GRUB выберите Дополнительные параметры для Ubuntu и нажмите Введите .
Появится новый фиолетовый экран со списком ядер. Используйте клавиши ↑ и ↓, чтобы выбрать, какая запись будет выделена. Нажмите Enter, чтобы загрузить выбранное ядро, «e» для редактирования команд перед загрузкой или «c» для командной строки. Нажмите Esc, чтобы вернуться в предыдущее меню.
Ответ Джеккобека описывает метод просмотра grub.cfg
и прокрутки исходного кода для поиска номера меню. Более простой способ - использовать этот сценарий :
Grub Version: 2.02~beta2-36ubuntu3.22
┌───────────┤ Use arrow, page, home & end keys. Tab toggle option ├────────────┐
│ Menu No. ----------- Menu Name ----------- │
│ │
│ 1>3 Ubuntu, with Linux 4.15.0-55-generic ↑│
│ 1>6 Ubuntu, with Linux 4.15.0-54-generic ▒│
│ 1>9 Ubuntu, with Linux 4.14.134-0414134-generic ▒│
│ 1>12 Ubuntu, with Linux 4.14.120-0414120-generic ▮│
│ 1>15 Ubuntu, with Linux 4.14.114-0414114-generic ▒│
│ 1>18 Ubuntu, with Linux 4.14.110-0414110-generic ▒│
│ 1>21 Ubuntu, with Linux 4.14.98-041498-generic ▒│
│ 1>24 Ubuntu, with Linux 4.14.89-041489-generic ▒│
│ 1>27 Ubuntu, with Linux 4.14.78-041478-generic ▒│
│ 1>30 Ubuntu, with Linux 4.14.70-041470-generic ▒│
│ 1>33 Ubuntu, with Linux 4.4.0-157-generic ▒│
│ 1>36 Ubuntu, with Linux 3.16.60-031660-generic ▒│
│ 1>36 Ubuntu, with Linux 3.16.60-031660-generic ▒│
│ 2 Ubuntu 18.04.1 LTS (18.04) (on /dev/nvme0n1p10) ▒│
│ 3 Advanced options for Ubuntu 18.04.1 LTS (18.04) (on /dev/nvme0n1p10) ▒│
│ 3>0 Ubuntu (on /dev/nvme0n1p10) ↓│
│ │
│ │
│ [Display Grub Boot] Exit │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
Примечание: В этом примере grub-menu.sh short
использовался для вызова сценария. Параметр short
подавляет следующие строки:
│ 1>10 Ubuntu, with Linux 4.14.134-0414134-generic (upstart) ▒│
│ 1>11 Ubuntu, with Linux 4.14.134-0414134-generic (recovery mode) ▒│
После прокрутки записей (вы можете использовать колесо прокрутки мыши или клавиши со стрелками) нажмите Escape , чтобы вернуться к команде строка.
Если вы нажмете Enter , отобразятся соответствующие команды grub для записи:
menuentry 'Ubuntu, with Linux 4.14.134-0414134-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.14.134-0414134-generic-advanced-b40b3925-70ef-447f-923e-1b05467c00e7' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b40b3925-70ef-447f-923e-1b05467c00e7
else
search --no-floppy --fs-uuid --set=root b40b3925-70ef-447f-923e-1b05467c00e7
fi
echo 'Loading Linux 4.14.134-0414134-generic ...'
linux /boot/vmlinuz-4.14.134-0414134-generic root=UUID=b40b3925-70ef-447f-923e-1b05467c00e7 ro noplymouth fastboot acpiphp.disable=1 pcie_aspm=force vt.handoff=7 i915.fastboot=1 nopti nospectre_v2 nospec mem_sleep_default=deep
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.14.134-0414134-generic
}
Press <Enter> to continue
Для каждой записи меню существует набор команд grub. Все скомпилированные записи хранятся в файле /boot/grub/grub.cfg
.
В этом примере мы хотим, чтобы номер меню `1> 9> был установлен по умолчанию, поэтому мы используем:
sudo -H gedit /etc/default/grub
и найдите эту строку:
GRUB_DEFAULT=0
и измените ее на эту:
GRUB_DEFAULT="1>9"
Затем сохраните файл и запустите
sudo update-grub
Перезагрузитесь в определенное ядро, номер версии и тип которого можно узнать из ls / boot | grep vmlinuz
выполнение команды.
Создайте сценарий со следующим содержимым: $ vim.tiny kernboot.sh
kernel="5.3.0-40-generic"
kernlist="$(grep -i "menuentry '" /boot/grub/grub.cfg|sed -r "s|--class .*$||g")"
printf "%s$kernlist\n" | logger
menuline="$(printf "%s$kernlist\n"|grep -ne $kernel | grep -v recovery | cut -f1 -d":")"
menunum="$(($menuline-2))"
grub-reboot "1>$menunum"
echo "The next grub's menu entry will be choosen after the reboot:\n 1>$menunum" | logger
reboot
Добавьте разрешения на выполнение для сценария и запустите его:
$ chmod +x kernboot.sh
$ sudo ./kernboot.sh
Сценарий может быть размещен в cron с помощью sudo crontab -e
и @reboot / path / to / script
Я пробовал его 19.10 и 20.04, и он работает, как ожидалось. Этот сценарий, но без команды reboot
, может быть даже помещен в cron
root с помощью sudo crontab -e
: @reboot /pathto/kernboot.sh
и, как следствие, в случае следующей загрузки ОС загрузится с ядром, указанным в скрипте.