プロローグ
自宅で使用しているNASはMicroserver Gen8にTrueNAS Scaleをインストールして使用しています。
MicroserverにはマザーボードにMicroSDカードスロットとUSBスロットがあり、今まではUSBメモリをブート用のプールとしてTrueNASのOSをインストールして使用していました。
過去の経緯としてTrueNAS Coreを使用していましたが、途中でSCALEにアップグレード(マイグレーション?)して使用していました。
今回ブート用のUSBメモリが突然読み取り専用となり、再起動後にOSが起動しなくなりました。
困ったことに前回設定バックアップしたのは2ヶ月以上前・・・色々と手こずったので備忘録として記事にします。
内容
USB SSDにTrueNAS Scaleがインストールできない
結論、TrueNAS CoreをインストールしてからUpdateでScaleにマイグレーション、最後にバックアップしていたConfigを戻して復旧しました。
今回新たにUSBメモリではなく、2.5インチSSDをUSB変換させ内部USB端子に接続する構成としました。
公式HPからTrueNAS ScaleのisoイメージをダウンロードしRufusで適当なUSBメモリに書き込み、インストール用USBメモリとしました。
インストール用USBメモリからブートしてUSB SSDにインストールしようとしましたが、何度やっても途中でエラーが発生し上手く完了できません。
試しに別のマシンでインストール完了させたものを使用してブートしてもPOSTでブートメディアが無いと怒られ起動できません。
データ用のPOOLとして使っている3.5インチHDDも4本全て抜いた状態でも同様で、完全に詰みました。
実はTrueNAS Scaleをクリーンインストールするのは初だったので、実績のあるTrueNAS CoreをUSB SSDにクリーンインストールしたところ正常にOS起動。
その後ネットワーク(IP、ゲートウェイ、DNS)の基本設定を行いインターネットに接続できる状態に。
そこからUpdateでScaleを指定してアップデートをかけたところ、問題なくScaleでブートできるようになりました。
最後に2ヶ月以上前のバックアップから設定をリストアし再起動、その後一旦OSシャットダウン。
抜いていたデータ用の3.5インチHDDを4本挿入しOS起動させたところ、データ用のプールが認識されていました。
この2ヶ月で色々変更していた部分がいくつかあり、NICの設定や細々したものは覚えている範囲で再設定。しかしコンテナの設定は細かく覚えておらず。。事項に続きます。
インストールして稼働していたコンテナ(アプリ)が全滅
結論、アプリケーション設定の「Choose a pool for Apps」で従来設定したプールを指定したことでコンテナが全て復旧しました。
最新の設定ファイルをExportした際にはアプリケーションで使用するコンテナはゼロの状態でした。
ただ基本的に各コンテナはデータの永続化のためデータプールにデータを保存していたため、コンテナを起動する際にそれらの場所を指定すれば起動するだろうと、設定をし直すことにしました。
まず最初にコンテナで使用するプールを指定するため「Choose a pool for Apps」でデータプールを指定。
すると死活監視でコンテナからの応答が戻ってきていることに気づきアプリ一覧を見てみると、従来稼働していたコンテナが全て表示され起動しているものとデプロイ中のものが。
デプロイに時間がかかるコンテナも無事起動し、元通りになりました。
設定の自動バックアップ
今後のためにTrueNASの設定を自動バックアップするようにしました。
シェルスクリプトは以下を使用、基本的な使い方も書いてあるので詳細は割愛。
シェルスクリプトを手動で実行し正常に動作することを確認。
TrueNASの高度な設定からCron Jobsにbashで毎時実行させるように。
次に自動バックアップされたConfigを保存しているディレクトリをCloudSyncでDropboxに保存されるように設定、これでブートプールが破損し起動できない状態になってもバックアップはDropboxに保存されているので自由に取り出しが出来るようになりました。
Appendix.
その他に設定が必要だったのが以下の通り。
設定項目 | 内容 |
ユーザのShell設定 | SSHで常用するユーザのデフォルトシェルがnologinになっていたので、bashに変更 |
エピローグ
TrueNAS Scaleをインストールできない事、インストールしたものを接続して起動させてもブート出来ないのが謎。
とりあえずCore->Scaleでブートできることがわかって勉強になりました。
記事は以上