web-dev-qa-db-ja.com

Synologyからのデータの回復NAS – RAID5、ext4、 "予約されたGDTブロックの数がめちゃくちゃ大きい"

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台だけでアレイにアクセスできるようにして、ハードウェアを交換せずにアレイからデータを回復できるようにすることは可能ですか?

1
Datanoob

このアレイを正常にマウントするには、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_ディレクトリで使用可能になり、バックアップのためにデータにアクセスできました。

1
Datanoob