首页 > 代码库 > opensue fstab故障恢复

opensue fstab故障恢复

date: 20140505

author: Jin

故障背景:

早上启动本本 无法启动,报错信息(几个关键)

WARNING:Failed to connect to lvmetad: No such file direct

[FAILED] Failed to mount  /var/run/user/1000/gvfs

SEE ‘systemctl status  var-run-user-1000-gvsfs.mount‘ for details.

[DEPEND] Dependency failed for Local File System

原因分析:

根据报错初步判断,是否是我昨天关机的时候,系统没有sync导致,这样的话,进入单用户模式修复一下就可以了

 

操作:

1.按提示的操作进入恢复模式,无法输入操作。

2.编辑

load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root=‘hd0,msdos5‘
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint=‘hd0,msdos5‘ 1db64f2a-65b4-4018-b921-cc344e361d9d
else
search --no-floppy --fs-uuid --set=root 1db64f2a-65b4-4018-b921-cc344e361d9d
fi
echo ‘Loading Linux 3.11.10-7-desktop ...‘
linux /vmlinuz-3.11.10-7-desktop root=/dev/mapper/system-root quiet quiet liveinstall resume=/dev/system/swap splash=silent quiet showopts -S
echo ‘Loading initial ramdisk ...‘
initrd /initrd-3.11.10-7-desktop

3.进入单用户模式

提示需要输入密码,输入没有效果。仔细看,根本没有输入光标。

4.baidu/google 如果不要密码进入

redhat系进入单用户不要密码,suse需要

http://blog.csdn.net/forlinux/article/details/2712676

在启动linux的选项里加上init=/bin/bash,通过给内核传递init=/bin/bash参数使得OS在运行login程序之前运行bash,出现命令行。

linux /vmlinuz-3.11.10-7-desktop root=/dev/mapper/system-root -S init=/bin/bash

5.进入单用户模式后

fsck修复各个分区

root无法修复,因为已经挂载

 查看 lvm2-lvmetad.service  没有启动的 单用户

6.启动系统确认

一样无法系统

 

原因再分析

回想昨天取消fstab里面挂在smaba的操作(开启启动时需要输入密码),是不是这个操作引起。而且报错也是挂在的问题

操作

1.重新进入单用户模式

2.查看stab

cat /etc/fstab
/dev/system/swap swap swap defaults 0 0
/dev/system/root / ext4 acl,user_xattr 1 1
/dev/disk/by-id/ata-HITACHI_HTS723232A7A364_E3834563JXVAKN-part5 /boot ext4 acl,user_xattr 1 2
/dev/system/data /data ext4 acl,user_xattr 1 2
/dev/system/home /home ext4 acl,user_xattr 1 2
gvfsd-fuse /var/run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=100 0 0

除了最后一行外,其他都没什么问题

注释掉最后一行,启动

3.正常了

查看历史命令

MyOpenSUSE:~ # history |grep fstab

16 2014-04-28 13:19:46 tail -1 /etc/mtab >> /etc/fstab
46 2014-04-29 09:34:07 cat /etc/fstab
259 2014-05-04 14:06:22 tail -1 /etc/mtab >> /etc/fstab
365 2014-05-04 11:27:02 vim /etc/fstab
508 2014-05-05 10:48:07 history |grep fstab
MyOpenSUSE:~ # tail -1 /etc/mtab
gvfsd-fuse /var/run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=100 0 0

是昨天查看自己程序日志时!tail操作了,然后没仔细看。

 

自己手贱的问题

 

总结

1.碰到故障先查看报错信息,初步判断大致方向

2.回想之前做过的操作,和大致方向集合,判断是什么操作引起

3.系统崩溃的问题,进入单用户,进行fsck,恢复fstab kernel init-ran grub等

 

后续提升

opensuse和fedora和rhel7都使用systemd了,启动流程有一些变化,需要了解。