How to recover data of NAS that no longer start

起動しなくなったNASのデータを読み取る

The NAS which we used at our company a while ago suddenly fell into an unstartable state.
This article explains how to connect the NAS HDD from another PC and how to recover the data.

はじめに

 

今日KURO-N4B2ND4が死んだ。もしかすると昨日かも知れないが、私には分からない。

 

異邦人風にはじめてみた今日この頃、みなさんいかがお過ごしでしょうか。

みなさんデータの保存ってどうされているんでしょうか?

企業であれば、通常何らかのファイルサーバに類する機器が存在して、これにデータを保存しているかと思います。

手に入れやすいコンシューマー向けのNAS製品を利用してデータ保存しているところも多いのではないでしょうか。

そういう弊社でもNAS製品を利用してデータ保存を行っているのですが、先日NASが突然死しました。
週末 ( 休日中 ) に何らかの原因で電源がOFFになったようなのですが ( Nagios からエラーメールが飛んできていた )、週明け電源ONするもエラーで起動しない状態に。

そのまま修理に持ち込んだ場合、メーカーはデータは保障してくれない場合が多いようです。

データ復旧業者に持ち込む事も考えられますが、それなりの値段がかかるようです。

試しに自力で Linux PC に接続して何とかなったので、手順を示しておきます。

※復旧手順 ( 業者に頼むか?自力で復旧を試みる?等 ) に関しては社内調整してから行っています。
※写真は IM FREE  から ( crossin the line by loop_oh )

環境

突然死したNASは以下

メーカー 型番
玄人志向 KURO-N4B2ND4

昨年 AKIBA PC Hotline! の記事 にも載ってました。
玄人志向ブランドで国内販売されましたが、中身は これ のようです。

購入時の価格は確か3万円程。

  • 1TBのHDD x 4台付き
  • Blu-ray ドライブ内臓(書き込み可)
  • スタイリッシュなケース

等、ハードウェアの点からみた、コストパフォーンス比はかなり高い感じです。
このNASを選んだ方 ( 私ではない ) もこの点に惹かれたのだと思われます。
( 無事に動き続けてくれれば )

状況

上記 NAS が突然死した訳ですが、状況は以下のようなものでした。

問題点

  • 電源をONにするも、エラーコードが表示されてしまい、ここから先に進まない
  • エラー内容は
    BOOTING FAILURE SVC_CODE 1C_00

調べた事

  • NAS の OSは ubuntu ベース
    BUFFALO の NAS 等もそうですが、コンシューマ向けの NAS 製品の OS は Linux ベースのものが殆どのようです。
    ( RAID 機能も Linux のソフトウェア RAID にて行っている )
  • BOOTING FAILURE SVC_CODE 1C_00 は "FAN FAILURE" らしい
    海外サイトで発見した情報です。確度は怪しい。
    エラーコードの内容は、製品マニュアルはおろか、玄人志向はもちろん、LGのサイトにも一切情報がありません。
    ( 上記海外サイトでも エラーコード一覧が欲しいと書いていた方に、FAN FAILURE だと教えた人が 「エラーコード一覧は内部向け ( internal ) だから公開できない」って書いてた )
  • ディスク故障の可能性は薄い
    問題の週末の前まで、何の問題もなく動作していました。ディスクからの異常を示すような兆候も全く見られなかったため、ディスク自体の故障の可能性は低いと考えました。
    動作中の電源断により、システム ( OS ) 領域のデータが破損している可能性は考えられましたが、データの大部分は問題ないと思われる状況。
  • FAN FAILURE か確かめたいが、箱を開けると保証が切れる
    ケースFANは問題なく回転したので、もし FAN FAILURE だとすると CPU FAN だと思いますが、箱を開けると保証がなくなります。
    データ復旧後は交換したいらしく ( 私ではなく会社的に )、箱明けは ( 多分 ) NG
  • リカバリディスクの類はない
    LG本家で販売しているものには付いているようなんですが、玄人志向販売の日本国内向けのものには付いていないようです。

参考 : 分解!玄人志向「KURO-N4B2ND4」!

メーカー側の対応

この NAS は 玄人志向 のキワモノシリーズ というもので、箱には
ノンサポート商品 ( 1年間の交換修理のみ )
という記載がしてあります。

が、ダメ元で聞いてみました。

玄人志向は原則ノンサポートらしく、問い合わせは販売店までというルールがあるようで、amazon 経由で問い合わせたところ、販売代理店にメールで問い合わせろとの事。

