硬盘引导阶段

mbr主引导记录的恢复

mbr的作用:是为了记录/boot目录所在分区位置,磁盘的0磁道1扇区的前446字节,有时侯我们可能会破坏磁盘上的引导程序,使磁头找不到/boot分区

linux 镜像重置_初始化

模拟问题: 将引导程序破坏掉

dd if=/dev/zero of=/dev/sda bs=446 count=1

linux 镜像重置_初始化_02


报错界面:

linux 镜像重置_linux 镜像重置_03


解决方式添加镜像:添加镜像之前可以使用hostnamectl命令看一下主机的版本,选择合适的镜像

linux 镜像重置_重启_04

在真机中打开虚拟机管理截面

将server虚拟机关掉(force off),点击add hardware

添加一个光驱(cdrom),选择7.3的镜像

linux 镜像重置_初始化_05


添加效果如下:

linux 镜像重置_重启_06

选择光驱引导,并将其调到第一位

linux 镜像重置_linux 镜像重置_07


再次打开server,进入挽救模式

选择troubleshooting,选择Resules a Red Hat Enterprise Linux system,选择continue ok ok

系统都提示我们真实的系统在/mnt/sysimages中,所以我们进入挽救模式打开一个shell后将系统切换到真实的shell中

执行命令:grub2-install  /dev/vda

两次exit退出

linux 镜像重置_初始化_08


去掉光盘引导,重新选回磁盘引导

linux 镜像重置_重新启动_09


登录成功

linux 镜像重置_linux 镜像重置_10

文件引导阶段

引导文件丢失

/boot底下有grub文件,这个文件的用处是自动引导系统启动内核程序和系统的初始化程序
模拟问题:

rm -fr /boot/grub2/grub.cfg

可以先用df -H看一下boot分区是否独立挂载

这里用到的server虚拟机boot分区没有独立出来

linux 镜像重置_重新启动_11

解决方式

当系统没有重新启动时:

引导文件丢失,我们可以输入命令grub2-mkconfig > /boot/grub2/grub.cfg,将grub写回/boot,这样系统在开机的时候又会自动引导

linux 镜像重置_重新启动_12


系统被重新启动时

我们需要在第一次开机的时候手动引导系统加载内核程序和初始化程序报错界面

linux 镜像重置_linux 镜像重置_13


手动引导:

linux 镜像重置_linux 镜像重置_14


hd0中的0——>vda1中的a

msdos1中的1——>vda1中的1登录成功

linux 镜像重置_重新启动_15

内核文件丢失

模拟问题:

rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64

linux 镜像重置_重启_16


报错界面解决方式

将光盘引导添加到第一位,进入到挽救模式

linux 镜像重置_linux 镜像重置_17


执行以下步骤:

linux 镜像重置_重启_18


linux 镜像重置_重启_19


linux 镜像重置_linux 镜像重置_20


linux 镜像重置_重新启动_21


linux 镜像重置_linux 镜像重置_22


linux 镜像重置_linux 镜像重置_23


linux 镜像重置_linux 镜像重置_24


linux 镜像重置_重启_25


linux 镜像重置_初始化_26


去掉光盘引导,重新选回磁盘引导

linux 镜像重置_初始化_27


开启虚拟机,登录成功

linux 镜像重置_初始化_28

系统初始化镜像文件丢失

模拟问题:

rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img

解决方式

1)系统没有重启时:
删除初始化镜像文件后,执行命令:

mkinitrd  /boot/initramfs-$ (uname -r).img  $ (uname -r)
$ (uname -r)
 $ ( )表示在执行这条命令的时候先执行括号里边的内容

uname -r 表示显示内核版本号

linux 镜像重置_重启_29


linux 镜像重置_重启_30


当系统重启后报错界面:

linux 镜像重置_linux 镜像重置_31

将光盘引导添加到第一位,进入到挽救模式

linux 镜像重置_重启_32

进入挽救模式后

linux 镜像重置_重新启动_33


去掉光盘引导,重新选回磁盘引导

linux 镜像重置_重启_34


系统登录成功

linux 镜像重置_linux 镜像重置_35

启动级别发生错误

系统的启动级别一共有六个:
0:系统停机模式,系统不能正常启动,机器关闭
1:单用户模式,root权限,用于系统维护,禁止远程登陆
2:多用户模式,没有NFS网络支持
3:完整的多用户文本模式,有NFS,登陆后进入控制台命令行模式
4:系统未使用,保留一般不用
5:图形化模式,登陆后进入GUI模式
6:重启模式,默认级别不能为6,否则不能正常启动

模拟问题

systemctl set-default reboot.target #此时系统一直处于重启状态,可能是某些垃圾软件恶意攻击形成的

linux 镜像重置_重启_36


解决方式

(1)重启系统,在上下页的界面,按e

linux 镜像重置_linux 镜像重置_37


2)按e进入到如下界面

linux 镜像重置_初始化_38


在linux16这一行,最后添加 5,按ctrl+x,系统重启

linux 镜像重置_重启_39


系统重启后,我们应该修改系统的启动级别,让它在下次启动的时候不会再出现这种问题

linux 镜像重置_重新启动_40

忘记超级用户密码的解决方法

重启系统,在上下页的界面,按e

按e进入到如下界面

将initrd16 这行前到ro的内容删除掉,并把ro改为rw,然后添加rd.break选项

linux 镜像重置_linux 镜像重置_41


ctrl+x启动设定过后的系统引导条目

(4)进入系统后执行chroot /sysroot切换到真实的系统环境

passwd 修改超级用户密码

建立文件touch /.autorelabel让系统从新扫描所有文件

当selinux关闭时,可不建立该文件;但当selinux开启时,必须建立该文件,为保险起见,所以输入该命令。

exit两次使系统自动重新启动

linux 镜像重置_重启_42