LinkStationのハードディスクをRAID5の最低本数で読めるようにする方法

Windows10からアクセスしているうちに、壊れてしまったLinkStation。

前の記事でLinkStationにtelnetで入れるようにしました。

本来ならパソコンに全てのハードディスクを繋いで、データのサルベージをするべきなのですが、LinkStationにもLinux OSが動いているので、そのままLinkStationのコマンドプロンプトからRAID5の復旧コマンドを叩くことに挑戦しました。

結果、mdadmというコマンドを使って、RAID5のデグレードに成功しましたので、本記事では、Linuxコマンドを使ったLinkStationのRAID5のデグレード手順を紹介します。

fdiskで全てのドライブを見る

LinkStationにも4つのハードディスクが搭載されていますので4つともLinux上で認識されているか?を確認します。

root@LS-QLF9C:~# fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sda1               1         125     1004031  83 Linux
/dev/sda2             126         748     5004247+ 83 Linux
/dev/sda4             749      121601   970751722+  5 Extended
/dev/sda5             749         873     1004031  82 Linux swap
/dev/sda6             874      121478   968759631  83 Linux

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sdb1               1         125     1004031  83 Linux
/dev/sdb2             126         748     5004247+ 83 Linux
/dev/sdb4             749      121601   970751722+  5 Extended
/dev/sdb5             749         873     1004031  82 Linux swap
/dev/sdb6             874      121478   968759631  83 Linux

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sdc1               1         125     1004031  83 Linux
/dev/sdc2             126         748     5004247+ 83 Linux
/dev/sdc4             749      121601   970751722+  5 Extended
/dev/sdc5             749         873     1004031  82 Linux swap
/dev/sdc6             874      121478   968759631  83 Linux

Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sdd1               1         125     1004031  83 Linux
/dev/sdd2             126         748     5004247+ 83 Linux
/dev/sdd4             749      121601   970751722+  5 Extended
/dev/sdd5             749         873     1004031  82 Linux swap
/dev/sdd6             874      121478   968759631  83 Linux
root@LS-QLF9C:~#

全てのDiskが見えました。

mdadmでRAID5のデグレード

RAID5というの最低3本のハードディスクがあれば動きます。
LinkStationのRAID5は4本で構成されていますので、最低ラインよりも1本余裕があります。

このRAID5の構成でハードディスクの本数を4本から3本に減らすことを「デグレード」と言います。
今回はdisk1が壊れてしまい、新品に入れかえた状態ですので、disk2~disk4の3本でRAID5が動くかどうかが復旧の大事なポイントになります。

RAID5の定義を確認

RAID用のデバイスは/dev/md・・から始まるデバイス名になっているので存在を確認します。

root@LS-QLF9C:~# ls -l /dev/md2
brwxr-xr-x    1 root     root       9,   2 Jun 18  2009 /dev/md2

RAID用のデバイス、既にありました。

RAIDの定義が書かれているのはmdadm.confです。

root@LS-QLF9C:~# cat /etc/mdadm.conf
DEVICE /dev/disk?_6 /dev/md2 /dev/md3

コンフィグもデバイスの宣言だけですが、残っていました。
RAIDが組まれると、この下にARRAY定義が記載されるようになります。

RAID5の再構成

OSにRAID構成を再認識させるため、mdadmコマンドでmd2デバイスにsdb,sdc,sddの3つのハードディスクをAddします。

root@LS-QLF9C:~# mdadm -A /dev/md2 /dev/sd[bcd]6
mdadm: /dev/md2 assembled from 3 drives - need all 4 to start it (use --run to insist).

ハードディスク3本でRAID5を構成しようとしたら、怒られました。

root@LS-QLF9C:~# mdadm -A /dev/md2 /dev/sd[bcd]6 --run
mdadm: /dev/md2 has been started with 3 drives (out of 4).

強制モードとして、–run を付けたら成功しました!

RAID状態の確認

RAIDが組まれたことの確認は mdadm –detail コマンドを使います。

root@LS-QLF9C:~# mdadm --detail /dev/md2
/dev/md2:
        Version : 00.90.03
  Creation Time : Mon Jun 22 02:07:49 2009
     Raid Level : raid5
     Array Size : 2906278656 (2771.64 GiB 2976.03 GB)
    Device Size : 968759552 (923.88 GiB 992.01 GB)
   Raid Devices : 4
  Total Devices : 3
Preferred Minor : 2
    Persistence : Superblock is persistent

    Update Time : Tue Dec 15 03:58:17 2015
          State : clean, degraded
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

           UUID : 82ca5ba8:77319326:bd54f990:2edf8a42
         Events : 0.6

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       22        1      active sync   /dev/sdb6
       2       8       38        2      active sync   /dev/sdc6
       3       8       54        3      active sync   /dev/sdd6
root@LS-QLF9C:~#

degradedと表示されているのが分かるでしょうか?

デグレードで完全に壊れたdisk1の存在を忘れ、立ち上がりました!

あとは適当にマウントすれば読めるようになります。

mount /dev/md2 /mnt/array2

LinkStationのRAID5のデグレードは、壊れたLinkStationを応急処置として正常な残りの3本のハードディスクで「どうにか読めるようにする」手法です。
データが全て壊れていないかどうかは、この時点では分かりませんので注意が必要です。

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

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

コメント

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