不小心在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

Linux resuce救援模式下修复系统_第1张图片

这个地方选在NO,不需要网卡配置,其他步骤一路回车

Linux resuce救援模式下修复系统_第2张图片

这个地方选在continue,系统默认会找到你的根系统并挂载到/mnt/sysp_w_picpath目录下

Linux resuce救援模式下修复系统_第3张图片

启动shell

Linux resuce救援模式下修复系统_第4张图片

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



Linux系统灾难恢复技术和方法:系统 /boot 分区损坏系统 GRUB 损坏,系统内核文件丢失分区丢失(有备份的情况下)详见文档(真的很好的文档):http://os.51cto.com/art/201209/357524.htm