販売代理店である CFD販売に以下質問を行ってみたところ。

  • どのような形の対応になるか?(箱には1年間の交換修理のみと記載)
  • 現状のドライブを残して修理・交換を行う事が可能か?

結果

ご申告に内容よりOSイメージが壊れていると思われます。
製品一式を「ご交換」で対応させていただきたいと思います。
( 原文ママ )

との事。

修理依頼書(同意書) には、

  • 弊社ではストレージデバイスのデータ保証、データバックアップ、データ復旧等は一切行っておりません。

の記載も。まあ、予想通りです。

  • 修理にお出しいただく際の送料はお客様ご負担でお願いします。着払いの場合はお受付できません。

保証期間内でも、こちらが送料負担するのって、最近では普通なんでしょうか?
先日プライベートで Pioneer の DVD プレーヤー ( 家電、AV機器 ) が調子悪くて修理依頼したときには、無料で引き取りサービスしてくれた記憶が。。。
対応はメーカー毎に異なるので、このあたりも踏まえてどこの製品を利用するかは考えるべきなんでしょうね。

データ復旧案

上記状況から、メーカー修理に出すとデータは破損確定なので、データ復旧するならメーカー修理に出す前に行う必要があります。

復旧業者に頼む線は NG になったので、以下方針で復旧する事にしました。

復旧手順概案

  • Ubuntu Linux を用意し、NASのディスクを接続する
    他 Linux でもおそらく大丈夫だと思いますが、NASのベースになっているディストリビューションに併せた方がより確実だと考えた。
  • RAID構成を復元し、Linuxで読み込み可能な形でマウントする
    RAID5で構成していた ( はず ) ので、RAID5で構成を復元しマウントする必要がある。
  • 無事にマウントできたら、別のHDDにデータを復旧 ( コピー ) する
    ディスクの中身が読めたら99%成功と考えてよいでしょう。
    後は、SMBとかNFSとかやり易い形で共有してデータをコピーすればOKです。

ディスク自体はおそらく問題ないことから、Linuxで適切に操作すればディスク内容を読み出せるだろうと考えました。

必要な機材

上記の案を実現するために、以下の機器が必要になります。

機器 要件
PC
  • SATA の HDD x 4 が接続できる事 
  • Ubuntu がブートできる事

空いているPCを探したところ、DELL の Vostro 200 というPCが見つかりました。

ケースを開けてM/Bのコネクタ群を見ると、SATAポートが 4個あります。
但し、4個しかないため、ここに NASのディスクを接続した場合、OS ( Ubuntu ) 自体はディスクから起動する事ができなくなります ( SATA 接続の光学ドライブも接続できなくなる )。
幸い ( 最近のPCは殆どそうですが ) USBブートに対応してたので、OS は USBブートする事にします。

以下の機器が足りなかったので追加で購入しました。

  • SATAケーブル
    足りなかったため ( NASは特殊なコネクタで接続されているため流用できず )
  • USBメモリ

復旧手順

実際の復旧手順を以下に示します。
 

Ubuntu のブータブル USB の作成

SATAポートが5以上ある等、USBブートが必要ない場合はとばしてください。

  1. Ubuntu のISOイメージを取得します。
    Ubuntu Desktop 日本語 Remixのダウンロード から Ubuntu のOSイメージを取得します。

    ※12.04.2 を利用しました。

  2. イメージ作成には UNetbootin を利用しました。
    UNetbootin をダウンロードします。
  3. UNetbootin ( unetbootin-windows-603.exe ) を実行します。
  4. UNetbootin が起動するので、先にダウンロードしたOSイメージを指定し、書き込み先のUSBドライブを指定して、[OK]ボタンをクリックします。
    UNetbootin

以上で、Ubuntu をブートするためのUSBメモリが用意できました。

HDDドライブの接続

NAS から HDD を取り出し、作業用の PC に接続します。

NASのドライブには番号が振ってあるはずです。
私はこの番号と作業用のPCのSATAポート番号の順序が同じになるように接続を行いました。

LG NAS LG NAS Vostro 200

※PC (M/B)のSATAポートの番号は、通常マザーボードにプリントしてあります ( マニュアルにも記載してある )。

※HDD が認識されているかどうかに関しては、BIOS 設定画面からもできるかと思います。
特に問題なければ確認の必要はないと思いますが、HDDが認識されないといった問題が発生した場合、切り分けのためにBIOS設定画面で確認した方がよい場合もあるかもしれません。
( BIOS で認識されていない場合、接続不良やHDDのハード故障の可能性がある。BIOSでは認識されるが OS で NG の場合は別の原因 )

