调整内核启动顺序和删除(旧内核)

需求:

配置Caffe需要配置显卡驱动和cuda等一堆东西。如果更新到了新内核,这些环境可能会没有配置好。于是要用Caffe还得用原来的内核来启动Ubuntu。
但旧的内核Ubuntu的启动项会放在“Previous Version”里面,这样很不方便。于是需要调整下启动项顺序,让系统默认启动旧的内核。

方法:

  1. 确认目前系统下安装的内核版本:
    1
    dpkg dpkg --get-selections |grep linux-image

我的有:

1
2
3
4
5
linux-image-3.8.0-29-generic			install
linux-image-3.8.0-30-generic install
linux-image-3.8.0-31-generic install
linux-image-3.8.0-33-generic install
linux-image-3.8.0-34-generic install

比如我找到我想默认启动是33版本的内核。

  1. 修改启动项顺序,这个需要配置grub,打开grub的配置文件sudo gedit /boot/grub/grub.cfg
    之后找到33内核相关的行:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    menuentry 'Ubuntu, with Linux 3.8.0-33-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root f80f33c8-2270-4d2e-8311-5e4cf4874e19
    linux /boot/vmlinuz-3.8.0-33-generic root=UUID=f80f33c8-2270-4d2e-8311-5e4cf4874e19 ro quiet splash $vt_handoff
    initrd /boot/initrd.img-3.8.0-33-generic
    }
    menuentry 'Ubuntu, with Linux 3.8.0-33-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root f80f33c8-2270-4d2e-8311-5e4cf4874e19
    echo 'Loading Linux 3.8.0-33-generic ...'
    linux /boot/vmlinuz-3.8.0-33-generic root=UUID=f80f33c8-2270-4d2e-8311-5e4cf4874e19 ro recovery nomodeset
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-3.8.0-33-generic
    }

然后放到(所有启动项中的)最前面即可。

  1. 其实到这里就实现了我的需求的,但程序员都爱折腾,于是我顺便看了看要怎么删除多余的内核。其实也很简单,可以用apt-get remove直接来:
    1
    apt-get remove linux-image-3.8.0-29-generic linux-image-3.8.0-30-generic linux-image-3.8.0-31-generic

注意

  • 删除后,还是需要到grub.cfg中去手动删除多余的启动项的。
  • 一般不要删除系统目前使用的最新的那个内核。有可能会导致不能开机的情况。
  • 所以这里其实是删除多余的内核。

参考:

修改ubuntu开机启动项顺序 grub设置 删除多余内核

很久没有更新网站,发现多了不少评论和问题,无法一一回复,如果现在仍有问题请再次留言 :) 2016.03.29