私は最近Kubuntu 12.04ワークステーションを新しい場所に移動しました。正常に終了しましたが、新しい家で再起動したとき、RAID-1アレイ/ dev / md0が消えました!配列要素はスペア要素としてリストされていますか? (!)
重要なファイルだけがRAID-1アレイ/ dev / md0にあり、オペレーティングシステムは独自のHDDにあります。
配列の両方の要素は正常に見え、次のようにリストされています。 Linux raidの自動検出。
fdisk -l 出力:
# fdisk -l
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000669b6
Device Boot Start End Blocks Id System
/dev/sdc1 63 1953520064 976760001 fd Linux raid autodetect
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000f142
Device Boot Start End Blocks Id System
/dev/sdb1 63 1953520064 976760001 fd Linux raid autodetect
mdadm出力:
# mdadm --examine /dev/sdb1 /dev/sdc1
/dev/sdb1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : f3d0cc70:52dfd786:d81c7e2d:1c12b06d
Name : forsaken:0
Creation Time : Tue Sep 3 04:52:19 2013
Raid Level : -unknown-
Raid Devices : 0
Avail Dev Size : 1953517954 (931.51 GiB 1000.20 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : active
Device UUID : 75c525b2:cdfbc3c4:918ac90a:a1bedfd0
Update Time : Thu Nov 20 16:50:46 2014
Checksum : ff0eb2ba - correct
Events : 1
Device Role : spare
Array State : ('A' == active, '.' == missing)
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : f3d0cc70:52dfd786:d81c7e2d:1c12b06d
Name : forsaken:0
Creation Time : Tue Sep 3 04:52:19 2013
Raid Level : -unknown-
Raid Devices : 0
Avail Dev Size : 1953517954 (931.51 GiB 1000.20 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : active
Device UUID : e62e960a:3adf4b5e:f1fb773f:a7a80cfa
Update Time : Thu Nov 20 16:50:46 2014
Checksum : 4ee25b00 - correct
Events : 1
Device Role : spare
Array State : ('A' == active, '.' == missing)
アレイを停止し、自己組み立てを試みます。
# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
# mdadm --assemble -v --scan --uuid=f3d0cc70:52dfd786:d81c7e2d:1c12b06d
mdadm: looking for devices for /dev/md/0
mdadm: cannot open device /dev/sr0: No medium found
mdadm: no RAID superblock on /dev/sdb
mdadm: no RAID superblock on /dev/sde1
mdadm: no RAID superblock on /dev/sde
mdadm: no RAID superblock on /dev/sdd1
mdadm: no RAID superblock on /dev/sdd
mdadm: no RAID superblock on /dev/sdc
mdadm: no RAID superblock on /dev/sda9
mdadm: no RAID superblock on /dev/sda8
mdadm: no RAID superblock on /dev/sda7
mdadm: no RAID superblock on /dev/sda6
mdadm: no RAID superblock on /dev/sda5
mdadm: no RAID superblock on /dev/sda4
mdadm: no RAID superblock on /dev/sda3
mdadm: no RAID superblock on /dev/sda2
mdadm: no RAID superblock on /dev/sda1
mdadm: no RAID superblock on /dev/sda
mdadm: /dev/sdb1 is identified as a member of /dev/md/0, slot -1.
mdadm: /dev/sdc1 is identified as a member of /dev/md/0, slot -1.
mdadm: added /dev/sdc1 to /dev/md/0 as -1
mdadm: added /dev/sdb1 to /dev/md/0 as -1
mdadm: /dev/md/0 assembled from 0 drives and 2 spares - not enough to start the array.
アレイを組み立てて強制してみてください。
# mdadm --assemble -v --scan --force --run --uuid=f3d0cc70:52dfd786:d81c7e2d:1c12b06d
mdadm: looking for devices for /dev/md/0
mdadm: cannot open device /dev/sr0: No medium found
mdadm: no RAID superblock on /dev/sdb
mdadm: no RAID superblock on /dev/sde1
mdadm: no RAID superblock on /dev/sde
mdadm: no RAID superblock on /dev/sdd1
mdadm: no RAID superblock on /dev/sdd
mdadm: no RAID superblock on /dev/sdc
mdadm: no RAID superblock on /dev/sda9
mdadm: no RAID superblock on /dev/sda8
mdadm: no RAID superblock on /dev/sda7
mdadm: no RAID superblock on /dev/sda6
mdadm: no RAID superblock on /dev/sda5
mdadm: no RAID superblock on /dev/sda4
mdadm: no RAID superblock on /dev/sda3
mdadm: no RAID superblock on /dev/sda2
mdadm: no RAID superblock on /dev/sda1
mdadm: no RAID superblock on /dev/sda
mdadm: /dev/sdb1 is identified as a member of /dev/md/0, slot -1.
mdadm: /dev/sdc1 is identified as a member of /dev/md/0, slot -1.
mdadm: added /dev/sdc1 to /dev/md/0 as -1
mdadm: added /dev/sdb1 to /dev/md/0 as -1
mdadm: failed to RUN_ARRAY /dev/md/0: Invalid argument
mdadm: Not enough devices to start the array.
それでも動作しません。 RAID-1アレイを再組み立てしてデータに再アクセスするにはどうすればよいですか?
答え1
何らかの理由でRAIDメタデータが破損しているようです。どうやってそのようなことが起こりましたか?誤った設定、誤ったスクリプト、ハードウェアの問題などが修正された場合は、読み取り専用でマウントしてみてください。
mkdir /mnt/{sdb1,sdc1}
mount -o ro,loop,offset=$((2048*512)) /dev/sdb1 /mnt/sdb1
mount -o ro,loop,offset=$((2048*512)) /dev/sdc1 /mnt/sdc1
片側がマウントされていることを確認し、既知の種類のファイルを確認し、両側に破損したファイルがあるかどうかを比較します。この時はバックアップをするのに良い時期でもあります。
保持する面を決定したら、それを使用して新しいRAIDを作成できます。
最初の削除:
umount /mnt/{sdb1,sdc1}
/dev/md*
指示に従って端末を使用している人がいる場合は、/proc/mdstat
使用を中止してください。
mdadm --stop /dev/md0
この例で使用されている新しいRAID-1を作成するには、/dev/sdb1
正しいメタデータバージョンとオフセットを使用する必要があります。したがって、上記のインストールが実際に機能している場合にのみこれを実行してください。それ以外の場合は、まず正しいオフセットを決定する必要があります。
mdadm --create /dev/md0 --metadata=1.2 --data-offset=2048 \
--level=1 --raid-devices=2 /dev/sdb1 missing
読み取り専用で再マウントして、実際に期待どおりに機能していることを確認します。
mount -o ro,loop /dev/md0 /mnt/sdb1
すべてが問題ない場合は、最後に欠落しているデバイスをRAIDに追加してください。
mdadm /dev/md0 --add /dev/sdc1
これにより、/ dev / sdc1が/ dev / sdb1のデータで上書きされ、RAIDが再同期されることを願っています。
ただし、ディスクにまだ512バイトのセクタがある場合、パーティションはセクタ63から始まります。ただし、ほとんどの最新ディスクは4kセクタを使用しているため、RAIDでディスクを交換する必要がある場合は、これらの新しいディスクのパーティションの配置にも注意を払うことをお勧めします。