1、通电 2.bios初始化:对硬件检测,初始化硬件时钟。
1、磁盘引导
盘片–存储数据 磁头–读取数据,默认在零磁道 磁道–磁头在磁盘表面划出的圆形轨迹 扇区– 磁盘引导–零磁道一扇区,引导磁头下一步的动作
mbr=主引导记录=零磁道一扇区=446字节 作用:记录grub2引导文件的位置
当mbr数据丢失,系统会因为找不到启动分区而停止启动
问题模拟方式: 系统磁盘 /dev/sda
dd if=/dev/zero of=/dev/vda bs=446 count=1 ##清空系统/dev/sda上的mbr数据,只能是446,后面的64个字节是分区表,没有备份的情况下删除掉,只能重装系统
恢复方式: 用光盘进入挽救模式
chroot /mnt/sysimage
grub2-install /dev/vda ##重新安装grub2到系统硬盘上
exit
exit
具体操作: 虚拟机shell里执行 dd if=/dev/zero of=/dev/vda bs=446 count=1 虚拟机关机情况下在虚拟机控制器里force off 双击打开引导程序坏掉的虚拟机
add hardware–> storage --> device(CDROM),bus type(SATA),manage(镜像) --> boot options --> 勾选sata cdrom1并置顶(以光驱启动) --> 启动虚拟机–> troubleshooting --> rescue a red hat enterprise linux system (当前读取的是光驱的系统) --> 选择1(comtinue) --> 回车 --> chroot /mnt/sysimage (更改根目录到硬盘) --> grub2-install /dev/vda --> vim /etc/sysconfig/selinux --> SELINUX=disabled(加快开机速度) –> exit exit --> 关机 --> virtlO Disk 1置顶(将硬盘启动方式置顶) --> 开机
2、grub2文件引导
rhel8
/boot/grub2/grub.cfg ##主引导文件,丢失后系统不能启动
/boot/loader/entries/xxxxxx.conf ##子引导文件
[注意] 手动引导需要知道/boot和/所在磁盘和分区
指定/boot位置 指定系统启动时加载文件名称
uname -r ##查看版本号(4.18.0-193.el8.x86_64)
模拟问题1: rhel8: rm -rf /boot/grub2/grub.cfg
修复: 1)直接恢复文件 cd /boot/grub2 ls rm -rf /boot/grub2/grub.cfg grub2-mkconfig > /boot/grub2/grub.cfg ##恢复文件
2)手动引导步骤
reboot --> set root='hd0,msdos1' --> linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/vda3 --> initrd16 /initramfs-4.18.0-193.el8.x86_64.img --> boot --> 恢复文件grub2-mkconfig > /boot/grub2/grub.cfg
3、内核加载
加载内核作用: /boot/vmlinuz-4.18.0-193.el8.x86_64 系统初始化硬件设备 只读挂载在/设备
系统有备份,可以直接复制恢复
模拟问题: rm -rf /boot/vmlinuz-4.18.0-193.el8.x86_64
恢复: 1)恢复文件
ll /boot/vimlinuz-4.18.0-193.el8.x86_64
cp /lib/modules/4.18.0-193.el8.x86_64/vmlinuz boot/vimlinuz-4.18.0-193.el8.x86_64
2)手动引导步骤
关机 --> 灯泡 --> boot options --> 勾选sata cdrom1并置顶(以光驱启动) --> 启动虚拟机--> troubleshooting --> rescue a red hat enterprise linux system (当前读取的是光驱的系统) --> 选择1(comtinue) --> 回车 --> chroot /mnt/sysimage (更改根目录到硬盘) -->cp /lib/modules/4.18.0-193.el8.x86_64/vmlinuz /boot/vimlinuz-$(uname -r) --> ls(已恢复) --> exit exit --> 关机 --> virtlO Disk 1置顶(将硬盘启动方式置顶) -->开机
4、系统初始化镜像
/boot/initramfs-xxx.img
加载系统时钟 加载selinix 加载系统主机信息 加载/etc/fstab文件中磁盘挂载策略 加载磁盘配额 初始化系统程序开启开机自启服务 开启虚拟控制台 开启图形 模拟问题: rm -rf /boot/initramfs-xxx.img
恢复: 1)直接恢复文件
mkinitrd /boot/initrsmfs-$(uname -r).img $(uname -r)
2)手动引导
关机 --> 灯泡 --> boot options --> 勾选sata cdrom1并置顶(以光驱启动) --> 启动虚拟机--> troubleshooting --> rescue a red hat enterprise linux system (当前读取的是光驱的系统) --> 选择1(comtinue) --> 回车 --> chroot /mnt/sysimage (更改根目录到硬盘) --> mkinitrd /boot/initrsmfs-$(uname -r).img $(uname -r) --> ls(已恢复) --> exit exit --> 关机 --> virtlO Disk 1置顶(将硬盘启动方式置顶) -->开机
5、系统启动级别
/etc/systemd/system/ ##用于存放服务链接
模拟问题: systemctl set-default reboot.target
恢复: 在开机选择界面按e进入到引导文件编辑模式 在内核加载选项最后加入启动级别5 ctrl+x systemctl set-default graphical.target
8、超级用户密码忘记
在开机选择界面按e进入到引导文件编辑模式 在内核加载选项删除到ro改为rw,加上rd.break(终止系统启动进入单用户模式) ctrl+x 启动
chroot /sysroot/
echo westos | passwd --stdin root(passwd直接改也可以)
touch /.autorelabel
(-为了初始化selinux,作用后会被删掉 -selinux是一个安全增强系统,内部有许多安全策略,针对一些操作,如果你做了这些操作,没有得到策略的放行,会被禁止。比如用单用户修改root密码是不被策略放行的。 >touch /.autorelabel 创建这个文件就是告诉selinux放行这个策略,否则修改密码无效 >exit)
|