Ubuntu Live-USBでブート

作成したUSBメモリをPCに接続して、USBメモリから起動します。
必要に応じてBIOSの起動順設定を変更する等してください。

  1. Ubuntu が起動するので、メニューから "Default" を選択して起動します。
  2. UBuntu のGUI 画面が表示されるので、"Dash ホーム" をクリックして "terminal" と検索し、実行します。
  3. terminal が起動するので、以下はターミナルでの操作になります。
  4. root ユーザとして作業を行います。
    $ sudo -i
    
  5. fdisk でディスクの確認を行います。
    # fdisk -l
    
    WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn              't support GPT. Use GNU Parted.
    
    
    Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1  1953525167   976762583+  ee  GPT
    
    WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn              't support GPT. Use GNU Parted.
    
    
    Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1  1953525167   976762583+  ee  GPT
    
    WARNING: GPT (GUID Partition Table) detected on '/dev/sdd'! The util fdisk doesn              't support GPT. Use GNU Parted.
    
    
    Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdd1               1  1953525167   976762583+  ee  GPT
    
    WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn              't support GPT. Use GNU Parted.
    
    
    Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdc1               1  1953525167   976762583+  ee  GPT
    
    Disk /dev/sde: 15.9 GB, 15854469120 bytes
    1 heads, 1 sectors/track, 30965760 cylinders, total 30965760 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xca67312d
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sde1   *        8064    30965759    15478848    c  W95 FAT32 (LBA)
    

    警告が表示されるが、/dev/sda ~ /dev/sdd が接続されている事が確認できました。

  6. parted を使えと言われているので、 gparted を起動して確認してみたところ、以下のような感じになっていました。
    gparted
  7. パーティションテーブルを見る限り、以下のパーティションでデータ用のパーティション ( RAID5 ) が構成されていたと思われます。
    Partition FileSystem Label    Size
    /dev/sda3 unknown    LG-NAS:2 901.71GiB
    /dev/sdb3 unknown    LG-NAS:2 901.71GiB
    /dev/sdc3 unknown    LG-NAS:2 901.71GiB
    /dev/sdd3 unknown    LG-NAS:2 901.71GiB
    
  8. RAIDの再構成を行うために、以下をインストールします。
    # apt-get install mdadm
    

    ※私の環境では Postfix もなぜか一緒にインストールされましたが、No Configuration でスキップしました。

  9. md ブロックを表示 ( RAIDの構成情報を確認 ) します。

    以下で確認できます。

    # mdadm --examine <デバイス名>
    

    以下実例

    root@ubuntu:/dev# mdadm --examine /dev/sda3
    /dev/sda3:
              Magic : a92b4efc
            Version : 1.2
        Feature Map : 0x0
         Array UUID : 0f073029:536ec2c7:9b3b8ce5:671180d9
               Name : LG-NAS:2
      Creation Time : Wed May 23 04:41:00 2012
         Raid Level : raid5
       Raid Devices : 4
    
     Avail Dev Size : 1891020800 (901.71 GiB 968.20 GB)
         Array Size : 5673059328 (2705.13 GiB 2904.61 GB)
      Used Dev Size : 1891019776 (901.71 GiB 968.20 GB)
        Data Offset : 2048 sectors
       Super Offset : 8 sectors
              State : clean
        Device UUID : 0d330544:3cd1ef58:64c6371a:deff97d3
    
        Update Time : Sun Apr 27 15:47:06 2014
           Checksum : e8237041 - correct
             Events : 21
    
             Layout : left-symmetric
         Chunk Size : 512K
    
       Device Role : Active device 0
       Array State : AAAA ('A' == active, '.' == missing)
    root@ubuntu:/dev# mdadm --examine /dev/sdb3
    /dev/sdb3:
              Magic : a92b4efc
            Version : 1.2
        Feature Map : 0x0
         Array UUID : 0f073029:536ec2c7:9b3b8ce5:671180d9
               Name : LG-NAS:2
      Creation Time : Wed May 23 04:41:00 2012
         Raid Level : raid5
       Raid Devices : 4
    
     Avail Dev Size : 1891020800 (901.71 GiB 968.20 GB)
         Array Size : 5673059328 (2705.13 GiB 2904.61 GB)
      Used Dev Size : 1891019776 (901.71 GiB 968.20 GB)
        Data Offset : 2048 sectors
       Super Offset : 8 sectors
              State : clean
        Device UUID : 575b7942:e4005ea5:873d54ab:5def9e69
    
        Update Time : Sun Apr 27 15:47:06 2014
           Checksum : 5a292ed7 - correct
             Events : 21
    
             Layout : left-symmetric
         Chunk Size : 512K
    
       Device Role : Active device 1
       Array State : AAAA ('A' == active, '.' == missing)
    root@ubuntu:/dev# mdadm --examine /dev/sdc3
    /dev/sdc3:
              Magic : a92b4efc
            Version : 1.2
        Feature Map : 0x0
         Array UUID : 0f073029:536ec2c7:9b3b8ce5:671180d9
               Name : LG-NAS:2
      Creation Time : Wed May 23 04:41:00 2012
         Raid Level : raid5
       Raid Devices : 4
    
     Avail Dev Size : 1891020800 (901.71 GiB 968.20 GB)
         Array Size : 5673059328 (2705.13 GiB 2904.61 GB)
      Used Dev Size : 1891019776 (901.71 GiB 968.20 GB)
        Data Offset : 2048 sectors
       Super Offset : 8 sectors
              State : clean
        Device UUID : b4fb3bd0:a4449f88:e2cfa316:77306b01
    
        Update Time : Sun Apr 27 15:47:06 2014
           Checksum : ce48e669 - correct
             Events : 21
    
             Layout : left-symmetric
         Chunk Size : 512K
    
       Device Role : Active device 2
       Array State : AAAA ('A' == active, '.' == missing)
    root@ubuntu:/dev# mdadm --examine /dev/sdd3
    /dev/sdd3:
              Magic : a92b4efc
            Version : 1.2
        Feature Map : 0x0
         Array UUID : 0f073029:536ec2c7:9b3b8ce5:671180d9
               Name : LG-NAS:2
      Creation Time : Wed May 23 04:41:00 2012
         Raid Level : raid5
       Raid Devices : 4
    
     Avail Dev Size : 1891020800 (901.71 GiB 968.20 GB)
         Array Size : 5673059328 (2705.13 GiB 2904.61 GB)
      Used Dev Size : 1891019776 (901.71 GiB 968.20 GB)
        Data Offset : 2048 sectors
       Super Offset : 8 sectors
              State : clean
        Device UUID : a6488185:48edb872:a8bc2c43:43fe65e2
    
        Update Time : Sun Apr 27 15:47:06 2014
           Checksum : 7b2b9693 - correct
             Events : 21
    
             Layout : left-symmetric
         Chunk Size : 512K
    
       Device Role : Active device 3
       Array State : AAAA ('A' == active, '.' == missing)
    

    /dev/sda3 ~ /dev/sdd3 で raid5 で構成されていたのは間違いない、且つ、mdブロックも無事なので、

  10. mdadm で Assemble します。
    mdadm -A /dev/md /dev/sd[abcd]3
    mdadm: /dev/md is an invalid name for an md device.  Try /dev/md/md
    

    怒られました。。。 /dev/md ではなく、/dev/md/md でやってみろとの事なので

    # mdadm -A /dev/md/md /dev/sd[abcd]3
    mdadm: /dev/md/md has been started with 4 drives.
    

    今度はうまくいったようです。

  11. /dev/md/md をマウントします。
    先ずマウントポイントを作成します。
    # mkdir /mnt/raid5
    
  12. 念のためリードオンリーでマウントします ( オペミスしてデータを消したりしないように )。
    # mount -o ro /dev/md/md /mnt/raid5
    
  13. 生きてるかな?....どきどき
    ( 以下、一部実際のデータとは異なります )
    # cd /mnt/raid5
    # ls -la
    total 52
    drwxr-xr-x 12 root     root     4096 Nov 26 08:41 .
    drwxr-xr-x  1 root     root       60 May 26 08:32 ..
    -rw-------  1 root     root     7168 Apr 26 19:14 aquota.user
    drwxrwxrwx  9 root     root     4096 Apr 23 19:28 Xxxxxxx
    drwxrwxrwx  2 root     root     4096 May 23  2012 DRM
    drwxrwxrwx  7 root     root     4096 Sep 25  2013 xxxxxxxx
    drwxrwxrwx  4 root     root     4096 May 23  2012 Multimedia
    drwxrwxrwx  2 root     root     4096 May 23  2012 MyDisc
    drwxrwxrwx  2 root     root     4096 May 23  2012 preload
    drwxr-xr-x  5 root     root     4096 May 23  2012 service
    drwxrwxrwx 21 root     root     4096 Apr 22 03:35 YYYYY
    drwxr-xr-x  2 root     root     4096 May 23  2012 .sys
    drwx------  2 www-data www-data 4096 May 23  2012 .webtmp
    

    やった V(- -

    あとは別のHDD等に復旧すればOKです。

Sambaで共有する ( おまけ )

無事データが読み込めたら、後は好きな方法で復旧して下さいと言いたいところですが、
一応 Samba で共有して Windows PC からアクセス可能にするための手順も載せておきます。

  1. samba をインストールします。
    # apt-get install samba
    
  2. sambaの設定ファイルを編集します。
    # vi /etc/samba/smb.conf
    

    以下を追記します。
    ( 以下も Read Only 設定にしています。念のため )

    [share]
      comment = Share
      path = /mnt/raid5
      browseable = yes
      read only = yes
      guest ok = yes
    
  3. 設定を確認し、
    # testparm
    
  4. 問題なければ、samba を (再) 起動します。
    # smbd restart
    

    これで Windows PC 等からアクセス可能になるので、エクスプローラ等からリカバリを行う事ができるでしょう。

まとめ

他NASでも復旧可能かも

無事、Linux の知識を駆使して、故障 NAS ( RAID5 ) 上の HDD からのデータ復旧を行う事に成功しました。

上記玄人志向扱いのNASに限らず、LinuxベースのOSを利用しているコンシューマ向けのNASであれば、同様の手順を踏むことでデータ復旧が行えるかもしれません。

但し、あくまで自己責任でどうぞ

今回の復旧に関しては、HDD自体は破損していなかったため、殆どトラブル事なく復旧可能だったと言えるでしょう。
HDD自体の故障が疑われる場合、下手にアクセスすると、データがとぶ可能性も高いと考えられます。

データが重要、且つ、上記作業内容を読んで意味が全く判らないといった場合、素直にデータ復旧を行ってくれる会社に依頼する方が確実だと思います。( 成功報酬 を謳っているところが安心できそうです )

RAIDはバックアップではない

今回のLG製NASに限らず、BUFFALO のNAS等でもそうですが、

NASを利用していてデータが飛んだという話は結構あるようです。
( で、データが復旧できずに、データ復旧会社で対応してもらったという話もたくさんある様子 )

NASでは RAID を利用した対障害性を謳っているわけですが、今回のようにHDD自体ではなく、筐体自体が逝ってしまった ( M/B が逝ってしまう場合等もありうる ) 場合、NAS だけでは復旧できません。
外付けHDD等の別メディアにも定期的にバックアップを取る等の対応をきちんととっておくべきでしょう。( 一応今回のトラブルでは、ちょっと古いデータが別媒体には残っていた )。
今ならば、クラウドを利用したバックアップを行う事で DR ( ディザスタリカバリ ) を行うといった事も可能です。
弊社でも AWS を利用したバックアップ等も行っているので、もしよかったらお問合せ下さい。

スキルがあるならNAS製品以外の選択肢も

今回のLG NASに関しては、OSが逝ってしまった場合、海外のもののようにリカバリディスクでの復旧が行えないというのはかなり致命的な気がしました。

個人的には、OpenMediaVault を利用したNASを構築しているのですが、こっちの方が安定性・耐障害性が高い気がしてます。( 今のところ娘が誤ってプラグを引っこ抜いた以外で予期せぬシステムダウンをした事はありません。この時も再起動で何事もなかったように復活 )
OpenMedaiVault 以外にも FreeNAS という有名なディストリビューションがあり、自分である程度のメンテナンスが可能ならば、こういったものを利用した方がいいように思います。

※海外で LG NAS に FreeNAS を載せようとしている方がいるみたいですが、VGA出力がないなど M/Bが特殊なのでなかなか難しいようです。
M/Bを載せ替えられるなら即効この手のディストリビューションに変更したい!

製品でという場合、QNAP あたりはいい選択肢かと思います。以前別の企業で利用した事がありますが、作りもしっかりしているしOSのメンテナンスもきちんとされています ( 値段はしますが )。
QPKG/ipkgを利用した機能拡張によって、NAS機能だけに止まらないサーバとして機能させる事ができるのも魅力的です ( 実際にOpenLDAPやOpenVPNのサーバとしても機能させた事があります )。