中野智文

中野智文(VOYAGE GROUP)のコンピュータなどのメモ

LinuxでBIOSの自動起動を使うための設定と注意点のまとめ

2013-02-14 19:04:30 | Mac
節電のために、システムのcronなどでハイバネーション(ハードディスクへのサスペンド)、サーバなどを自動起動などの需要は多いと思われるが、その設定方法と注意点をまとめた。

ハードウェアクロックの時刻合わせ

BIOSの時計(以後ハードウェアクロック)はローカルタイムを使う必要がある。注意点として、OSの時計であるシステムクロックはハードウェアクロックは異なっているので、起動中にもかかわらずシステムクロックを設定したからといってハードウェアクロックに直接反映されるわけではない。またハードウェアクロックはデフォルトではUTC(協定世界時刻)として使うように設定されているため、BIOSので自動起動時刻を日本時間で合わせても、UTC時刻で起動することになってしまう。

ハードウェアクロックをシステムクロックにてローカルタイムとして合わせるには次のコマンドを実行する。
hwclock --systohc --localtime
ここで--localtimeはローカルタイムとして時刻を合わせるの意味だが、 マニュアルには一度実行すればその後はオプションを省略してもローカルタイムとして時刻合わせされると書いてある。ただ残念なことに、システムのどこかで再びUTCで時刻合わせを行なってしまうと、今度はその設定にしたがってしまうので、毎度このオプションは指定したほうがよい。システムでは少なくとも下記のファイルを次のように
/etc/sysconfig/clock:
ZONE="Asia/Tokyo"
UTC=false
としておく。

BIOSの自動起動

次にBIOSの自動起動の設定を行う。BIOSの自動起動の設定は、OSから行うことはできない。 また使っているPCによりBIOSの設定方法が異なる。よって自身で検索をしてみつけて設定を行う。 次のページには実例がある。 コンピュータの電源を設定時刻に自動的にオンにする

cronによる自動終了

自動終了はcronにてsleepを使って行う。具体的な設定は下記の通り。
59 23 * * *     /sbin/hwclock --systohc --localtime; echo 4 > /proc/acpi/sleep
29 9 * * 0,6    echo 4 > /proc/acpi/sleep
上記の場合、夜の11:59分にハードウエアクロックを合わせて、その後終了(sleep)している。 二行目は土日の9時29分に自動終了している。これは利用しない土日にも自動起動してしまうため、それを終了させるためである。

システムクロックの時刻合わせ

上記はシステムクロックが正確である前提であるが、システムクロックの時刻合わせについても触れる。 ntpdateではなく、ntpdを使うようにする。 ntpdateで一気にシステムクロックを合わせると、他のプロセスから見た時間が未来から過去に移動してしまったりする。そうなると時刻を見て動作するプログラムでは想定外の動作となり、問題が発生するためである。 常時起動する方法と、cronで定期的に起動させ時刻完了後終了する方法がある。下記はcronで定期的に行う方法。
30 * * * *    ntpd -q
参考: ntpdateなんて使ってるんじゃあるまいね

結論

結論はBIOSで起動、cronで終了。常時ntpdまたは定期的にntpd -q を使い時間を調整、そして休止状態に入る前にハードウエア時計を調整。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。