不小心在RHEL5.8服务器上使用了fsck命令,导致/目录都不存在了,磁盘也无法挂载,重启服务器,无法开机;提示如下:
VFS: Can't find ext3 system on dev dm-4.
mount: error mount /dev/root on /sysroot as ext3: Invalid argument
setuproot: moving /dev failed: No such file or directory
setuproot: error mount /proc: No such file or directory
setuproot: error mount /sys: No such file or directory
Kernel panic - not syncing:Attempted to kill init!
Linux启动流程是这样的:bios->grub->kernel->inittab->fstab->rc.sysinit->rc.local->login
我使用的是LVM逻辑卷组管理,出现这个问题应该是lv逻辑卷挂载失败,导致grub引导kernel时,缺少内核文件而失败。使用RHEL5.8安装盘进入救援模式,发现里面很多命令不能够使用,就使用了RHEL6.5的安装光盘,进入救援模式,步骤如下:
加载光盘,进入救援模式,不需要进行网络配置
选在第三个,Rescue install system
这个地方选在NO,不需要网卡配置,其他步骤一路回车
这个地方选在continue,系统默认会找到你的根系统并挂载到/mnt/sysimage目录下
启动shell
OK,现在就进入了救援模式的命令行界面
具体操作如下:
# vgchange -ay 激活卷组
# swapon -a 开启交换分区
# fsck -y /dev/VolGroup00/LogVol00 修复逻辑卷(具体卷根据实际情况)
# mkdir /mnt/lvm
# dmesg
# mount -t ext3 /dev/VolGroup00/LogVol00 /mnt/lvm 挂载系统分区(确保这个是系统分区)
# mount --bind /proc /mnt/lvm/proc 挂载内核文件
# mount --bind /sys /mnt/lvm/sys
# mount --bind /dev /mnt/lvm/dev
# chroot /mnt/lvm 改变系统执行命令目录
现在就可以正常使用Linux系统原本的命令了,同时可以通过cd /mnt/lvm,进入系统分区,查看有没有系统文件缺失或是配置错误,进行修复(例如/etc/fstab文件丢失)
mount --bind说明:
mount 命令可以挂载目录,如果要把某个目录 mount 到另外的目录就使用 --bind
lvm无法 挂载,进入救援模式操作命令详解:
进入救援模式后,
lvm vgscan 查看系统中的逻辑卷组
lvm vgchange -ay 激活逻辑卷
逻辑卷激活后,就可以使用 mount命令进行正常挂载了,如下图:
此文档根据以下编写:
http://www.dslreports.com/forum/r20758405-Ran-fsck-on-a-mounted-LVM-on-Fedora-8-now-what
如果缺失了某些文件,可以从lost+found里找回,找回方法可以根据:
http://karuppuswamy.com/wordpress/2010/06/09/how-to-recover-files-from-lostfound-after-fsck-in-linux-how-i-did-it-in-ubuntu/
http://blog.windfluechter.net/comment/3059