GRUB 救援模式
参考
介绍
GNU GRUB(简称“GRUB”)是一个来自GNU项目的启动引导程序。GNU GRUB是一个多重 引导加载程序,它源自GRAND统一引导程序
GRUB,最初由Erich Stefan Boleyn设计和实现。它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统
GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
GNU GRUB的前身为 Grand Unified Bootloader。它主要用于类Unix系统;同大多Linux发行版一样,GNU系统也采用GNU GRUB作为它的启动器。
Solaris从10 1/06版开始在x86系统上也采用GNU GRUB作为启动器。
GNU GRUB 可以通过,命令行界面 (请参阅命令行界面) 亦或菜单界面 (另请参阅菜单界面)
示例
GRUB rescue(救援模式)
GRUB 进入 Single 单用户模式
-
进入 rescue (内核),按 “E” 进入 GRUB 编辑模式
-
编辑 GRUB 启动项,在 “linux16 /vmlinuz-0…… quiet” 后面输入 single、或者s、或者1 进入单用户模式
-
编辑完成后使用 Ctrl-x 启动运行编辑后的 GRUB
-
最后启动完成后,进入单用户模式,需要输入 root 用户密码,如下图所示:
GRUB emergency(紧急模式)
emergency(紧急模式) 与 rescue(救援模式)相比,emergency 模式所需运行的服务比 rescue 服务少,在 rescue 模式启动失败时,可以使用 emergency 紧急模式来修复系统
与 Single 配置相同,只需在 “linux16 /vmlinuz-0…… quiet” 后面输入 emergency 然后使用 Ctrl-x 启动 GRUB
-
如下面所示:
-
最后启动完成后,进入单用户模式,需要输入 root 用户密码,如下图所示:
重置 root 密码
与进入 rescue(救援模式)相同
CentOS、Redhat 7.0 后的系统,进入救援模式后重置密码需要将 GRUB 中以 “linux16 /vmlinuz-0……开头的字段,中的 rhgb quiet 两个参数去掉。然后在后面输入 init=/bin/sh 完成后使用 Ctrl-x 启动运行编辑后的 GRUB
-
如下图所示:去掉 rhgb quiet 两个参数,在后面输入 init=/bin/sh
-
进入救援模式后,当前的文件系统是以 ro 只读方式挂载,需要重新挂载 / 根
mount | grep root # 可以看到当前的 / 根是以 ro 只读方式挂载
/dev/mapper/centos-root on / type xfs (ro,relatime,seclabel,attr2,inode64,noquota)
mount -o remount,rw / # 在救援模式下重新挂载 / 根目录
passwd root # 更改 root 用户密码
touch /.autorelabel # 在 / 根目录下创建一个 .autorelabel 空文件,文件用于重置 SELinux
exec /sbin/init # 执行系统重启,至此重置 root 用户密码完成
- 解决忘记 GRUB 密码,导致无法进入救援模式,重置 root 密码
# 1. 进入光盘的救援模式
# 将 Linux 安装光盘插入,并启动服务器,选择从光驱开始引导
# 在 Linux 光盘菜单中,选择:Troubleshooting(故障排除)->Rescue a CentOS system
# 进入救援模式后,选择: 1) Continue(继续)
# 进入救援模式后,原有的磁盘将会挂载在 /mnt/sysimage 路径中
# 2. 开始更改密码
ls /mnt/sysimage/ # 查看磁盘的 / 目录
AutoMount bin boot dev etc home lib lib64 media mnt net opt proc root run sbin srv sys tmp usr var
chroot /mnt/sysimage # 改变当前系统的 /根
cd / # 进入新的根目录
passwd root # 改变 root 的密码
reboot
本文来自博客园,作者:dolinux,未经同意,禁止转载