QNAP Firmware Recovery方法 ~ 起動イメージ完全消去からの復旧 ~


QNAPのNAS TS-653 Proのファームウェアは基板上に取り付けられたUSBディスクに入っています。そのUSBディスクにはQNAP NASのOS本体が入っています。

USBディスク上のQNAPのOSイメージを誤ってパーティションごと削除してしまった場合の復旧手順をまとめました。

本解説はTS-653 Pro(ファームウェアはTS-X53というファイル名)を例に書いていますが、intelやAMDを用いた他のQNAPのファームウェアリカバリにも利用できると思います。

QNAP NASが起動しないパターン

ブートローダがまだ残っているか否かで、壊れ方も大きく2パターンに分かれます。

  1. Linuxイメージを読みに行くが、「 Booting the kernel. 」の先に進めなくなるパターン(ファームウェアのアップグレード失敗や、間違って違う型番のファームウェアで強引にアップデートした場合等)
  2. QNAP OSが格納されたUSBディスクのパーティション、ブートローダを削除したことで、BIOSがブートローダを読めずに、「ブートできるメディアを入れてください」的なメッセージで止まるパターン

結局のところ、どちらのパターンでもNASが利用できなくなっていることには変わりないのですが、2番はOS格納先のパーティションすらも削除しているので、より深刻な状態となります。

ご参考:どうやってQNAP NASを壊したか

色々なサイトで紹介されている以下作業をして壊しました。

cp -f /tmp/dom.img /dev/sdb

実施中に「これ、パーティションごと壊れるんじゃないか?」と疑いながら実行したところ、案の定壊れました。多分、利用するイメージファイルか手順が間違っていたのでしょう。

QNAP NASの起動イメージが完全に壊れた状態からの復旧方法

復旧方法は以下の流れになります。

  1. 作業中にHDD上のユーザーデータを削除しないよう、HDDを全て抜く。
  2. 起動可能なUSBメモリの作成と、復旧用イメージの準備
  3. QNAP NAS をClonezillaのUSBメモリからブートする
  4. QNAP NASのUSBディスクに起動イメージを描き戻す
  5. 「F_」イメージ起動後、QNAP NASのファームウェアを最新版に入れ替える
  6. QNAP QfinderでNASを見つけて再セットアップ

1.作業中にHDD上のユーザーデータを削除しないよう、HDDを全て抜く。

作業中に誤ってHDDのデータを削除してしまうと、大事なユーザーデータを失ってしまう可能性があります。

なお、QNAP NASリカバリ後、HDDを再接続することで、故障する前のRAID状態で、該当ディスクを認識してくれます。(故障の仕方によるので、データの復旧を保証するものではありません)

2.起動可能なUSBメモリの作成と復旧用イメージの準備

なんでも良いので、Linuxブートするメディアを作成します。CDROMブートするLinuxでも、USBブートするLinuxでも構いません。

ddコマンドでイメージをQNAPの起動用USBメディアに上書きしてパーティションやアップデート用コマンドを復旧するので、イメージをコピーしやすいUSBメモリを推奨します。8GB以上のUSBメモリであることが必須条件です。

USBメモリを用意したらUSBブート可能なUSBメモリを作成するためのソフトであるRufusと、RufusでUSBメモリに焼き付けるイメージであるClonezillaをダウンロードします。

ダウンロードしたRufusを実行し、以下のようにオプション指定します。

ブートの種類でダウンロードしたclonezillaを指定します。

次に、QNAP NASのfullimageをダウンロードします。間違えやすいのですが、tsd以下のfullimageをダウンロードしてください。間違って、QNAPのサポートページから最新版イメージをダウンロードしても、パーティションイメージは含まれていません。

ダウンロードしたイメージを以下図のようにclonezillaをインストールしたUSBメモリのルートディレクトリにコピーします。

※「F_」で始まるイメージがフルイメージです。これをddで書き戻すことでパーティションも復活可能です。「F_」で始まらないイメージは、QNAP NAS専用の/etc/init.d/update.shシェルの引数で渡す為のイメージファイルです。ddで間違って指定しても、意味がない(というかNASが起動しなくなる)だけです。ちなみに、ファイルサイズも2倍以上違いますね。

3.QNAP NAS をClonezillaのUSBメモリからブートする

USBメモリの準備が完了したら、QNAP NASにキーボード、モニタを接続し、QNAP NASのUSBポートに挿して、QNAP NASの電源を入れます。

QNAP NASの起動画面でF11キー(もしくはDELキー)を押下し、ブートするメディアをClonezillaの入ったUSBメモリに指定してブートします。

4.QNAP NASのUSBディスクに起動イメージを描き戻す

Clonezillaからブートした後、以下の通り作業する。

fdiskコマンドで、QNAP NASのUSBディスクを探す。

今回作成したclonezillaが入っているUSBメモリ購入したブランド名が出るので、それとは別のディスクが対象となる。

sudo fdisk -l /dev/sda
sudo fdisk -l /dev/sdb

cdコマンドでF_TS-X53_20140916-1.2.8.imgがある場所へ移動。

場所がわからなければ、find / -name *.imgで場所を検索。

sudo dd if=F_TS-X53_20140916-1.2.8.img of=/dev/sda # fdiskの結果、sdaがQNAPの起動ディスクだった場合

sudo reboot

※シャットダウン処理が実行された後、USBメモリを抜いてください。

5.「F_」イメージ起動後、QNAP NASのファームウェアを最新版に入れ替える

「F_」イメージで起動した状態だと、背面のファンの回転が止まったり動いたりしたり、ネットワーク接続が出来ない状態だったりする。

しかし、ddコマンドで「F_」イメージを書き込んだため、QNAP NASのディスク構成が戻り、かつファームウェアアップデート用コマンドも利用可能な状態となっている。

先ほどclonezillaを入れたUSBメモリに、QNAP NASの最新版ファームウェアをコピーします。

QNAP NASを「F_」イメージで起動した状態で、QNAP NASのUSBポートにUSBメモリを挿し、該当ファームウェアを対象として以下コマンドを実行後、QNAP NASを再起動します。

# cdコマンドでTS-X53_20191206-4.4.1.1146.imgがある場所へ移動。

/etc/init.d/update.sh TS-X53_20191206-4.4.1.1146.img

reboot

※シャットダウン処理が実行された後、USBメモリを抜いてください。

6.QNAP QfinderでNASを見つけて再セットアップ

ここから先は簡単です。QNAP NAS購入後と同じ状態でQfinderでQNAP NASを見つけます。。

該当NASを選択して、管理画面を開き、セットアップを行ってください。

一度、QNAP NASにログイン出来たら、一度QNAP NASをシャットダウンしてください。QNAP NASが完全にシャットダウンされた後、作業中に誤って削除しないように外しておいたHDDを全て元に戻します。

後は、復旧のため、NASを再設定して完了です。

最後に

QNAP NASは非常に安定稼働しますが、ファームウェアを壊してしまった場合の復旧はかなり大変です。ファームウェアアップデート中の停電等で万が一、NASを壊してしまった場合の一助になればと思い、本記事を書きました。

成功報告などがあれば、コメントいただけると幸甚です。

参考リンク

タグ . ブックマークする パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください