NAS4Freeをシャットダウンしても再起動してしまう

はじめに宣言します。 本件は未解決のため、題記の現象が確実に解決できる方法を記載しているわけではありません。 解決できるかもしれない方法をいくつか紹介だけする形となっています。 予めご了承願います。

私は、自宅でNASを運用しています。 市販のNASキットを使っていたこともありますが、現在は自作PC上にフリーのNAS用OS「NAS4Free」を載せて使用しています。

2011年にマシンを組み、最初はFreeNASで、1,2年経ったあとNAS4Freeに乗り換えました。 現在使っているバージョンは、"9.1.0.1 - Sandstorm"です。 2013年2月のビルド版ということで、結構年季が入っちゃってますね。

HDDを載せ替えたり、追加したりはしていますが、基本構成は変えずに下記の通りです。

  • CPU:intel Core i3 540
  • M/B:GIGABYTE P55A-UD3R
  • ケース:Antec NINEHUNDRED
  • メモリ:Patriot DDR3-1333 4GB2枚組 x2
  • HDDマウントキット: iStarUSA リムーバブルラック 5Bayモデル x3

これに、3TBのHDDを13台載せraidz2で使用しています。

常時稼働をやめたいが…

マシンを組んでから基本的には常時稼働させて、外にいるときもスマホからファイルを取り出したりすることができて便利に使っていました。 しかし、月々のデータ量上限などの制約もあるため常にNAS上のファイルを使うわけにも行かず、外から活用できた頻度は正直あまり高くありません。 独身時代は電気代をさほど気にしていなかったのですが、結婚して以降は自分だけの家計というわけではないため、無駄は削っていきたいなと思い、常時稼働をやめることにしました。

ここで1つ問題がありまして、私の自作NASマザボのせいかOSのせいかそれぞれの設定のせいか、シャットダウン指示をしても勝手に再起動してしまうのです。 節電のためにシャットダウンをしようとしても再起動されては意味がありません…。 メンテナンスや引っ越しなどの際は、一旦電断している間に電源の元スイッチをOFFにすることで再起動を防止していました。 これまでは基本常時稼働だったのでそれでも問題なかったのですが、日常的に電源OFFをするとなると、これは中々不便です。 電源の元スイッチはPCの裏側にあるので、毎回毎回手を伸ばして手探りでOFFにするのは面倒ですから…。

解決策を調査

NAS4Freeや、FreeNAS, FreeBSD といったOS(ディストリビューション)名とshutdown, 再起動, 電源 などのキーワードで調べて見たところいくつか解決策が出てきました。

shutdown -p now

以下のサイトが参考になりました。

FreeNAS を自動的にシャットダウンする (きりしま屋) FreeBSD 6.1で電源を切る方法

FreeBSD系の場合、Linuxでよく使うshutdown -h nowではなく、shutdown -p nowを指定することで、電源断まで自動的にやってくれるとのこと。 -hの場合は、「何かキーを押すと再起動」という状態で止まり、電源は切れない、とのことですね。 私の環境の場合、なにかキーを押さずとも再起動してしまうので、少し違うような気もしますが試す価値は高そうですね。

結果は…失敗。

現象は何も変化なく、再起動してきました。

/etc/rc.confの設定

shutdown -pの動作には事前条件があるんじゃないかと追加で調べてみました。

該当情報を載せてくれてるサイトが見つかりました。 shutdownで電源まで落ちるようにしちゃおう! (2019/07/15 Internet Archiveに切り替え)

条件は2つ。

  1. BIOSAPMを有効に設定していること
  2. /etc/rc.conf にapm_enable="YES"を追記すること

1の条件について確認してみましたが、使用しているマザーボードAPMではなく後続のACPIに対応しており、また有効になっていました。 そのため、厳密に1の条件を満たしているわけではありませんが、ひとまずOKとしておきます。

2の条件について確認してみたところ、apm_enableについての記載がないため、これが原因だったか!!と喜び勇んで追記し、shutdown -p nowを実行しました。

結果は…失敗。

現象は何も変化なく、再起動してきました。

Boot NAS4Free with ACPI enabled

再起動している画面をよく見ていると、ブートメニューの中に、ACPIの文字が見えました。 しっかり確認してみると、以下のような選択肢でした。

Boot NAS4Free in Normal Mode
Boot NAS4Free with ACPI enabled
Boot NAS4Free in Safe Mode
Boot NAS4Free with verbose logging
Escape to loader prompt
Reboot system

デフォルトでは1番が選択されるわけですが、2番に"ACPIを有効にしてNAS4Freeをブート"というのがあるじゃないですか! これが原因だ!と2番で起動、そしてshutdown -p nowを実行しました。

結果は…失敗。

現象は何も変化なく、再起動してきました。

デフォルトのACPI有効/無効を変える方法

これが原因だった場合は、デフォルトをACPI dislabledからenabledに変える必要があるようで、その手順は以下のサイトに載っていました。

boot FreeBSD with ACPI enabled | Debuggin' Everyday

んで、/boot/loader.conf に acpi_load=”YES” 、/boot/device.hints に hint.acpi.0.disabled=”0″ と書いてやったら、なんかうまくいった。

/boot/kernel.conf の設定

再びACPIからAPMに観点が戻りますが、続いて以下のサイトを発見。

[FreeBSD]APMを有効にして自動電源OFF | ごった煮 - tips about programming and building a server

shutdown -pで電源をOFFするためには、上述の /etc/rc.conf だけでなく、/boot/kernel.confへの設定もいるんだとか。

/boot/kernel.conf がなかったので新規作成し、中にenable apmを記述。 そしてshutdown -p nowを実行しました。

結果は…失敗。

現象は何も変化なく、再起動してきました。

ファイル修正が反映されていない

いくつかの方法を試しても無駄に終わり途方にくれていたが、/etc/rc.confの中身を改めてみていると、先程追加したapm_enable="YES"がないことに気が付きました。

再起動でファイルが巻き戻って、ACPIやAPMの設定がうまく行っていないのでは?という観点で調べ直し。

それらしい情報が出てきました。 FreeNASのファイルが戻ってしまう件が判った | NightWalkerの日記 | スラド

USBメモリNAS4Freeをインストールする際のインストール方法が、ファイル書き換えに対応していない形だった可能性が高いです。 インストールしたのが5年くらい前で、実際の手順を残していないせいで確実なことは言えませんが…。

今回はここまで

現在一番有効な可能性のある方法は、NAS4Freeの再インストールであるということになりました。 そもそもは、手軽に電源をOFFしたいというだけの目的なので、そこまで手間をかけるかどうか、というのも悩みどころです。 元々自作NAS運用もそろそろ潮時かなぁ、と他の環境を検討しているところでもありますし…。

また、再インストールによってファイル修正が反映されるようにできたとして、shutdown -pが効くようになるか、上記のいずれかの対策が的中するか、といったところも不確実です。 なので、いろんなやりたいこととの優先度を勘案して再インストールを試すかどうか決めたいと思います。 (いつのまにかNAS4FreeからXigmaNASに名前が変わっているようなので、再インストールするならこれになるのかな)

手軽に電源OFFできるようにすること自体については、対案(※)があるのでひとまずそれを試します。 それはまたご紹介します。

※ この対策については以下の記事をどうぞ。

https://yuuchika.com/nas4free_shutdown_tap/