Ubuntu 切换系统默认启动内核

1.首先找到内核名称。

grep menuentry /boot/grub/grub.cfg

例如我的最后显示如下,复制所要的内核名称(例如我需要的Ubuntu,Linux 4.15.0-29-generic)。

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3a45027c-15ed-4cec-a233-7c3927e74d11' {
submenu 'Ubuntu 高级选项' $menuentry_id_option 'gnulinux-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' {
	menuentry 'Ubuntu,Linux 4.15.0-43-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-43-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' {
	menuentry 'Ubuntu, with Linux 4.15.0-43-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-43-generic-init-upstart-3a45027c-15ed-4cec-a233-7c3927e74d11' {
	menuentry 'Ubuntu, with Linux 4.15.0-43-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-43-generic-recovery-3a45027c-15ed-4cec-a233-7c3927e74d11' {
	menuentry 'Ubuntu,Linux 4.15.0-33-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-33-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' {
	menuentry 'Ubuntu, with Linux 4.15.0-33-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-33-generic-init-upstart-3a45027c-15ed-4cec-a233-7c3927e74d11' {
	menuentry 'Ubuntu, with Linux 4.15.0-33-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-33-generic-recovery-3a45027c-15ed-4cec-a233-7c3927e74d11' {
	menuentry 'Ubuntu,Linux 4.15.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11' {
	menuentry 'Ubuntu, with Linux 4.15.0-29-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-init-upstart-3a45027c-15ed-4cec-a233-7c3927e74d11' {
	menuentry 'Ubuntu, with Linux 4.15.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-29-generic-recovery-3a45027c-15ed-4cec-a233-7c3927e74d11' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {
menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-246AF2746AF241DA' {

2.然后修改grub文件中的GRUB_DEFAULT="Ubuntu,Linux 4.15.0-29-generic".

sudo gedit /etc/default/grub

3.sudo update-grub,这时候会有WARNING提示修改GRUB_DEFAULT的名称,例如我的WARNING提示我将GRUB_DEFAULT修改为GRUB_DEFAULT="gnulinux-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11>gnulinux-4.15.0-29-generic-advanced-3a45027c-15ed-4cec-a233-7c3927e74d11"。将该名字复制重新进行步骤二,然后再sudo update-grub。

sudo update-grub

4.重启。

sudo reboot

有些时候,会出现以下情况。

可能第一次重启仍需要进入Ubuntu高级选项选择系统内核,此时选择步骤2中选择的版本的内核,然后进入系统后输入sudo apt-get update,重复步骤4重启,即可切换系统默认启动内核。

<think>好的,用户现在问的是如何在Ubuntu中设置默认启动内核,之前他提到了grubby安装的问题,但这次更具体了。根据历史记录,我之前已经解释过grubby不适用于Ubuntu,推荐使用GRUB2工具。现在用户直接询问如何设置默认内核,我需要详细说明步骤。首先,用户可能已经安装了多个内核,需要切换默认启动项。Ubuntu使用GRUB2,默认情况下会选择第一个菜单项。用户想修改这个默认项,可能需要通过修改GRUB配置文件。根据引用[1]提到的,官方建议修改/etc/default/grub而不是直接编辑grub.cfg,这点需要强调,避免用户误操作。 接下来,步骤应该是这样的:确定当前内核列表,找到需要设置为默认内核序号,修改/etc/default/grub中的GRUB_DEFAULT参数,然后运行update-grub更新配置。这里要详细说明如何确定序号,比如通过grep查询/boot/grub/grub.cfg中的菜单项,或者使用grub-reboot和grub-set-default命令。另外,用户可能对GRUB_DEFAULT的两种设置方式(序号和菜单标题)不太清楚,需要举例说明。需要注意,GRUB的序号是从0开始的,所以第一个菜单项是0,第二个是1,以此类推。如果用户想用菜单标题,需要确保标题正确,避免拼写错误。还要提醒用户修改后必须运行sudoupdate-grub,否则更改不会生效。 另外,用户可能遇到的问题包括:修改后没有生效,可能是序号错误,或者没有更新grub。这时候需要检查步骤是否正确,或者尝试使用sudogrub-editenv list确认默认设置。还可以建议用户使用sudogrub-reboot临时设置下次启动内核,适合测试不同内核的情况。 最后,生成相关问题时,要围绕默认内核设置的其他方面,比如恢复旧内核、调整超时时间、自定义GRUB菜单等,这些都是用户可能进一步想知道的内容。</think>### Ubuntu设置默认启动内核的完整步骤 --- #### 一、确定当前内核列表 1. 查看已安装内核版本: ```bash dpkg -l | grep linux-image ``` 2. 查看GRUB菜单项: ```bash grep -P "menuentry 'Ubuntu" /boot/grub/grub.cfg ``` 输出示例: ``` menuentry 'Ubuntu, with Linux 5.15.0-78-generic' --class ubuntu ... menuentry 'Ubuntu, with Linux 5.15.0-76-generic' --class ubuntu ... ``` --- #### 二、设置默认内核(两种方法) ##### 方法1:通过序号设置(推荐) 1. **修改GRUB配置文件** 编辑`/etc/default/grub`,找到`GRUB_DEFAULT`参数: ```bash sudo nano /etc/default/grub ``` - **选择第一个内核**(序号从0开始): ```bash GRUB_DEFAULT=0 ``` - **选择第二个内核**: ```bash GRUB_DEFAULT=1 ``` 2. **更新GRUB配置** ```bash sudo update-grub ``` ##### 方法2:通过菜单标题设置 1. **指定完整菜单标题** 例如选择第二个内核: ```bash GRUB_DEFAULT="1>Ubuntu, with Linux 5.15.0-76-generic" ``` - 注意:需完全匹配`grub.cfg`中的标题[^1] --- #### 三、验证设置 1. 查看当前默认内核: ```bash sudo grub-editenv list ``` 输出示例: ``` saved_entry=1 ``` --- #### 四、核心原理 - **GRUB启动流程**:GRUB通过`/boot/grub/grub.cfg`加载启动项,该文件由`update-grub`根据模板自动生成[^1] - **配置继承关系**: $$ \text{/etc/default/grub} \xrightarrow{\text{update-grub}} \text{/boot/grub/grub.cfg} $$ ---
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值