UbuntuでRAID5の復旧は出来る?mdadmコマンドを解説

LinkStation

LinkStation LS-QLシリーズのハードディスクが不調の為、UbuntuのレスキューDVDを使って復旧にチャレンジしています。

LinkStationはRAID0/RAID1/RAID5に対応していますが、レスキュー版のUbuntuはデフォルト状態では、未だRAIDを使うことが出来ません。

そこで本記事では、UbuntuでRAID/RAID5の復旧を行うための準備作業と、RAID/RAID5の扱いに欠かせない「mdadmコマンド」の使い方について、解説します。

UbuntuでRAID/RAID5を有効にする

Ubuntu

UbuntuでRAID5を利用する場合は、mdadmというコマンドを使います。

mdadmはUbuntuのデフォルトパッケージには含まれていませんので、追加でインストールする必要があります。

Ubuntuにログインし、以下のコマンドでmdadmをインストールします。

apt-get install mdadm

これでUbuntuでRAID/RAID5が使えるようになります。

mdadmコマンドを使ったRAID5復旧

復旧

RAID5とmdadmコマンドが使えるようになったので、さっそくセットアップしていきましょう。

今回はLinkStationで使っていた既にRAID5構成になっているハードディスクがあってパソコンに搭載されている状態からのスタートです。

まず、/devにRAID用のデバイスを作ります。

mknod /dev/md2 b 9 2
chmod +x /dev/md2

次にRAIDをスタートさせます。

mdadm -A で論理デバイスと物理デバイスを関連付け、RAIDを開始することが出来ます。

mdadm -A /dev/md2 /dev/sd[abcd]6
mdadm -v -A /dev/md2 /dev/sd[abcd]6
mdadm -A /dev/md2 /dev/sd[abcd]6 --run
mdadm --detail /dev/md2
mdadm --examine /dev/sda6
mdadm --examine /dev/sdb6
mdadm --examine /dev/sdc6
mdadm --examine /dev/sdd6

正常なハードディスクであれば、上記のコマンドのみでRAIDを開始出来ますが、今回はエラーが出てSTOPしてしまったので、mdadm --examine でRAIDコードの確認をしています。

RAIDコードを使うと更に強制的なRAID開始が出来るようになるので、以下のようにします。

mdadm -A /dev/md2 -u 82ca5ba8:77319326:bd54f990:2edf8a42 /dev/sd[abcd]6 --run --force
mdadm --stop /dev/md2

上では4本のHDDでRAIDを組もうとしていますがエラーが出たため、HDDの本数を3本に減らして再チャレンジします。
abcdの4本指定からacdの3本指定に変更している点がポイントです。

何故、bを減らしたのかについては後述します。

mdadm -A /dev/md2 -u 82ca5ba8:77319326:bd54f990:2edf8a42 /dev/sd[acd]6 --run --force
mkdir /mnt/array2
mount /dev/md2 /mnt/array2

3本にしたことでエラーが減り、無事RAID5がスタートし、マウントまで出来ました!

中身を覗いてみましょう。

# cd /mnt/array2
# ls
ls: cannot open directory .: Input/output error

残念!
マウントまで出来ればあと一歩なんですが、中身は読み取れませんでした。

この場合は、物理的故障も視野に、新しいハードディスクを購入してデータをコピーしてから復旧する方法に移ります。

ちなみにabcdのうちのbを減らした理由ですが、以下のようにすれば、どのHDDが物理的に危ないかが分かります。

# dmesg | grep sector
[    3.530984] ata4.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    3.531076] ata2.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    3.531773] ata3.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    3.698406] ata1.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    8.609867] blk_update_request: I/O error, dev sdb, sector 14024808
[   11.612308] blk_update_request: I/O error, dev sdb, sector 14024808
[   14.820660] blk_update_request: I/O error, dev sdb, sector 14024811
[   17.815835] blk_update_request: I/O error, dev sdb, sector 14024812
[   20.818239] blk_update_request: I/O error, dev sdb, sector 14024814

今回は sdb が不調のメッセージが出ていますので、Diskの2番目、b が瀕死の状態ということになります。

新しいハードディスクにデータをコピーしてから復旧する方法については、以下の記事から順番に御覧ください。

壊れたハードディスクを丸ごとコピーする【EASEUS Disk Copy】

Windows10にアップグレードしたら、LinkStationのHDDが壊れてEMモードにすらならずにハマってしまったけれど、Linuxの機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。

故障したLinkStationから自力でデータ復旧した方法

コメント

タイトルとURLをコピーしました