系统启动流程(七)

来源:互联网 发布:python 捕捉ctrl c 编辑:程序博客网 时间:2024/05/19 20:01

在前面已经介绍了CentOS 6中如果遇到一些密码忘记,误删除如何操作,在CentOS 7 中有一些小变化,这里给大家介绍说明。


一、如果在CentOS 7中密码忘记如何修改呢?
方法一:
(1)在开机时按任意键进入Boot Sequence ,选择内核版本,进入“e”键,在linux16开头行的尾部追加“rd.break”
这里写图片描述
(2)使用组合件“Crtl+x”重新启动
这里写图片描述
(3)进入上述界面根时只读挂载
switch_root:/#mount -o remount,rw / sysroot#重新挂载根
这里写图片描述

(4)switch_root:/#chroot /sysroot #切换根

(5)sh-4.2#passwd root #修改密码
这里写图片描述
(6)如果开启了selinux功能,则需要操作下面命令
sh-4.2#touch /.autorelabel #变回linux的安全文本
这里写图片描述
为何需要 /.autorelabel?

在 rd.break 的 RAM Disk 环境下,系统是没有 SELinux 的,而你刚刚更改了 /etc/shadow (因为改密码啊!), 所以『这个档案的 SELinux 安全本文的特性将会被取消』喔!如果你没有让系统于开机时自动的回复 SELinux 的安全本文, 你的系统将产生『无法登入』的问题 (在 SELinux 为 Enforcing 的模式下!)加上 /.autorelabel 就是要让系统在开机的时候自动的使用预设的 SELinux type 重新写入 SELinux 安全本文到每个档案去!

不过加上 /.autorelabel 之后,系统在开机就会重新写入 SELinux 的 type 到每个档案,因此会花不少的时间喔!如果你不想要花太多时间, 还有个方法可以处理:

(1)在 rd.break 模式下,修改完 root 密码后,将 /etc/selinux/config 内的 SELinux 类型改为 permissive(2)重新开机后,使用 root 的身份下达『 restorecon -Rv /etc 』仅修改 /etc 底下的档案;(3)重新修改 /etc/selinux/config 改回 enforcing ,然后『 setenforce 1 』即可!

方法二:
(1)在开机时按任意键进入Boot Sequence ,选择内核版本,进入“e”键,在linux16开头行的尾部追加“rw init=/sysroot/bin/bash”
这里写图片描述
(2)按组合件”Ctrl+x”启动
(3)chroot /sysroot #切换根
(4)passwd USER #修改密码
这里写图片描述
(5)退出并重启

二、如果把grub分区误删除,如何恢复之?
(1)假如误删除MBR分区
[root@localhost~]#dd if=/dev/zero of=/dev/sda bs=1 count=446
(2)重启,出现下面情况,直接出现重新安装界面
这里写图片描述
(3)切换根,生成新的grub引导文件
sh-4.2#chroot /mnt/sysimage
bash-4.2#grub2-install --root-directory=/ /dev/sda
bash-4.2#grub2-mkconfig -o /boot/grub2/grub.cfg
这里写图片描述
(4)退出并重启

三、如果误删除boot目录,如何恢复之?
(1)假如误删除boot目录
[root@localhost~]#rm -rf /boot/*
[root@localhost~]#ls /boot
这里写图片描述
(2)重新启动进入救援模式
(3)切换根,并挂载光盘
sh-4.2#chroot /mnt/sysimage
bash-4.2#mount /dev/sr0 /media/cdrom
这里写图片描述
bash-4.2#rpm -ivh /media/cdrom/Packages/kernel-VERSION-RELEASE.rpm --force
(4)生成grub配置文件
bash-4.2#grub2-install /dev/sda
bash-4.2#grub2-mkconfig -o /boot/grub2/grub.cfg
(5)重新启动即可
四、删除grub.cfg文件,如何手动启动?
(1)[root@localhost~]#mv /boot/grub2/grub.cfg /app
(2)重启进入如下界面
这里写图片描述
(3)在上述界面中执行下面命令
grub>insmod xfs
grub>set root=(hd0,1)
grub>linux16 /vmlinuz-VERSION-RELEASE root=/dev/sda2 selinux=0
grub>initrd /initramfs-VERSION-RELEASE.img
grub>boot
(4)重启即可
(5)重新生成grub.cfg文件
[root@localhost~]#grub2-mkconfig -o /boot/grub2/grub.cfg
(6)完成恢复

原创粉丝点击