请知悉:本文最近一次更新为 8年 前,文中内容可能已经过时。

需求:

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

方法:

确认目前系统下安装的内核版本:

dpkg -- get -selections |grep linux- image 

我的有:

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版本的内核。

修改启动项顺序,这个需要配置grub,打开grub的配置文件

sudo gedit /boot/grub/grub.cfg

之后找到33内核相关的行:

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
}

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

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

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-调整旧内核启动顺序和删除》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