RAID 内分区上的 Fsck 损坏了文件系统和 RAID

RAID 内分区上的 Fsck 损坏了文件系统和 RAID

是什么:在整个磁盘上使用 mdadm 的 RAID 1 表示/dev/md0从 和/dev/sdasdb在一个分区上使用 GPT md0,在该分区上使用 ext4 ( md0p1)。我认为会发生什么:更换主板后,Linux 检测到 ext4 上的问题md0p1。我运行 fsckmd0p1并对所有问题说“是”。这是一些错误的校验和,很多范围树可能更窄,并且一些日志不是空的。它似乎成功结束,我尝试挂载,/dev/md0p1 但有关于坏文件系统的相同错误。我再次运行 fsck md0p1,但现在它说“没有超级块”,并且替代超级块编号没有帮助。我重新启动,现在在和mdadm上都找不到它的超级块。 GPT 分区仍然正常,但 testdisk 发现两个磁盘上都没有 ext4 的迹象(仅 ms 数据)。sdasdb

# fdisk -l
GPT PMBR size mismatch (3907028991 != 3907029167) will be corrected by w(rite).
Disk /dev/sda: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: D09686A6-2428-48EC-868B-D3C8CE5E0C23

Device     Start        End    Sectors  Size Type
/dev/sda1     34 3907024064 3907024031  1,8T Microsoft basic data

Partition 1 does not start on physical sector boundary.

...

GPT PMBR size mismatch (3907028991 != 3907029167) will be corrected by w(rite).
Disk /dev/sde: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: D09686A6-2428-48EC-868B-D3C8CE5E0C23

Device     Start        End    Sectors  Size Type
/dev/sde1     34 3907024064 3907024031  1,8T Microsoft basic data

Partition 1 does not start on physical sector boundary.
# mdadm --examine /dev/sd*
/dev/sda:
MBR Magic : aa55
Partition[0] :   3907028991 sectors at            1 (type ee)
mdadm: No md superblock detected on /dev/sda1.
...
/dev/sde:
MBR Magic : aa55
Partition[0] :   3907028991 sectors at            1 (type ee)
mdadm: No md superblock detected on /dev/sde1.
gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sda: 3907029168 sectors, 1.8 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): D09686A6-2428-48EC-868B-D3C8CE5E0C23
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 3907029134
Partitions will be aligned on 8-sector boundaries
Total free space is 5070 sectors (2.5 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
1              34      3907024064   1.8 TiB     0700

Command (? for help): i
Using 1
Partition GUID code: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (Microsoft basic data)
Partition unique GUID: E11B0DE3-9ABD-47B2-9F09-E993F76FBC6F
First sector: 34 (at 17.0 KiB)
Last sector: 3907024064 (at 1.8 TiB)
Partition size: 3907024031 sectors (1.8 TiB)
Attribute flags: 0000000000000000
Partition name: ''

所以我的问题是:

  1. 有机会恢复文件系统吗?我可以通过最重要的方式恢复一些文件,但它是 2 TB 的垃圾和很少有价值的文件,因此至少没有文件名就毫无意义。
  2. 更重要的是:出了什么问题?看来我做了所有建议的事情(除了没有备份),并且丢失了我的数据。

因为情况很奇怪,我将讲述整个故事:Linux 在 SSD 上运行,大部分数据(包括主目录)位于 2 个 HDD 上的 RAID 上。
自 2011 年或 2012 年以来,RAID 一直运行良好。6-8
个月前,我升级了计算机:将处理器从 2 核更改为 8 核,添加 RAM 并插入适用于 Windows 的 SSD。
在这台计算机第一次尝试打开后,我必须在 10-20 秒内按下重置按钮 1-2 才能将其打开。但所有其他系统都工作正常。
1-2 个月前 2 次所有应用程序开始崩溃,我在控制台中看到 I/O 错误,但重新启动后一切正常。
1 个月前,将 kubuntu 升级到最新版本。
两周前,事情变得糟糕了,
Linux 无法启动 – SSD 上出现一些错误。我购买了其他SSD,设法通过保存大部分文件系统ddrescue,但它无法启动,所以我在SSD上的空分区上安装了新的操作系统。它在安装 mdadm 后组装 RAID,但不会添加分区/dev:它是,/dev/md127但不是 md127p1。我按照 gdisck 的建议修复了 md127 中的 GPT 表(它具有良好的主 GTP 表)并对齐已损坏的备份 GTP 表。对 md127p1(已更改为 md0p1)进行 fsck 没问题,我成功挂载了它。
它工作一两天,然后计算机无论如何都无法启动。
我设法吃过一次BIOS,但没有IDE设备,所以我买了新主板(旧的是华擎900FX Extreme3​​,新的是技嘉970-DS3P)。
更换主板后,我运行 Linux,它以恢复模式启动(/dev/md0p1文件系统有问题),然后这就是我在问题开头所写的内容。

做错了什么?

  1. 没有备份——当然。现在我明白了 RAID 不是备份。
  2. 忽略IO错误?它使我的 SSD 与系统崩溃,所以它只是让我安装新的系统。
  3. 在 RAID 中设置分区是不是一个坏主意?从 sda1 和 sdb1 组装 raid 比从 sda 和 sdb 组装 raid 更好吗?

添加:

lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   1,8T  0 disk <-- raid
└─sda1   8:1    0   1,8T  0 part
sdb      8:16   1 957,9M  0 disk
└─sdb1   8:17   1 956,9M  0 part
sdc      8:32   0  59,6G  0 disk
├─sdc1   8:33   0     1M  0 part
├─sdc2   8:34   0  29,8G  0 part /old
└─sdc3   8:35   0  29,8G  0 part /
sdd      8:48   0 119,2G  0 disk
└─sdd1   8:49   0 119,2G  0 part
sde      8:64   0   1,8T  0 disk <-- raid
└─sde1   8:65   0   1,8T  0 part
sr0     11:0    1     2G  0 rom

相关内容