如何使用较旧的内核版本启动?


55

最新的内核导致我的声音出现问题,在较旧的版本上效果很好。由于我仅安装了Ubuntu,因此启动时不会显示Grub。引导时如何手动选择内核版本?

Answers:


58

显示Grub的最简单方法是SHIFT在引导时按住按钮。

或者,您可以始终显示Grub而不引导任何特定的内核:

gksudo gedit /etc/default/grub

更改GRUB_TIMEOUT为-1并注释掉GRUB_HIDDEN_TIMEOUT

通过跑步结束

sudo update-grub

5
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported. 我评论GRUB_HIDDEN_TIMEOUT并设定了GRUB_TIMEOUT=0
acidghost

明确地说:GRUB_HIDDEN_TIMEOUT是运行'update-grub'时需要设置的环境变量吗?
乔纳森·哈特利

1
@JonathanHartley GRUB_HIDDEN_TIMEOUT的定义是/etc/default/grub
wjandrea '16

20

引导时按住Shift键,将显示Grub菜单。现在,您可以选择一个较旧的内核版本。

要选择较旧的内核作为默认内核,请参阅这篇文章


2
就我而言(Ubuntu 16.04),它是左移。右移不起作用。
鲍勃

1
如果较旧的内核未在grub中显示(已删除)怎么办?这是否意味着这些内核不可访问?
Kalamalka Kid

1
我不得不使用逃逸(而不是转移)
乔纳森·金

5

引导时,当GRUB出现条目时,请选择第二个条目,即Ubuntu的Advanced选项,您可以看到以前安装的不同的较旧内核版本,可以选择其中一个对您有用。否则,请转到grub.cfg,然后将所需的内核版本粘贴到当前安装的内核条目的顶部。两种方式都有效


3

如果您的系统中有几个内核,则可以手动设置将开始的内核版本:

  1. BIOS启动后,按Shift键重新启动PC以显示GRUB。您将看到类似: GRUB起始页的信息

  2. 选择“ Ubuntu的高级选项”并记住此菜单行的索引(计数从0开始)在图片索引上为1

选择具体内核

  1. 选择具体的内核进行启动,并记住该菜单行的索引(计数从0开始)在所选内核的图片索引上为2

  2. 启动系统。此操作用于在具体内核上一次引导。如果您想一直从具体内核开始,则应该执行以下步骤:

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。重新启动后检查内核版本:

匿名-r


2

通过https://help.ubuntu.com/community/Grub2

GRUB_HIDDEN_TIMEOUT = 0

此设置确定没有GRUB 2菜单的屏幕将显示多长时间。当屏幕为空白时,用户可以按任意键显示菜单。

如果仅存在一个操作系统,则默认行为是隐藏菜单。如果只有Ubuntu的用户希望显示菜单,请在此行的开头放置#符号以禁用隐藏的菜单功能。

降级内核:如何在11.10上降级内核

升级内核:如何将内核升级到3.1?


1

请使用以下命令安装先前的内核:

sudo apt-get install linux-image-3.0.0-12-generic linux-headers-3.0.0-12-generic

然后重启。系统将提示您选择内核。


1
  1. 在引导过程中,紧随BIOS / UEFI启动屏幕之后,使用BIOS,快速按住该Shift键,将弹出GNU GRUB菜单。(如果看到Ubuntu徽标,则您错过了进入GRUB菜单的要点。)使用UEFI时,按(也许几次)Esc按键即可进入GRUB菜单。有时,制造商的启动屏幕是Windows引导程序的一部分,因此,在打开计算机电源时,它会直接进入GRUB屏幕,然后Shift不需要按。

  2. 在GRUB屏幕上,选择Ubuntu的高级选项,然后按Enter

    在此处输入图片说明

  3. 将会出现一个新的紫色屏幕,显示内核列表。使用↑和↓键选择突出显示的条目。按Enter键启动选定的内核,按“ e”编辑启动前的命令,或按“ c”表示命令行。按Esc返回上一级菜单。

    在此处输入图片说明


1
尽管与这个简短得多的答案相同:askubuntu.com/a/584738/307523您的答案在屏幕截图和Shift首先显示grub的键上就更进一步了。
WinEunuuchs2Unix

0

Jackkobec的答案描述了一种查看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以启动以前的内核

每个菜单项都有一组grub命令。编译后的条目都存储在/boot/grub/grub.cfg文件中。

在此示例中,我们希望将菜单号“ 1> 9>”设置为默认值,因此我们使用:

sudo -H gedit /etc/default/grub

并找到以下行:

GRUB_DEFAULT=0

并将其更改为此:

GRUB_DEFAULT="1>9"

然后保存文件并运行

sudo update-grub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.