我有一个磁盘,以前放在我的 qnap NAS 中(它和另一个磁盘一起在 raid1 中,我现在还有这个磁盘)。NAS 坏了,我把这个磁盘挂载到我的 ubuntu 机器上,用来mdadm
创建 raid 阵列,然后这成功挂载并读取它。
然后我关闭了笔记本电脑,当我重新打开它时,我无法安装任何东西(mdadm 返回错误,说设备正忙)。我尝试了很多方法(也重新启动了),但无法重新安装它。
出于沮丧,我想到了一个糟糕的想法,mdadm --zero-superblock
在磁盘的每个分区上运行,并增加了更多的麻烦,因为我现在无法做任何事情(除了侮辱自己)。
lsblk
返回此:
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 517,7M 0 part
│ └─md11 9:11 0 516,7M 0 raid1
├─sdc2 8:34 0 517,7M 0 part
│ └─md12 9:12 0 516,7M 0 raid1
├─sdc3 8:35 0 2,7T 0 part
├─sdc4 8:36 0 517,7M 0 part /media/myuser/2ed9e1b2-2659-4202-9066-bd3246353f1d
└─sdc5 8:37 0 8G 0 part
└─md15 9:15 0 8G 0 raid1
md13 9:13 0 0B 0 md
该磁盘确实有 5 个分区,我需要访问。令我惊讶的是,Ubuntu无需询问/dev/sdc3
就能挂载。/dev/sdc4
当我跑步时lvm fullreport
我得到:
lvm fullreport
WARNING: wrong checksum 0 in mda header on /dev/sdc3 at 4096
WARNING: wrong magic number in mda header on /dev/sdc3 at 4096
WARNING: wrong version 0 in mda header on /dev/sdc3 at 4096
WARNING: wrong start sector 0 in mda header on /dev/sdc3 at 4096
WARNING: bad metadata header on /dev/sdc3 at 4096.
WARNING: scanning /dev/sdc3 mda1 failed to read metadata summary.
WARNING: repair VG metadata on /dev/sdc3 with vgck --updatemetadata.
WARNING: scan failed to get metadata summary from /dev/sdc3 PVID A0oBICVnS2UPgax0Y8H2F5lgP2L3Xa3D
Fmt PV UUID DevSize PV Maj Min PMdaFree PMdaSize PExtVsn 1st PE PSize PFree Used Attr Allocatable Exported Missing PE Alloc PV Tags #PMda #PMdaUse BA Start BA Size PInUse Duplicate
lvm2 A0oBIC-VnS2-UPga-x0Y8-H2F5-lgP2-L3Xa3D <2,72t /dev/sdc3 8 35 0 0 1 1,00m <2,72t <2,72t 0 --- 0 0 0 0 0 0
Start SSize PV UUID LV UUID
0 0 A0oBIC-VnS2-UPga-x0Y8-H2F5-lgP2-L3Xa3D
我有一些东西/etc/lvm
看起来像是备份,但我已经搞砸了,我不想造成更多的损害。
在这个论坛和其他论坛中搜索我尝试了很多方法,最值得注意的是
mdadm --create --assume-clean /dev/md0 --level=1 --raid-devices=2 /dev/sdc3 missing
但如果我尝试安装/dev/md0
我得到
mount: /mnt/1: wrong fs type, bad option, bad superblock on /dev/md0, missing codepage or helper program, or other error.
并且lvm fullreport
不提供任何输出。
如能得到任何帮助我将非常感谢,我有另一个 raid 磁盘,它应该包含相同的信息,但在我把它弄乱之前,我想看看我是否可以恢复这个。
编辑1
输出blkid
:
/dev/sdc: PTUUID="170dad0b-6e63-4bbc-835e-9c7e901e3d4d" PTTYPE="gpt"
/dev/sdc2: UUID="2d0918c5-2ae2-6736-cb3a-9dfb2f014dc0" UUID_SUB="7b071e98-21b9-2459-7b3d-232247796426" LABEL="home-x1-carbon:12" TYPE="linux_raid_member" PARTLABEL="primary" PARTUUID="61b68a0d-0ebc-4379-9d8e-9694a0edc09d"
/dev/sdc5: UUID="2d279112-312e-1a89-d597-da4cc01c2a92" UUID_SUB="72243364-539b-6614-53c2-374e28a6a4e7" LABEL="home-x1-carbon:15" TYPE="linux_raid_member" PARTLABEL="primary" PARTUUID="29af1fc5-57ab-4da4-ac38-d3d9955072b5"
/dev/sdc3: UUID="01f77d36-7ed1-f4be-6948-820e41b0956a" UUID_SUB="c78c6ff9-63bb-002f-93a4-c901bdb14307" LABEL="home-x1-carbon:0" TYPE="linux_raid_member" PARTLABEL="primary" PARTUUID="4feebb7b-0a90-490c-a516-3fdca113592f"
/dev/sdc1: UUID="4a443aca-7fbe-197c-0bcb-72ec6c0c3ce0" UUID_SUB="55bf9203-a7ca-a8a3-4cdb-5cef7f12e54f" LABEL="home-x1-carbon:11" TYPE="linux_raid_member" PARTLABEL="primary" PARTUUID="22efde15-2e64-4cf5-b220-21ee5c57aed2"
/dev/sdc4: UUID="2ed9e1b2-2659-4202-9066-bd3246353f1d" BLOCK_SIZE="4096" TYPE="ext3" PARTLABEL="primary" PARTUUID="d5ae2202-0f7b-4c30-b7c3-f9d84de4b14e"
blkid /dev/md0
是空的。
编辑2
尝试此操作后:
# mdadm --create --assume-clean /dev/md0 --level=1 --raid-devices=2 /dev/sdc3 missing
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
lsblk
现在显示/dev/md0
:
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 517,7M 0 part
│ └─md11 9:11 0 516,7M 0 raid1
├─sdc2 8:34 0 517,7M 0 part
│ └─md12 9:12 0 516,7M 0 raid1
├─sdc3 8:35 0 2,7T 0 part
│ └─md0 9:0 0 2,7T 0 raid1
├─sdc4 8:36 0 517,7M 0 part /media/dani/2ed9e1b2-2659-4202-9066-bd3246353f1d
└─sdc5 8:37 0 8G 0 part
└─md15 9:15 0 8G 0 raid1
md13 9:13 0 0B 0 md
但我仍然无法安装它:
# mount /dev/md0 /mnt/1
mount: /mnt/1: wrong fs type, bad option, bad superblock on /dev/md0, missing codepage or helper program, or other error.
答案1
您应该能够RAID
使用第二个驱动器恢复阵列。通过mdadm --zero-superblock
对所有分区执行操作,您销毁了所有md superblock
带有零的分区。在您的下面,/dev/sdc3
您有一个带有/ 的LVM
树,无法使用该驱动器进行恢复。VGs
LVs
如果您连接了第二个驱动器,则应该能够将mount
其连接LV
到 RAID 设备下方。您的架构如下所示(根据我们的讨论):
└─sdc3 8:51 0 2.7T 0 part
└─md1 9:1 0 2.7T 0 raid1
├─vg_lv0 252:1 0 27,9G 0 lvm
└─vg_lv1 252:2 0 2.7T 0 lvm
根据上述模式(lsblk
输出),blkid
输出为:
/dev/mapper/vg_lv1: LABEL="nas-qnap" UUID="75debd37-77c6-4f98-a6b6-8acc2a9f141f" BLOCK_SIZE="4096" TYPE="ext4"
如您所见,这是一个ext4
分区。您应该能够使用以下命令挂载它:
mount /dev/vg_lv1 /mnt
mount /dev/mapper/vg_lv1 /mnt
但是,这还不够。您有一个degraded
阵列 ( mdadm --detail /dev/md1
)。要恢复clean
状态,您需要连接损坏的驱动器并在不同的 上添加相应的分区md devices
。一旦两个驱动器连接起来,您应该会得到损坏的驱动器,如下所示:
sdc 8:32 0 2,7T 0 disk
├─sdc1 8:33 0 517,7M 0 part
│ └─md11 9:11 0 516,7M 0 raid1
├─sdc2 8:34 0 517,7M 0 part
│ └─md12 9:12 0 516,7M 0 raid1
├─sdc3 8:35 0 2,7T 0 part
│ └─md0 9:0 0 2,7T 0 raid1
├─sdc4 8:36 0 517,7M 0 part /media/dani/2ed9e1b2-2659-4202-9066-bd3246353f1d
└─sdc5 8:37 0 8G 0 part
└─md15 9:15 0 8G 0 raid1
正如你在上面看到的,你有4 md devices
。以下是根据上述模式列出的列表:
- /dev/md11
- /dev/md12
- /dev/md15
- /dev/md0
这/dev/sdc4
只是一个ext3
文件系统分区。在添加这些阵列之前,您需要像这样停止它们:
mdadm --stop /dev/md11
mdadm --stop /dev/md12
mdadm --stop /dev/md15
mdadm --stop /dev/md0
然后您应该能够使用以下命令将它们添加到正确的数组中:
mdadm /dev/mdX --add /dev/sdY1
mdadm /dev/mdX --add /dev/sdY2
mdadm /dev/mdX --add /dev/sdY3
mdadm /dev/mdX --add /dev/sdY5
对应X
于md device
清洁驱动器。Y
对应于驱动器损坏。有了RAID 1
,匹配分区应该“很容易”,因为它是镜像。
假设,您的干净驱动器如下所示:
sdb 8:16 0 2,7T 0 disk
├─sdb1 8:17 0 517,7M 0 part
│ └─md9 9:9 0 517,6M 0 raid1
├─sdb2 8:18 0 517,7M 0 part
│ └─md256 9:256 0 0B 0 md
├─sdb3 8:19 0 2,7T 0 part
│ └─md1 9:1 0 2,7T 0 raid1
│ ├─vg_lv0
│ │ 253:0 0 27,9G 0 lvm
│ └─vg_lv1
│ 253:1 0 2,7T 0 lvm
├─sdb4 8:20 0 517,7M 0 part
└─sdb5 8:21 0 8G 0 part
└─md322 9:322 0 0B 0 md
要添加的命令应该是:
mdadm /dev/md9 --add /dev/sdc1
mdadm /dev/md256 --add /dev/sdc2
mdadm /dev/md1 --add /dev/sdc3
mdadm /dev/md322 --add /dev/sdc5
您可以resync
使用以下命令查看阵列的速度和剩余时间:
watch -n0.5 cat /proc/mdstat