MBR主引导记录,位于磁盘最前边的一段引导代码。负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息定位,由DOS在对硬盘进行初始化时产生的,在硬盘上的0磁道,一扇区,446个字节。
kernel内核,在/boot/vmlinuz
系统引导过程:
grub 系统引导
以下实验需要关闭selinux(关闭后需要reboot)
grub系统引导
1.损坏mbr分区
- df##查看/boot分区在哪个磁盘
- dd if=/dev/zero of=/dev/vda bs=446 count=1 ##可以清空mbr
此时,已将mbr损坏,再次启动错误提示:Booting from hard disk…
这时应该关闭系统,添加光盘驱动来进行挽救
挽救:
1>添加光盘驱动
Processor—Add Hardware—-选择CDROM device ,类型为SATA,添加光盘
2>进入挽救模式
再次重启选择
选择troubleshooting错误克服模式
然后选择rescue a redhat enterprise Linux system 进入营救模式
选择1继续营救
在进入挽救模式后首先执行chroot /mnt/sysimage 切换到真实/环境(/mnt/sysimage为系统真实的/)
然后grub2-install /dev/vda重新安装/mbr
这样整个系统的营救结束
测试:再次重启时使用硬盘驱动,检验系统是否被修复
系统被成功恢复!
2.启动文件配置文件/boot/grub2/grub.cfg受损
找到/boot分区
读取/boot/grub2/grub.cfg
文件丢失,grub2-mkconfig >/boot/grub2/grub.cfg
rm -rf /boot/grub2/grub.cfg ##损坏
启动的错误提示:
编写如下命令进行恢复:
命令的信息就是未损坏的/boot/grub2/grub.cfg的信息
grub>set root='hd0,msdos1' ##根目录
grub>linux16 /vmlinuz-3.10.0-327.e17.x86_64 ro root=/dev/vda3 ##内核文件
grub>initrd16 /initramfs-3.10.0-327.e17.x86_64.img ##开机启动服务
grub>boot ##启动
再次重启可成功登陆,然后还原文件
grub2-mkconfig > /boot/grub2/grub.cfg ##还原系统文件
reboot ##再次重启,系统将恢复
内核引导
检测设备,对设备驱动进行初始化,进入系统初始化阶段,
内核丢失,从新安装内核安装包就可以解决
rpm -ivh kernel-xxxxx.rpm –force
vmlinuz文件破坏
rm -rf /boot/vmlinuz-3.10.0-327.e17.x86_64
uname -r ##查看内核版本
启动后错误提示:内核文件丢失
1>添加光盘驱动,和mbr恢复添加光盘驱动步骤一样,进入营救模式
2>进入营救模式后执行以下命令(无需切换身份)
cd /mnt/sysimage/mnt
rpm2cipo /run/install/repo/Packages/kernel-3.10.0-327.e17.x86_64.rpm | cpio -id##分解安装包内的内核包到/boot/
cd boot/
ls
cp vmlinuz-3.10.0-327.e17.x86_64 /mnt/sysimage/boot
完成后重启,成功进入系统
系统初始化阶段
系统初始化阶段加载initrd镜像,开启初始化进程systemd,开始selinux,加载内核参数,初始化系统时钟,键盘,主机名称,重新读写挂载/设备,激活raid,lvm,激活配额,启动multi-user.target.wants中的所有服务,开启虚拟控制台,启动图形。
initrd镜像损坏
rm -rf /boot/initramfs-3.10.0-327.e17.x86_64.img
启动后错误提示:丢失initramfs文件
1>以光盘驱动启动系统进入营救模式(如mbr,vmlinuz恢复)
2>在真实环境下恢复intrd镜像
chroot /mnt/sysimage/
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) ##恢复initramfs文件
uname -r ##打印内核版本
选择硬盘驱动来开启系统
系统恢复成功!