ダウングレード/再構築された状態のraid1ドライブを強制的にマウントできますか?ペアリングと再構築という危険な作業を進める前に、すべてのファイルを復元したいと思います。私が知っている限り、ドライブの外観は良好で破損していません。ドライブのペアに部分的にエラーが発生しました。
ドライブが再構築されていない場合はどうするかを正確に知っていました。私が試したことは次のとおりです。
# mdadm --verbose --assemble /dev/md8 /dev/sdb1 --force
mdadm: looking for devices for /dev/md8
mdadm: /dev/sdb1 is identified as a member of /dev/md8, slot 1.
mdadm: no uptodate device for slot 0 of /dev/md8
mdadm: added /dev/sdb1 to /dev/md8 as 1
mdadm: /dev/md8 assembled from 0 drives and 1 rebuilding - not enough to start the array.
# cat /proc/mdstat
md8 : inactive sdb1[1](S)
976759808 blocks super 1.2
md0 : active raid1 sdc1[0]
976759672 blocks super 1.2 [2/1] [U_]
# mdadm --stop /dev/md8
mdadm: stopped /dev/md8
# mount /dev/sdb1 /mnt/temp2
mount: unknown filesystem type 'linux_raid_member'
# mount -o ro -t ext3 -b 2048 /dev/sdb1 /mnt/temp1
mount: wrong fs type, bad option, bad superblock on /dev/sdb1.
# foremost -i /dev/sdb -o /tmp/foo (this results in perfectly good files)
この特別なケースでは、コマンドはforemost
ファイルを復元するため、正しいスーパーブロックオフセットしか取得できない場合は、ドライブに何かが必要です。
この特別な場合、配列の2つの部分を組み立てるとカーネルパニック(!)が発生するため、とにかく実際にはオプションではありません(セキュリティの問題は取り除いてください)。
更新:mdadmの出力が追加されました。
# mdadm --examine /dev/sdb1
/dev/sdb1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x2
Array UUID : e00a291e:016bbe47:09526c90:3be48df3
Name : ubuntu:0
Creation Time : Wed May 11 12:26:39 2011
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 1953519616 (931.51 GiB 1000.20 GB)
Array Size : 1953519344 (931.51 GiB 1000.20 GB)
Used Dev Size : 1953519344 (931.51 GiB 1000.20 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Recovery Offset : 0 sectors
State : clean
Device UUID : 41346f44:ccacbbf7:0c17c133:eb7b341f
Update Time : Sat Apr 13 00:02:08 2013
Checksum : 483a0a44 - correct
Events : 402833
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing)
答え1
RAID 1でデータオフセット(2048セクタ、通常は正確なデータオフセットを見つけることができるなどmdadm --examine /dev/sdb1
)がわかっている場合は、次のように読み取り専用(安全のために)ループデバイスを作成できます。
# losetup --find --show --read-only --offset $((2048*512)) /dev/sdb1
/dev/loop7
次に、印刷されたループデバイスを確認してインストールしてみてください。
# fsck.ext3 -n -v /dev/loop7
# mount -o ro /dev/loop7 /mnt/recovery
-o ro,loop,offset=
マウントオプションを使用してこれを直接実行することは可能ですが、実際に読み取り専用であることを確認するためにループデバイスを手動で作成することをお勧めします。
ファイルシステム自体が破損している場合は、イメージを作成し、そのイメージに対してdd
このような実験を実行する必要があります。fsck
あるいは、Linuxネットワークブロックデバイスを使用して、ディスクの上部に書き込むときにコピーレイヤーを配置することもできます。これによりfsck
、ディスク自体に何も書き込むことなく、実際にそのレイヤーに何でも書き込むことができます(nbd-server -c
/、それでデバイスがnbd-client
作成されます)。/dev/nbdX
あなたの使用のために)。おそらくデバイスマッパーを使って同じことをすることができますが、私は一度も試したことがありません。
答え2
次のコマンドを使用して、アレイ内のRAIDデバイスの数を1に設定できます。
mdadm /dev/md8 --grow --raid-devices=1 --force
/proc/mdstat
その後、有効になっていることを確認してくださいmd8
。データをコピーする前に読み取り専用でマウントする必要があります。