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了,启动流程有一些变化,需要了解。