4台の3TBHDDの1台が故障した4ディスクRAID5アレイがあります。 RAID5は単一のドライブの障害に耐えることができるので、デッドドライブを交換せずにRAID5を操作してみたいと思います。 (3/4ドライブでアレイを実行)
Linux環境でデータを回復しようとしています。mdadm
を使用してディスクをアセンブルおよびマウントし、データにアクセスして他の外部ストレージにオフロードできるようにします。
lsblk
すると、次のようになります。
_NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 103.9G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 7.9G 0 part [SWAP]
sdb 8:16 0 2.7T 0 disk
├─sdb1 8:17 0 2.4G 0 part
├─sdb2 8:18 0 2G 0 part
└─sdb3 8:19 0 2.7T 0 part
└─md2 9:2 0 8.2T 0 raid5
sdc 8:32 0 2.7T 0 disk
├─sdc1 8:33 0 2.4G 0 part
├─sdc2 8:34 0 2G 0 part
└─sdc3 8:35 0 2.7T 0 part
└─md2 9:2 0 8.2T 0 raid5
sdd 8:48 0 2.7T 0 disk
├─sdd1 8:49 0 2.4G 0 part
├─sdd2 8:50 0 2G 0 part
└─sdd3 8:51 0 2.7T 0 part
└─md2 9:2 0 8.2T 0 raid5
_
最初のドライブはOSを実行しているSSDであり、他の3つのドライブはRAID5アレイの一部です。障害のあるドライブは取り外されました。また、各ドライブの3番目のパーティションのサイズが大きいことから、リカバリしたいNASのデータがどのパーティションに保存されているかがわかります。 (_sdb3, sdc3, sdd3
_)
_mdadm --assemble --run /dev/md2 /dev/sd[bcd]3
_を使用してドライブを組み立ててみました
それは私に与えます:/dev/md2 has been started with 3 drives (out of 4).
次に試しました:_mount -t ext4 /dev/md2 /home/raid
_
エラーが発生します:
_mount: wrong fs type, bad option, bad superblock on /dev/md2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
_
これは、ファイルシステムが存在しないためですが、これらのドライブは、ホームネットワークストレージに使用されていたため、ファイルシステムが機能しているSynology DS412 + NASからのものです。
_dmesg | tail
_は_Number of reserved GDT blocks insanely large: 8189
_のエラーを出します
これをさらに調査すると、この質問が得られました https://askubuntu.com/questions/894530/insanely-large-gdt-blocks-with-mdadm-partitions その回答は問題を示唆するスレッドにリンクしています。 GDTブロックの処理方法を変更するカーネルバージョン4.7へのパッチの結果?推奨される解決策は、この更新より前のカーネルを実行しているLinuxのバージョンを使用し、15.10を選択することです。
提案されたように、Ubuntu 15.10を実行しようとしましたが、デフォルトでmdadm
が含まれていなかったため、インストールできませんでした。これは、15.10がサポート終了になり、サポートされなくなったことが原因である可能性があります。 _apt-get
_を使用してインストールしようとすると、404エラーが混在し、インストールは常に失敗します。
_file -s /dev/md2
_を試してみることをお勧めします。これは、手動で転送せずに転送する方法がわからないという文字列を返しましたが、Linux Rev ID、ext4ファイルシステム、UUID、ボリューム名、_(extents)
_、_(large files)
_および_(huge files)
_
4台のドライブのうち3台だけでアレイにアクセスできるようにして、ハードウェアを交換せずにアレイからデータを回復できるようにすることは可能ですか?
このアレイを正常にマウントするには、Ubuntu 15.10と、サポート終了バージョンにmdadm
をインストールするための回避策を使用する必要がありました。
Linux Kernel 4.7のパッチは、Linuxが大きなGPTブロックを処理する方法を変更しました。これは、メモリの破損を回避することを目的としていますが、このような場合にRAIDのマウントに失敗する原因にもなります。
Ubuntu 15.10に切り替えることで、RAIDアレイをマウントすることができました。ただし、このバージョンのUbuntuにはデフォルトでmdadm
がインストールされていません。また、ダウンロードの試行はサポートされていないため、リンクされたリソースが利用できなくなったため、mdadm
のダウンロードは404エラーで失敗します。
15.10にmdadm
をインストールするには、次の手順に従います。 ソフトウェアをインストールする方法、またはサポートされていない古いUbuntuリリースからアップグレードする方法
から そこにある答えの1つ :
サポートされていない古いリリースのリポジトリ[…]はアーカイブサーバーに移動されます。 http://old-releases.ubuntu.com で利用可能なリポジトリがあります。
[…]
古いリリースを引き続き使用する場合は、_
/etc/apt/sources.list
_を編集し、_archive.ubuntu.com
_および_security.ubuntu.com
_を_old-releases.ubuntu.com
_に変更します。これは
sed
で実行できます。
Sudo sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
次に、次のように更新します。
_
Sudo apt-get update && Sudo apt-get dist-upgrade
_
を使用してmdadm
をインストールできるようになりました
_Sudo apt-get install mdadm
_
インストールしたら、次のコマンドを実行します。
_Sudo mdadm --assemble --run /dev/md2 /dev/sd[bcd]3`
_
(私の場合、これはRAID5であるため_/dev/md2
_をポイントし、次に_/dev/sd[bcd]3
_、_sdb3
_、および_sdc3
_はのデータパーティションであるため_sdd3
_をポイントします。上の表にあるように、私のデータがある各ドライブ。必要に応じてこれらを変更してください。)
(ドライブがビジーまたは実行中であるというエラーが発生した場合は、_Sudo mdadm --stop /dev/md2
_を実行してください)。
次
_Sudo mount -t ext4 /dev/md2 /home/raid
_
(最初にこのディレクトリを_Sudo mkdir /home/raid
_で作成する必要があるかもしれません)。
その後、アレイは_/home/raid
_ディレクトリで使用可能になり、バックアップのためにデータにアクセスできました。