Linux grub2-mkconfig命令介绍
grub2-mkconfig命令是用来生成GRUB 2的配置文件的命令,GRUB 2是一种常用的Linux启动引导程序,它可以让用户在多个操作系统之间选择启动。grub2-mkconfig命令会根据系统中安装的内核和操作系统,以及用户的自定义设置,来生成一个/boot/grub2/grub.cfg文件,这个文件是GRUB 2的主要配置文件,它决定了启动菜单的外观和功能。
Linux grub2-mkconfig命令适用的Linux版本
grub2-mkconfig命令适用于使用GRUB 2作为启动引导程序的Linux版本,例如Fedora, Ubuntu, Debian, CentOS等。不同的Linux版本可能有不同的安装方式和配置文件的位置,下面是一些常见的Linux版本的情况:
- Fedora: Fedora使用dnf作为包管理工具,可以用以下命令安装GRUB 2:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install grub2
Fedora的GRUB 2配置文件位于/boot/grub2/grub.cfg,可以用以下命令生成或更新:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- Ubuntu: Ubuntu使用apt作为包管理工具,可以用以下命令安装GRUB 2:
[linux@bashcommandnotfound.cn ~]$ sudo apt install grub2
Ubuntu的GRUB 2配置文件位于/boot/grub/grub.cfg,可以用以下命令生成或更新:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub/grub.cfg
- Debian: Debian也使用apt作为包管理工具,可以用以下命令安装GRUB 2:
[linux@bashcommandnotfound.cn ~]$ sudo apt install grub2
Debian的GRUB 2配置文件位于/boot/grub/grub.cfg,可以用以下命令生成或更新:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub/grub.cfg
- CentOS: CentOS使用yum作为包管理工具,可以用以下命令安装GRUB 2:
[linux@bashcommandnotfound.cn ~]$ sudo yum install grub2
CentOS 7的GRUB 2配置文件位于/boot/grub2/grub.cfg,可以用以下命令生成或更新:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
CentOS 8的GRUB 2配置文件位于/boot/efi/EFI/centos/grub.cfg,可以用以下命令生成或更新:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
Linux grub2-mkconfig命令的基本语法
grub2-mkconfig命令的基本语法如下:
grub2-mkconfig [选项] -o 输出文件
其中,输出文件是指要生成或更新的GRUB 2配置文件的路径,通常是/boot/grub2/grub.cfg或/boot/grub/grub.cfg,根据不同的Linux版本而定。选项是指一些可选的参数,用来控制grub2-mkconfig命令的行为,下面会介绍一些常用的选项。
Linux grub2-mkconfig命令的常用选项或参数说明
grub2-mkconfig命令的常用选项或参数如下:
选项 | 说明 |
---|---|
-h, --help | 显示帮助信息 |
-v, --version | 显示版本信息 |
-d, --directory | 指定GRUB 2的安装目录,默认是/boot/grub2或/boot/grub |
-o, --output | 指定输出文件,必须指定 |
-c, --config | 指定GRUB 2的配置文件,默认是/etc/default/grub |
-p, --prefix | 指定GRUB 2的前缀目录,默认是/boot/grub2或/boot/grub |
Linux grub2-mkconfig命令的实例
下面是一些grub2-mkconfig命令的实例,结合了最常搜索的关键词来作为标题。
实例1:生成GRUB 2配置文件
如果要生成GRUB 2配置文件,可以使用以下命令,根据不同的Linux版本,输出文件的路径可能不同:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
这个命令会扫描系统中的内核和操作系统,以及/etc/default/grub文件中的设置,来生成一个新的/boot/grub2/grub.cfg文件。如果已经存在一个旧的配置文件,会被覆盖。
实例2:更新GRUB 2配置文件
如果要更新GRUB 2配置文件,可以使用和生成配置文件相同的命令,例如:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
这个命令会重新生成一个新的配置文件,覆盖旧的配置文件。这个命令通常在安装或卸载内核或操作系统,或者修改/etc/default/grub文件后执行,以保证启动菜单的正确性。
实例3:指定GRUB 2的安装目录
如果要指定GRUB 2的安装目录,可以使用-d或--directory选项,例如:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -d /usr/lib/grub -o /boot/grub2/grub.cfg
这个命令会指定GRUB 2的安装目录为/usr/lib/grub,而不是默认的/boot/grub2或/boot/grub。这个选项通常在使用不同的GRUB 2版本或安装位置时使用。
实例4:指定GRUB 2的配置文件
如果要指定GRUB 2的配置文件,可以使用-c或--config选项,例如:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -c /etc/grub.d/40_custom -o /boot/grub2/grub.cfg
这个命令会指定GRUB 2的配置文件为/etc/grub.d/40_custom,而不是默认的/etc/default/grub。这个选项通常在使用自定义的GRUB 2配置文件时使用。
实例5:指定GRUB 2的前缀目录
如果要指定GRUB 2的前缀目录,可以使用-p或--prefix选项,例如:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -p /grub2 -o /boot/grub2/grub.cfg
这个命令会指定GRUB 2的前缀目录为/grub2,而不是默认的/boot/grub2或/boot/grub。这个选项通常在使用不同的GRUB 2安装位置或分区时使用。
实例6:生成GRUB 2配置文件并显示在标准输出
如果要生成GRUB 2配置文件并显示在标准输出,而不是写入到文件中,可以省略-o或--output选项,例如:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig
这个命令会生成一个GRUB 2配置文件,并打印在屏幕上,不会覆盖原来的配置文件。这个命令通常在测试或调试GRUB 2配置文件时使用,可以查看生成的配置文件是否正确。
实例7:修改GRUB 2的超时时间
如果要修改GRUB 2的超时时间,即启动菜单显示的时间,可以编辑/etc/default/grub文件中的GRUB_TIMEOUT变量,例如:
[linux@bashcommandnotfound.cn ~]$ sudo vi /etc/default/grub
在编辑器中,找到GRUB_TIMEOUT变量,将其值改为想要的秒数,例如10,保存并退出。然后,使用grub2-mkconfig命令更新GRUB 2配置文件,例如:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
这样,下次启动时,GRUB 2的超时时间就会变为10秒。
实例8:添加自定义的启动项
如果要添加自定义的启动项,例如启动一个ISO镜像文件,可以编辑/etc/grub.d/40_custom文件,例如:
[linux@bashcommandnotfound.cn ~]$ sudo vi /etc/grub.d/40_custom
在编辑器中,添加以下内容,根据实际情况修改ISO文件的路径和名称,保存并退出。
menuentry "Custom ISO" {
set isofile="/home/linux/custom.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd
}
然后,使用grub2-mkconfig命令更新GRUB 2配置文件,例如:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
这样,下次启动时,GRUB 2的启动菜单中就会出现一个名为Custom ISO的启动项,可以选择它来启动ISO镜像文件。
实例9:删除不需要的启动项
如果要删除不需要的启动项,例如一个已经卸载的操作系统,可以编辑/etc/grub.d/10_linux文件,例如:
[linux@bashcommandnotfound.cn ~]$ sudo vi /etc/grub.d/10_linux
在编辑器中,找到对应的启动项,例如:
menuentry 'Ubuntu 20.04.1 LTS (20.04) (on /dev/sda2)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-0c3f5a0c-9f2a-4de7-8e1c-75f6a3a1b2fd' {
insmod part_msdos
insmod ext2
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 0c3f5a0c-9f2a-4de7-8e1c-75f6a3a1b2fd
else
search --no-floppy --fs-uuid --set=root 0c3f5a0c-9f2a-4de7-8e1c-75f6a3a1b2fd
fi
linux /boot/vmlinuz-5.4.0-42-generic root=UUID=0c3f5a0c-9f2a-4de7-8e1c-75f6a3a1b2fd ro quiet splash $vt_handoff
initrd /boot/initrd.img-5.4.0-42-generic
}
将其删除,保存并退出。然后,使用grub2-mkconfig命令更新GRUB 2配置文件,例如:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
这样,下次启动时,GRUB 2的启动菜单中就不会出现Ubuntu 20.04.1 LTS的启动项了。
实例10:修改GRUB 2的主题和字体
如果要修改GRUB 2的主题和字体,可以下载一些GRUB 2的主题包,例如GRUB2 Themes,然后解压到/boot/grub2/themes目录下,例如:
[linux@bashcommandnotfound.cn ~]$ sudo unzip grub2-theme-vimix.zip -d /boot/grub2/themes
然后,编辑/etc/default/grub文件中的GRUB_THEME变量,指定主题的路径,例如:
[linux@bashcommandnotfound.cn ~]$ sudo vi /etc/default/grub
在编辑器中,找到GRUB_THEME变量,将其值改为主题的路径,例如:
GRUB_THEME="/boot/grub2/themes/grub2-theme-vimix/theme.txt"
保存并退出。然后,使用grub2-mkconfig命令更新GRUB 2配置文件,例如:
[linux@bashcommandnotfound.cn ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
这样,下次启动时,GRUB 2的启动菜单就会使用新的主题和字体了。
Linux grub2-mkconfig命令的注意事项
以下是一些使用grub2-mkconfig命令的注意事项:
- 在使用grub2-mkconfig命令之前,最好先备份旧的配置文件,以防出现意外的情况,例如:
[linux@bashcommandnotfound.cn ~]$ sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
- 在使用grub2-mkconfig命令之后,最好重启系统,以检查启动菜单是否正确。
Linux grub2-mkconfig命令的快捷键
grub2-mkconfig命令本身没有快捷键,但是在启动菜单中,可以使用一些快捷键来控制GRUB 2的行为,以下是一些常用的快捷键:
快捷键 | 说明 |
---|---|
Esc | 返回上一级菜单或取消编辑 |
Enter | 选择菜单项或确认编辑 |
e | 编辑菜单项的启动参数 |
c | 进入GRUB 2命令行模式 |
Tab | 在命令行模式下,自动补全命令或文件名 |
Ctrl-x | 在编辑模式下,执行修改后的启动参数 |
F10 | 在编辑模式下,执行修改后的启动参数 |
Linux grub2-mkconfig相关命令
以下是一些和grub2-mkconfig相关的命令,以及它们的作用:
评论区