CentOS GRUB引导详解
一、什么是GRUB引导器
GRUB(Grand Unified Bootloader)是常见的引导加载程序,用于在计算机启动时加载操作系统,它是许多Linux发行版的标准引导加载程序之一,GRUB分为两个主要版本:GRUB legacy和GRUB2。
二、GRUB的作用
GRUB的主要作用是在计算机启动时引导加载操作系统,并提供一个菜单供用户选择不同的操作系统或内核版本,它通过读取配置文件来查找并加载操作系统的内核和初始内存盘,然后将系统的控制权移交给内核。
三、为什么使用GRUB引导器
在CentOS中使用GRUB引导器有以下几个好处:
1、多重引导:GRUB支持多重引导,可以在同一台计算机上同时安装多个操作系统。
2、灵活配置:可以通过修改配置文件来添加或删除启动选项。
3、兼容性好:GRUB能够支持大多数常见的操作系统和硬件。
4、开源软件:作为开源软件,GRUB持续更新和维护,提供了良好的技术支持。
四、准备安装环境
1. 下载CentOS镜像文件
从CentOS官网下载适用于计算机架构的CentOS镜像文件(可以选择Minimal ISO或DVD ISO)。
wget http://mirror.centos.org/centos/7/isos/x86_64/CentOS7x86_64Minimal2003.iso
2. 创建CentOS安装USB启动盘
将下载的CentOS镜像文件写入USB启动盘中,并确保计算机可以从该启动盘启动,可以使用工具如Rufus(Windows)或dd命令(Linux)来完成这一步。
使用dd命令将CentOS镜像文件写入USB启动盘 dd if=/path/to/CentOS7x86_64Minimal2003.iso of=/dev/sdX bs=4M; sync
注意:请将/path/to/centos7x86_64Minimal2003.iso
替换为实际的镜像文件路径,将/dev/sdX
替换为实际的USB设备标识。
五、安装CentOS 7与配置GRUB
1. 插入安装光盘并重启计算机
将CentOS安装USB启动盘插入计算机,并重启计算机,确保BIOS设置中启用从USB设备启动。
2. 进入安装界面并选择语言
在CentOS安装界面,选择安装过程中使用的语言,然后点击“继续”。
3. 安装摘要界面
选择“Installation Summary”进行系统安装设置,包括键盘布局、语言支持、时间及日期等。
4. 磁盘分区与文件系统设置
在“Installation Destination”部分,选择磁盘并进行分区,通常可以选择“Automatic Partitioning”自动分区。
5. 网络与主机名配置
在“Network & Host Name”部分,配置网络接口和主机名。
6. 开始安装
完成上述配置后,点击“Begin Installation”开始安装。
7. 设置GRUB引导
在安装过程中,系统会自动提示配置GRUB引导,需要选择将GRUB安装在哪个磁盘上,通常选择安装在系统的主硬盘上。
六、GRUB配置文件详解
GRUB的配置文件位于/boot/grub2/grub.cfg
,但一般不建议直接编辑这个文件,而是通过编辑/etc/default/grub
和/etc/grub.d/
目录下的文件来进行配置。
1. /etc/default/grub
这是GRUB的主要配置文件,包含全局设置。
[root@host ~]# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet" GRUB_DISABLE_RECOVERY="true"
GRUB_TIMEOUT
:设置菜单显示的时间(单位:秒)。
GRUB_DEFAULT
:设置默认启动项。saved
表示保存上次启动的项目。
GRUB_DISABLE_SUBMENU
:是否禁用子菜单。
GRUB_TERMINAL_OUTPUT
:设置终端输出模式。
GRUB_CMDLINE_LINUX
:传递给Linux内核的命令行参数。
GRUB_DISABLE_RECOVERY
:是否禁用救援模式。
2. /etc/grub.d/
这个目录包含了各个启动项的脚本,每个脚本定义了一个菜单项。/etc/grub.d/40_custom
可以用来添加自定义的启动项。
[root@host ~]# cat /etc/grub.d/40_custom menuentry "My Custom Entry" { set root=(hd0,1) linux /vmlinuz3.10.0229.el7.x86_64 root=/dev/mapper/centosroot ro crashkernel=auto rhgb quiet initrd /initramfs3.10.0229.el7.x86_64.img }
七、常见问题与解决方案
1. 修复GRUB引导
如果由于某种原因导致GRUB无法引导,可以使用以下步骤修复:
1、插入CentOS安装介质并从中启动。
2、选择“Troubleshooting”进入救援模式。
3、挂载系统分区并切换到chroot环境:
mount /dev/sda1 /mnt chroot /mnt
4、重新安装GRUB:
grub2install /dev/sda exit umount /mnt reboot
2. 双系统引导配置
在多系统环境下,可以通过更新GRUB配置文件来实现双系统或多系统引导,编辑/etc/grub.d/40_custom
文件,添加其他系统的启动项,要添加Windows 10的启动项,可以添加如下内容:
menuentry "Windows 10 (on /dev/sda1)" { set root='(hd0,1)' chainloader +1 }
八、FAQs
Q1: 如何更改GRUB引导超时时间?
A1: 编辑/etc/default/grub
文件,修改GRUB_TIMEOUT
参数,将超时时间设置为10秒:
GRUB_TIMEOUT=10
然后运行grub2mkconfig o /boot/grub2/grub.cfg
使配置生效。
Q2: 如果忘记GRUB密码,如何重置?
A2: 可以通过Live CD或Live USB启动系统,挂载原系统分区并编辑GRUB配置文件来删除或修改密码设置,具体步骤如下:
1、使用Live CD或Live USB启动系统。
2、打开终端并挂载原系统的根分区,
mount /dev/sda1 /mnt
3、切换到chroot环境:
chroot /mnt
4、编辑GRUB配置文件/boot/grub2/grub.cfg
,找到含有password
字段的行并将其删除或修改,完成后退出编辑器并重新启动系统。