删除/boot目录和/etc/fstab文件的情况下修复系统。
/boot是系统启动文件存放的路径 如:grub,rootfs,一旦该目录被删除,将会导致系统无法启动,而/etc/fstab文件丢失,会导致系统在启动的时候,无法找到挂载磁盘,也会导致无法启动系统。
步骤一:先把这/boot目录和/etc/fstab 删除
步骤二:设置光盘为第一启动:
步骤三:选择 Rescue installed system 进入救援模式,然后按回车:
步骤四:语言选择English
步骤五:键盘选择us
步骤六:选择开机是否配置网络,我这里选择no:这个实验用不到网络
步骤七:这里是系统尝试找根,并把根挂载在/mnt/sysimage目录下,选择contunie继续
步骤八:由于/etc/fstab文件被移除,系统无法找到根,选择ok继续:
步骤九:选择shell start shell ,点击ok,进入bash命令模式:
步骤十:由于/etc/fstab被删除,/boot/和/都无法挂载,所以要先把/etc/fstab文件修复。方法是:创建一个临时文件,把逐个分区挂载,然后找到根目录。
步骤十一:找到根分区后,创建/etc/fstab文件,然后再重启:(注意:独立的分区都要重新挂载,swap不挂载代表不使用虚拟内存)
步骤十二:重启之后,还是进入救援模式,方法:步骤三到七,由于/etc/fstab文件已经修复,没有提示报错信息
步骤十三:修复/boot目录,需要把光盘里面的/vmlinux 和 /initramfs(可以用工具生成) 和grub.conf(手动制作)文件拷贝到/boot目录下:(注意:还可以通过安装kernel生成/vmlinux和initramfs文件)这里我使用安装kernel的方式。
步骤十四:手动创建/boot/grub/grub.conf文件
步骤十五:再次重启,把启动顺序调整为hard disk:grub的引导界面已经显示:
步骤十六:如果嫌启动扫描时间长,可以设置跳过扫描,方法:禁用selinux
再按e键进入编辑模式,在行尾添加selinux=0,然后回车。
再按b键重启
步骤十六:系统启动过程
最后:删除的文件已成功修改。
tips:经过试验可知,/boot /ect/fstab文件时比较重要的,所有,在日常工作中,有必要备份下这两个文件。方法如下:
dd if=/boot/ of=/mnt/boot.bak
dd if=/etc/fstab of=/mnt/fstab.bak
另外提醒一下:MBR也是很重要,其大小为512个字节,这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。MBR被破坏,也会导致系统无法启动。备份方法如下;
dd if=/dev/sda of=/mnt/mbr.bak bs=1 count=512