系统引导过程
系统引导指的是将操作系统内核装入内存并启动系统的过程。
系统引导概念图:
一、硬盘引导阶段,mbr主引导记录的恢复
模拟问题:
dd if=/dev/zero of=/dev/vda bs=446 count=1 ##从设备截取446字节的空间,覆盖原有的主引导记录,使得磁盘引导阶段出现问题。
且重启后系统起不来
原因: 没有了主引导记录,磁盘不知道下一步读取那部分内容。
解决方法:
我们可以从光驱中重新读取,恢复硬盘丢失的主引导记录。
步骤一: 从光驱启动
步骤二: 进入挽救页面
注: 最终正常启动即可!
二、引导文件丢失的解决方案
模拟问题:
rm -fr grub2/grub.cfg ###删除引导文件
解决方法:
1. 如果删除引导文件后未重启系统 ----------> 重新生成引导文件即可
grub2-mkconfig > /boot/grub2/grub.cfg ##重新生成引导文件
2. 如果引导文件丢失后,重启了系统: ------> 手动引导
步骤一: 重新启动时,系统会让你指定引导文件内容:
set root='hd0,msdos1'
输入linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1
initrd16 /initramfs-3.10.0-123.el7.x86_64.img
boot
则回车启动成功。
步骤二: 生成引导文件
启动成功后(临时的)。若不生成引导文件,下次启动依然需要指定引导文件内容。
生成引导文件
grub2-mkconfig > /boot/grub2/grub.cfg ##重新生成引导文件
四 系统内核文件丢失的恢复
模拟问题
rm -rf /boot/vmlinuz-3.10.0-123.el7.x86_64 ##删除内核文件
解决方案
步骤一 : 进入挽救模式
五 系统初始化镜像文件丢失的恢复
模拟问题
rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img ##删除系统初始化镜像文件
解决方案
该文件是通过命令生成的。删除后,可以通过命令恢复
没有重启系统
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
#$uname -r显示版本号,加了括号,表示括号内的内容先执行,恢复镜像文件
重启了系统
切换到光驱启动进入到挽救模式
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) #命令生成系统初始镜像文件
六 系统启动级别的修复
模拟问题
systemctl set-default reboot.target ##开机自动重启
ls -l default.target ##设置为一直重启模式
解决方案
步骤一: 开机按上下键停止读秒,按“E”进入编辑模式
步骤二: 选择内核启动行(hang),linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxxx, 手动输入级别5,ctrl+x退出,启动系统
步骤三: 回到图形界面将启动级别改回来
systemctl set-default graphical.target #重新设定启动
七 root用户密码破解的方案
步骤一:
步骤二:选择内核启动行:linux16 /vmlinuz-xxxx ro xxxx
修改为:ro ——> rw rd.break #改为读写,并在内核启动完成后终止系统初始化程序的执行
步骤三:
chroot /sysroot #开启shell
echo westos | passwd --stdin root #永久修改root用户密码
touch /.autorelabe #重新初始化selinux,当selinux未开启时不需要操作
步骤四: 成功登陆!
用户名:root
密码:westos