什么是grub?
GRUB 是一个引导加载程序,可以引导各种各样的操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。
grub的版本
目前,GRUB分成GRUB legacy和GRUB 2。
grub 0.X (grub legacy)
grub 1.X (grub 2)
目前centos 5和centos 6使用的就是 grub legacy 版本,centos 7使用的是 grub2 版本的启动引导程序。注意本文所说的grub指grub2.
grub的安装
sudo apt install grub-common
sudo apt install grub2-common
sudo apt install grub-efi-amd64
sudo apt install grub-efi-amd64-bin
sudo apt install grub-efi-amd64-dbg
注意:后三个包名,要根据自己机器CPU架构而定
grub配置文件
/boot/grub/grub.cfg
grub程序在引导启动时会读取这个配置文件,并按照这个文件的配置参数引导启动系统。
/boot/grub/grubenv
Grub没有实现对文件写的功能,在操作系统运行之前,grub通过环境变量的方式把一些状态信息保存到这个配置文件。
/etc/default/grub
修改该配置文件后,需要执行sudo update-grub生效。
配置文件中相关参数介绍请参考:http://www.gnu.org/software/grub/manual/grub/grub.html#Simple-configuration
DEEPIN_GFXMODE_DETECT=2
GRUB_CMDLINE_LINUX="" #要添加到Linux内核菜单项的命令行参数
GRUB_CMDLINE_LINUX_DEFAULT=“splash quiet” #启动内核时,简化提示信息。改为“”,则启动内核时输出很多日志信息
GRUB_DEFAULT=0 #默认启动项
#获得发行版本(此行将追加到所有的linux 定义内核行的后面,不论是救援模式还是一般模式)
GRUB_DISTRIBUTOR="/usr/bin/lsb_release -d -s 2>/dev/null || echo Deepin
"
GRUB_GFXMODE=1920x1200,1920x1080,1600x1200,1680x1050,1600x1024,1400x1050,1600x900,1280x1024,1440x900,1400x900,1280x960,1440x810,1368x768,1360x768,1280x800,1152x864,1280x720,1024x768,auto
GRUB_THEME=/boot/grub/themes/deepin-fallback/theme.txt #跟启动界面的主题,各种图片,字体等
GRUB_TIMEOUT=5 #grub启动界面停留时间,默认是5,0表示立即跳过,-1表示一直停留
grub命令
man手册可以查看以下命令用法
以下命令详解请参考另一篇文章:grub系列命令的使用
grub-editenv
grub-install
grub-mkconfig
grub-mklayout
grub-mkrescue
grub-reboot
grub-syslinux2cfg
grub-file
grub-kbdcomp
grub-mkdevicemap
grub-mknetdir
grub-mkstandalone
grub-render-label
grub-fstest
grub-macbless
grub-mkfont
grub-mkpasswd-pbkdf2
grub-mount
grub-script-check
grub-glue-efi
grub-menulst2cfg
grub-mkimage
grub-mkrelpath
grub-probe
grub-set-default
如何进入grub命令模式
在grub界面,按c键进入命令模式,按e键进入编辑模式
命令行和菜单项命令的列表请参考: http://www.gnu.org/software/grub/manual/grub/grub.html#Command_002dline-and-menu-entry-commands.
通过grub命令引导操作系统
loopback loop (hd0, msdos1)/Fedora.iso
set root=(loop)
linux /path/to/vmlinuz
initrd /path/to/initrd.img
boot