2.2/etc/fstab 文件丢失导致系统无法启动
/etc/fstab中存放了系统的文件系统挂载的相关信息如果正确地配置了该文件,那么在linux启动时,系统会读取此文件,自动挂载Linux的各个分区,如果此文件哦诶只错误,或者丢失,就会导致系统无法启动。
具体的故障现象是在检测mount partition时出现:
starting system logger
此后系统启动就停止了。
解决思路:就是想办法恢复/etc/fstab这个文件的信息,只要恢复了此文件,系统就能自动挂载每个分区并正常启动。
有些人会想尝试进入到单用户模式下,然后手动挂载分区,最后结合系统信息,重建/etc/fstab文件。但是实际这种方法是不可行的,因为fstab文件丢失导致Linux无法挂载任何一个分区,即使Linux还能切换到单用户模式下,此时文件系统也只是一个read-only的文件系统,无法向磁盘写入任何信息,那么重建/etc/fstab文件也无法实现。
正确的方法是利用Linux rescue 修复模式登录系统,进而获取分区和挂载点信息。重构/etc/fstab 文件。
步骤:
1.插入系统盘,设置BIOS从光驱启动,然后在boot后输入:linux rescue
boot:Linux rescue
2.一步步的选择OK,语言,键盘
3.是否启用网络界面,选择“No” ,不启用
4.最关键的一步,修复模式会自动将系统的所以分区挂载到/mnt/sysimage目录下,选择"Continue",则修复环境进去read-write状态下,可以对分区进行读写操作;选择“Read-Only”,修复环境进去只读模式。由于我们要重建fstab文件到/etc目录下,因此选择“Continue”进入可读写模式下。
接下来到了修复模式下:
sh-3.2#df
sh-3.2#fdisk -l //查看分区信息是否完整
此处考虑分区没有损坏的情况下,仅仅是/etc/fstab文件丢失,通过以上命令可查看到系统分区的完整信息,每个分区对应的label name 信息还不知道,不过可以通过e2label命令查看。
sh-3.2#e2label /dev/sda1
/boot
sh-3.2#e2label /dev/sda3
/
根据以上信息,构建/etc/fstab文件,因为/etc/fstab是存放在根分区目录下的,所以首先挂载根分区
sh-3.2#mkdir /tmp
sh-3.2#mount /dev/sda3 /tmp
sh-3.2#mkdir /tmp/etc/
sh-3.2#touch /tmp/etc/fstab
sh-3.2#vi /tmp/etc/fstab
LABEL=/ / ext4 defaults 1 1
LABEL=/boot /boot ext4 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda2 swap swap defaults 0 0
配置完成后,重启系统,看是否能正常启动!
本文由 Mr Gu 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 26, 2016 at 09:24 pm