QNAPが壊れたのでディスクからデータを抜き出した

壊れたのはディスクではなくLANインターフェース。5年間も稼働させていたので障害が発生するのは仕方ないのだが、HDDの故障は想定していてもLANインターフェースは想定外だった。

QNAPに載せていたHDDはHGST社製で、5年連続で稼働しても不具合なし。評判通りの強靭さだ。HGSTのHDDといえばプロのインフラエンジニアの間でも定評のある信頼性の高い製品なのだが、WD社に買収され今はもう購入することができない。データセンター向けの最上位モデルであるWD Ultrastar DCは、旧HGSTの施設と技術を引き継いで製造されているという噂。

さて、LANインターフェースが故障するとデータが取り出せないのはもちろん、管理画面へのアクセスもできない。こうなってはQNAPもただの箱。仕方ないのでNASからディスクだけを取り出してMacで抜き出し、別のディスクにコピーすることにした。もちろん、こうなる前に外部のディスクにバックアップを取っておくべきなのだが、今回はバックアップ作成中にLANインターフェースが逝ってしまったのでどうにもならなかった・・・

QNAPはディスクの抜き挿しは容易なのだが、いくつか問題がある

  • RAIDを組んでいた
    • RAID 1なので片方のディスクからでもデータを取り出せるはず
  • インターフェースがSATA
    • MacBook ProはUSBしかない
    • SATA-USB3変換コネクタを使えば接続できる?
    • ヨドバシで2000円程度で購入できる
  • フォーマットがext4
    • Macext4を読み書きできない
    • ext4fuseを使うと読めるらしい

問題はあるがクリアできそうだ。

手順

FUSE for macOSのインストール

ext4fuseを使うために、まずFUSE for macOSのサイトからインストーラをダウンロードしてインストールする。

インストールするコンポーネントCore Component のみでOK。MacFUSE compatibility layerは不要。Preference Paneはあってもなくても良い(システム機能拡張にfuse項目が追加されるだけ)。

ext4fuseのインストール

ext4fuseはhomebrewでインストールできる。

brew install ext4fuse

ディスクを接続

SATA-USB3変換コネクタで接続すると以下の警告が出る。

f:id:paulownia:20200113212855j:plain

"無視"をクリック、当然だが初期化してはいけない

バイスファイルの確認

接続したディスクのデバイスファイルを調べる。

diskutil list

f:id:paulownia:20200113212434j:plain

Microsoft Basic Dataとなっているが、これがext4のドライブである。普通はLinuxと出るらしい。今回は /dev/disk4s3 が目的のデバイスファイルらしい。

マウントする

適当な空ディレクトリを作成して、そこにディスクをマウントする

mkdir ~/ext4disk
sudo ext4fuse /dev/disk4s3 ~/ext4disk

これでファインダーでコピーできるはず、なのだが・・・

問題点

おそらくext4fuseの制限と思われる

コピーができないファイルがある

"名前が長すぎるか、コピー先ボリュームでは無効な文字が名前に含まれています" というエラーが出てコピーできない。cpコマンドならばコピーできた。

日付情報が消えてしまう

作成日が引き継がれず、cpした時間になってしまう

macファイルシステム特有のメタ情報が消えてしまう

これが一番困る。単純なデータであれば問題ないのだが・・・