CentOS7单用户模式,救援模式操作记录

CentOS7单用户模式,救援模式操作记录

1. 单用户模式

单用户模式进入不需要密码,无网络连接,拥有root权限,禁止远程登陆。一般用于用于系统维护,例如忘记root密码后可以通过进入单用户模式进行重置。

开机启动,在出现内核选项时按"键盘e键"进行编辑,找到linux16行并在行尾添加内核参数 rd.break,修改完成后按下ctrl+x进入单用户模式

# 重新挂载文件系统
mount –o remount,rw /sysroot
# 切换根 
chroot /sysroot
# 修改密码 
passwd root
# 启用了selinux的情况下,创建下面的隐藏文件;如果禁用了selinux,可以忽略。
touch /.autorelabel 
# 重启系统
reboot

也可以在内核选项中,添加init=/bin/sh,可以直接配置读写,将ro改为rw,这样进入后就不需要进行mount操作了,如下:

进入后不需要挂载文件系统,不需要切换根,可以直接进行操作,比如修改密码等。

2. 救援模式

救援模式是从其他介质启动,这个介质可以是安装系统的光盘或U盘,相当于将系统盘作为了一个外挂的磁盘,所以当系统无法恢复时可以用来备份重要文件。一般用于单用户模式都无法进入时,除了可以修改用户密码,可以用于修复grub、修复boot分区损坏、修复文件系统等。

在光盘引导项里选择第三项:Troubleshooting(故障排除)

选择Rescue a System:

选择第一个:Continue(继续操作)输入1回车:

到了这一步启动的是镜像光盘里的系统,而原来系统里的文件被挂载到了/mnt/sysimage里。

系统输出了一条提示:如果你想让你的系统的根成为救援系统的根,就运行命令:chroot /mnt/sysimage

这条命令会更改root目录,执行后根目录就会变更到/mnt/sysimage下,这个时候的操作就和在正常系统里操作一样了。

2.1 更改root密码

第一种方法:

直接更改文件的方法,可以不用切换根:

vi /mnt/sysimage/etc/passwd
# 更改文件
root:x:0:0:root:/root:/bin/bash
##将root后面的x去掉,像下面这样:
root::0:0:root:/root:/bin/bash
# 重启
reboot

第二种方法:

获取系统root权限直接更改密码,这种方法有点像单用户模式了

chroot /mnt/sysimage     #切换为原系统的root权限#
passwd      #更改root密码#

exit        #退出原系统root权限#
reboot      #重启#

2.2 修复grub

操作如下步骤操作,模拟grub故障并修复:

  1. cd /boot/
  2. rm -rf grub* #手动删除grub下的所有文件 ,模拟grub故障。
  3. 重启以光盘启动引导系统,进入Rescue界面
  4. chroot /mnt/sysimage
  5. ls /boot
  6. mkdir /boot/grub2
  7. grub2-mkconfig -o /boot/grub2/grub.cfg
  8. grub2-install /dev/sda
  9. exit
  10. reboot
  11. 重启从硬盘启动

2.3 修复/boot目录

操作如下步骤操作,模拟/boot故障并修复:

  1. rm -rf /boot/*
  2. reboot
  3. 重启以光盘启动引导系统,进入Rescue界面
  4. chroot /mnt/sysimage
  5. mount /dev/sr0 /mnt
  6. rpm -ivh /mnt/Packages/kernel-3.10.0-693.e17.x86_64.rpm.rpm --force
  7. ls /boot
  8. grub2-install /dev/sda
  9. grub2-mkconfig -o /boot/grub2/grub.cfg
  10. exit
  11. reboot
  12. 重启从硬盘启动

2.4 文件系统修复

有时候将虚拟机从VMware迁移到KVM平台时,会遇到虚拟机启动自动进入emergency mode,提示使用journalctl可以查看到文件系统相关错误。同时使用mount -a挂载分区会提示失败,此时就需要修复文件系统错误。可以在当前进入的shell界面下操作,也可以借助iso进入rescue模式进行文件系统修复。

一般步骤如下:

  1. 通过挂载和卸载文件系统重新显示日志:
mount file-system
umount file-system

如果挂载失败,并带有结构需要清理的错误,则日志已损坏,且无法重播。

  1. 检查文件系统:
#xfs检查
xfs_repair -n block-device
# ext*检查
e2fsck -n block-device
  1. 修复文件系统:

修复文件系统(xfs):

# 如果挂载成功,则不需要额外的选项:
xfs_repair block-device
# 如果挂载失败,带有 Structure needs cleaning 错误,日志会破坏且无法重复显示。使用 -L 选项(强制日志归零)来清除日志:
xfs_repair -L block-device

说明:-L是修复xfs文件系统的最后手段,慎重选择,它会清空日志,会丢失用户数据和文件。

备注:在执行xfs_repair操作前,最好使用xfs_metadump工具保存元数据,一旦修复失败,最起码可以恢复到修复之前的状态。

修复文件系统(ext*):

e2fsck -p block-device

也可以尝试fsck命令,适用于多种文件系统类型。

参考:

https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/managing_file_systems/checking-and-repairing-a-file-system__managing-file-systems

posted @   lldhsds  阅读(1994)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示