Linux:从错误的超级块中恢复损坏的分区
时间:2020-01-09 10:43:09 来源:igfitidea点击:
问题描述:如何从损坏的ext3分区中恢复坏的超级块以恢复数据?
我收到以下错误:
/dev/sda2: Input/output error mount: /dev/sda2: cant read superblock /dev/sda2:输入/输出错误挂载:/dev/sda2:无法读取超级块
如何解决此错误?
解决方法:Linux ext2/3文件系统将超级块存储在不同的备份位置,因此可以从损坏的分区取回数据。
警告!确保文件系统是未安装的。
如果系统将为您提供一个终端,请执行以下命令,否则从应急磁盘启动Linux系统(从第一张CD/DVD引导。
在启动时:提示执行命令linux rescue)。
使用备用超级块挂载分区
找出/dev/sda2的超级块位置:
# dumpe2fs /dev/sda2 | grep superblock
现在使用备用超级块32768检查并修复Linux文件系统:
# fsck -b 32768 /dev/sda2
输出示例:
fsck 1.40.2 (12-Jul-2007) e2fsck 1.40.2 (12-Jul-2007) /dev/sda2 was not cleanly unmounted, check forced. Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Free blocks count wrong for group #241 (32254, counted=32253). Fix? yes Free blocks count wrong for group #362 (32254, counted=32248). Fix? yes Free blocks count wrong for group #368 (32254, counted=27774). Fix? yes .......... /dev/sda2: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sda2: 59586/30539776 files (0.6% non-contiguous), 3604682/61059048 blocks
现在尝试使用mount命令挂载文件系统:
# mount /dev/sda2 /mnt
您还可以使用存储在32768的超级块来安装分区,执行:
# mount sb={alternative-superblock} /dev/device /mnt # mount sb=32768 /dev/sda2 /mnt
尝试浏览和访问文件系统:
# cd /mnt # mkdir test # ls -l # cp file /path/to/safe/location
您应该始终备份所有重要数据,包括配置文件。