需求:
配置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中去手动删除多余的启动项的。
- 一般不要删除系统目前使用的最新的那个内核。有可能会导致不能开机的情况。
- 所以这里其实是删除多余的旧内核。
以上全文完整转载自:调整内核启动顺序和删除(旧内核)
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。