Linux下对boot分区出现问题进行恢复

Linux系统启动过程

通电—>开机自检(加载BIOS)——> BIOS扫描MBR—>MBR引导—>GRUB菜单—>加载内核kernel—>运行/sbin/init进程(系统里其他所以进程的父进程)—>读取/etc/inittab配置文件—>执行/etc/rc.d/rc.sysinit脚本(系统初始化脚本,设置主机名和IP地址等)—>执行/etc/rc.d/rc脚本(根据系统的运行级别,在开机时启动不同软件、0到6级)—>启动mingetty进程。

如果/boot分区被删掉后 (内核也被删了)
模拟问题:
rm -fr /boot/
reboot
问题解决:

进入到挽救模式以后

chroot /mnt/sysiamge     ##将系统挂载更改到根目录下
mount /dev/sr0 /westos   ##将光盘文件挂载
cd /westos/              ##切换到光盘挂载点
ls                       ##查看光盘中的文件
cd Packages/             ##切换到安装包目录中(记住,不要ls,有4000多个包)
cp kernel-3.10.-123.e17.x86_64.rpm /mnt/        
                      ##将这个文件包拷贝到/mnt/下,因为在光盘目录中不能进行拆包
cd /mnt/                 ##切换到/mnt/
ls                       ##查看/mnt/下拷贝过来的文件包
rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id    ##拆包
ls                       ##查看包中的文件
pwd                      ##查看当前路径
cd boot/                 ##切换到包中的boot/目录下
ls -l                    ##包中存在内核文件
cp vmlinuz-3.10.0-123.e17.x86_64 /boot/        
                         ##将内核文件拷贝到系统的/boot/目录下
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)  ##生成系统初始化镜像
grub2-mkconfig > /boot/grub2/grub.cfg 
exit                     ##退出chroot更改的根目录
exit                     ##shell窗口

操作如下:
关闭虚拟机,通过光驱模式启动得到shell,按照之前的操作,依次安装mbr、恢复内核文件、初始化镜像和开机自动引导文件后通过硬盘启动即可
Linux下对boot分区出现问题进行恢复_第1张图片
退出挽救模式。系统缺少引导文件仍然不能正常登录 —恢复引导文件
Linux下对boot分区出现问题进行恢复_第2张图片此时系统可以临时登录
/boot/grub2/grub.cfg文件只时临时生成的,还需要在系统启动后进行操作
grub2-mkconifg > /boot/grub2/grub.cfg
Linux下对boot分区出现问题进行恢复_第3张图片

你可能感兴趣的:(原创)