e2fsck / resize2fs 问题

Bla*_*Bat 6 ext3 lvm fsck software-raid

我有 6 个驱动器(每个 1.5T,所有相同的型号和固件版本)是 RAID5 阵列的一部分。RAID5 构成一个 LVM 卷组和一个逻辑组。后者仅包含一个 ext3 分区。我最近跑了:

e2fsck -f /dev/vg03/lv01 && resize2fs -M /dev/vg03/lv01
Run Code Online (Sandbox Code Playgroud)

退出没有错误。

现在,当我尝试时,mount /dev/vg03/lv01我得到:

EXT3-fs error (device dm-0): ext3_check_descriptors: Block bitmap for group 30533 not in group (block 1000532368)!
  EXT3-fs: group descriptors corrupted!
Run Code Online (Sandbox Code Playgroud)

我如何摆脱这种困境?这是我目前可以给你的所有信息:

fdisk -l /dev/sd[cdefgh]显示(正确)它们是“ Linux raid autodetect

但 fdisk 现在显示:

fdisk -l /dev/md0
Run Code Online (Sandbox Code Playgroud)

磁盘 /dev/md0:7501.5 GB,7501495664640 字节

...
磁盘标识符:0x00000000
磁盘 /dev/md0 不包含有效的分区表

(而不是 LVM 类型分区)

fdisk -l /dev/vg03/lv01
Run Code Online (Sandbox Code Playgroud)

磁盘 /dev/vg03/lv01:7501.5 GB,7501491732480 字节
...
磁盘标识符:0x00000000
磁盘 /dev/vg03/lv01 不包含有效的分区表

(而不是 ext3 类型的分区)

我试过了:

e2fsck -fy /dev/vg03/lv01
Run Code Online (Sandbox Code Playgroud)

e2fsck 1.41.12(2010 年 5 月 17 日)
e2fsck:组描述符看起来很糟糕...尝试备份块...
组 30533 的块位图不在组中。(block 1000532368)
搬迁?是的

组 30533 的 inode 位图不在组中。(block 1000532369)
搬迁?是的

第 1
步:检查 inode、块和大小将组 30533 的块位图重定位到 1000524246...
在块组 30533 中为 inode 位图分配 1 个连续块时出错:无法在 ext2 文件系统中分配块
e2fsck:中止

我可以给你的额外信息:

cat /proc/mdstat
Run Code Online (Sandbox Code Playgroud)

特性:[线性] [多路径] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 :活动(自动只读)raid5 sdg1[0] sdh1[5] sdf1[4] sde1 [3] sdc1[2] sdd1[1]
7325679360 blocks level 5, 128k chunk, algorithm 2 [6/6] [UUUUUU]
bitmap: 1/175 pages [4KB], 4096KB chunk

未使用的设备:

最后,所有 smartctl 测试(short 和 extendend)在任何磁盘上都没有显示错误。

我应该尝试resize2fs成长/dev/vg03/lv01并重做e2fsck吗?我应该cfdisk /dev/md0/dev/vg03/lv01回到他们真正的类型?

在此先感谢所有帮助。

2011-09-20 更新

我发出了以下命令,并且能够重新挂载分区,但是通过查看df前后的大小(),似乎丢失了 1Tb 的数据。通过检查某些文件的 MD5SUMS(来自旧备份)与重新安装的分区中的“相同”文件,已检测到一些错误。

为重新挂载分区而发出的命令是:

dumpe2fs /dev/vg03/lv01

  Block count: 1000491435<br />
  Block size:  4096<br />
Run Code Online (Sandbox Code Playgroud)

tune2fs -O ^has_journal /dev/vg03/lv01

resize2fs -p /dev/vg03/lv01

dumpe2fs /dev/vg03/lv01

  Block count: 1831418880<br />
  Block size:  4096<br />
Run Code Online (Sandbox Code Playgroud)

mount -o ro,noatime /dev/vg03/lv01 /mnt/raid

  OK... but files have been damaged / gone missing.
Run Code Online (Sandbox Code Playgroud)

mdp*_*dpc 1

您最初是如何创建 LVM 的?您是否准备了物理卷,/dev/md0或者是否fdisk首先使用其中一个分区作为物理卷。

如果您将整个设备用作 PV,则fdisk无法对其进行操作,因为 LVM 信息将放置在fdisk需要找到分区表的位置。

您可能想要检查的是执行 avgdisplay -v /dev/vg03以查看卷组中存在哪些物理卷。