V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kentxxq
V2EX  ›  Linux

centos7 如何自动选择第一个内核?

  •  
  •   kentxxq · 2019-04-13 20:46:00 +08:00 · 4492 次点击
    这是一个创建于 2053 天前的主题,其中的信息可能已经有所发展或是发生改变。
    真的是搜了一大堆的 grub2 资料了,没有解决。。。
    20 条回复    2019-04-15 15:40:19 +08:00
    tozp
        1
    tozp  
       2019-04-13 20:49:38 +08:00
    记不太清了,好多年前玩的,改 /boot/grub2 里面的配置就行了,能自定义启动菜单
    kentxxq
        2
    kentxxq  
    OP
       2019-04-13 20:52:36 +08:00
    @tozp 我看了 /boot/grub2/grub.cfg 文件,里面写着不要修改。
    貌似是用 /etc/default/grub 配合 grub2-mkconfig 来生成。

    但是我改了好多遍,都没效果
    hahahe
        3
    hahahe  
       2019-04-13 20:53:34 +08:00
    egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
    grub2-set-default 0
    kentxxq
        4
    kentxxq  
    OP
       2019-04-13 21:03:24 +08:00
    @hahahe 跑了一下,不行。。

    我之前的操作是
    /etc/default/grub

    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap"
    GRUB_DISABLE_RECOVERY="true"
    GRUB_RECORDFAIL_TIME=$GRUB_TIMEOUT

    然后 grub2-mkconfig -o /boot/grub2/grub.cfg
    mikeguan
        5
    mikeguan  
       2019-04-13 21:10:05 +08:00 via Android
    grub 目录下面有个 env 文件 改这个文件
    HEROic
        6
    HEROic  
       2019-04-13 21:29:57 +08:00 via Android
    现在问题是? grup 倒计时之后不进入内核引导,还是你要选择某个内核为默认内核?
    kentxxq
        7
    kentxxq  
    OP
       2019-04-13 21:36:42 +08:00
    @HEROic 没有倒计时出现!
    kentxxq
        8
    kentxxq  
    OP
       2019-04-13 21:39:40 +08:00
    @HEROic 我装好 centos7 以后,update 了一下。
    开机 2 个选择:
    1.centos linux 3.10.0xxxxxxxx
    2.centos linux 0-rescue-xxxxxxx

    我必须手动选第一个,否则一直卡在这
    kentxxq
        9
    kentxxq  
    OP
       2019-04-13 21:44:10 +08:00
    还有一个,我不知道 efi 是什么东西。。可能有影响?我在看相关的资料中。。
    Firxiao
        10
    Firxiao  
       2019-04-13 22:04:05 +08:00
    #vim /etc/default/grub
    GRUB_DEFAULT="xxxxxx"
    # grub2-mkconfig --output=/boot/grub2/grub.cfg


    很早之前的记录 应该没有变 你试下看
    https://my.oschina.net/firxiao/blog/465691
    jiqing
        11
    jiqing  
       2019-04-13 22:11:10 +08:00
    战略性马克
    omph
        12
    omph  
       2019-04-13 22:29:13 +08:00
    [How to change default boot kernel permanently or temporarily on CentOS]( http://ask.xmodulo.com/change-default-boot-kernel-centos.html)
    AllenHua
        13
    AllenHua  
       2019-04-13 22:59:40 +08:00
    准备说和 3 楼一样的。
    1、egrep ^menuentry /etc/grub2.cfg |cut -f 2 -d \’
    2、grub2-set-default 0
    3、reboot
    HEROic
        14
    HEROic  
       2019-04-14 00:03:05 +08:00 via Android
    @kentxxq 试试找下

    if [ x$feature_timeout_style = xy ] ; then set timeout_style=menu set timeout=2

    类似 timeout 字样,修改一下
    Nitroethane
        15
    Nitroethane  
       2019-04-14 02:19:48 +08:00 via Android
    @kentxxq 一直卡在 grub 选择内核界面应该是 timeout 的锅吧。配置文件里设置一下 timeout 的值应该就可以了
    sholmesian
        16
    sholmesian  
       2019-04-14 08:42:43 +08:00 via iPhone
    adadada
        17
    adadada  
       2019-04-14 10:30:15 +08:00
    把 /etc/default/grub 里的 TIMEOUT 改成 0,然后再执行命令 grub2-mkconfig -o /boot/grub2/grub.cfg (如果你的 centos 走的是 EFI 启动,执行命令 grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg) 重新生成 grub 配置文件。

    CentOS wiki 上有一个简单的 grub2 页面: https://wiki.centos.org/HowTos/Grub2
    grub2 自己的文档在: https://www.gnu.org/software/grub/manual/grub/grub.html
    kentxxq
        18
    kentxxq  
    OP
       2019-04-14 18:57:38 +08:00
    @adadada 的确设置成 0 以后直接跳过了选择,开始进入默认的第一个内核了!
    liuxu
        19
    liuxu  
       2019-04-15 09:51:47 +08:00
    现在看看安装的内核在 grub2.cfg 的什么位置上:

    [root@liuquanhao ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
    CentOS Linux (4.18.15-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux 7 Rescue f630cedcce5f4a3cbc5dcb5acf68ddd3 (3.10.0-862.14.4.el7.x86_64)
    CentOS Linux (3.10.0-862.14.4.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-00a62363617944e08db8db894ba6145e) 7 (Core)
    排在第一行,因为位置是从 0 开始数,所以它排在第 0 位。

    现在设置 0 位为默认启动内核:

    [root@liuquanhao ~]# grub2-set-default 0
    内核设置好后就可以重启系统了:

    [root@liuquanhao ~]# reboot



    来源: https://www.liuquanhao.com/memory/2018/10/20/Centos7%E5%BC%80%E5%90%AFbbr.html
    kentxxq
        20
    kentxxq  
    OP
       2019-04-15 15:40:19 +08:00
    重装了几十次以后,总结一下问题

    是用 rufus 制作的 u 盘启动盘。用的 centos7.6 版本的 iso

    在安装前,选择引导设备的时候
    1. uefi:usb
    2. usb
    3. ssd

    选择第一个来安装
    分区情况如下
    /boot
    /boot/efi
    /
    swap
    我尝试了你们所有的方法,都没能成功。

    @adadada 只能通过把 5 改成 0,grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg 取消内核的选择。

    选择第二个来安装,应该也就是 bios 方式
    分区情况如下
    /boot
    /
    swap
    运行正常,grub2-mkconfig -o /boot/grub2/grub.cfg 所有改动的参数也能生效。


    实在折腾不动了。。就这样用吧。

    bios 方式基本够用了。
    uefi 貌似有很多的优势。以后弄专门的存储服务器,不在乎升不升级的话,关掉内核选择也无所谓。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:44 · PVG 17:44 · LAX 01:44 · JFK 04:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.