Linux修改默认内核

CentOS 7

    1. 查看系统内部有多少个内核:
cat /boot/grub2/grub.cfg |grep menuentry
    1. 配置从默认内核启动,下面命令的内核名称根据系统内部查到的实际名称来替换:
grub2-set-default “CentOS Linux (4.4.138) 7 (Core)”
    1. 验证是否配置成功:
grub2-editenv list

Ubuntu16.04

  • 0.环境准备
    Ubuntu16.04,内核版本4.10.0,新内核版本4.4.137
  • 1.修改grub配置文件
    编辑/etc/default/grub文件,将其中的GRUB_DEFAULT的值修改为saved
sudo gedit /etc/default/grub
  • 2.查看系统内部已安装的内核
sudo cat /boot/grub/grub.cfg | grep menuentry

选择新的默认内核,内核名称在menuentry后的双引号内,例如上述命令显示结果如下,从其中选择Ubuntu, with Linux 4.4.137作为新的启动内核

menuentry 'Ubuntu, with Linux 4.10.0-28-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-28-generic-advanced-a58882f8-c86d-4817-8517-0b846a106892' {
    menuentry 'Ubuntu, with Linux 4.10.0-28-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-28-generic-init-upstart-a58882f8-c86d-4817-8517-0b846a106892' {
    menuentry 'Ubuntu, with Linux 4.10.0-28-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-28-generic-recovery-a58882f8-c86d-4817-8517-0b846a106892' {
    menuentry 'Ubuntu, with Linux 4.4.137' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.137-advanced-a58882f8-c86d-4817-8517-0b846a106892' {
    menuentry 'Ubuntu, with Linux 4.4.137 (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.137-init-upstart-a58882f8-c86d-4817-8517-0b846a106892' {
    menuentry 'Ubuntu, with Linux 4.4.137 (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.137-recovery-a58882f8-c86d-4817-8517-0b846a106892' {
    menuentry 'Ubuntu, with Linux 4.4.137.old' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.137.old-advanced-a58882f8-c86d-4817-8517-0b846a106892' {
    menuentry 'Ubuntu, with Linux 4.4.137.old (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.137.old-init-upstart-a58882f8-c86d-4817-8517-0b846a106892' {
    menuentry 'Ubuntu, with Linux 4.4.137.old (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.137.old-recovery-a58882f8-c86d-4817-8517-0b846a106892'
  • 2.配置从默认内核启动
sudo grub-set-default xxx

其中xxx为选定的新内核的名称,例如此处的具体命令为

sudo grub-set-default "Ubuntu, with Linux 4.4.137"

更新grub配置

sudo update-grub

但Ubuntu16.04此处会报warning,warning信息如下

Warning: Please don't use old title `Ubuntu, with Linux 4.4.137' for GRUB_DEFAULT, use `Advanced options for Ubuntu>Ubuntu, with Linux 4.4.137' (for versions before 2.00) or `gnulinux-advanced-a58882f8-c86d-4817-8517-0b846a106892>gnulinux-4.4.137-advanced-a58882f8-c86d-4817-8517-0b846a106892' (for 2.00 or later)

warning中推荐使用Advanced options for Ubuntu>Ubuntu, with Linux 4.4.137,因此使用推荐的启动项(双引号内的内容)修改默认启动内核,例如

sudo grub-set-default "Advanced options for Ubuntu>Ubuntu, with Linux 4.4.137"

PS.在本人的测试中发下如果不使用Advanced选项,重启后仍为旧内核;每次grub-set-default后都需要update-grub

  • 3.重启验证
sudo reboot
uname -r
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,239评论 2 33
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,923评论 0 5
  • 一海现 长城连 六国旧事散云烟兵戈炼 铜人焰 齐都伏鸣蝉春袂暖 冷袖寒 杯盏上林卧花酣垄上闲 楚户三 只字铸秦乱 ...
    梦饮千樽月阅读 556评论 0 49
  • 今晚,夜深人静,窗外静谧。来到保险公司将近一个月,这一个月下来,感触颇多,收获颇多,甚至更多都无法用语言阐述。 也...
    走路有点远阅读 569评论 4 3