2013-03-06
■[IT] 【絶対】PC の時計を 2099 年 12 月 31 日にしてはいけない【ダメ】
下手すると PC が起動しなくなります。
コンピュータには 2036 年問題というのがあって、簡単に言うと、2036 年のある時刻以降、内部時計が 1900 年に戻ってしまうというもの。まあこれぐらいならかわいらしい現象です。
僕は実際に 2099 年 12 月 31 日 23 時 59 分ちょうどに設定してみました。そこからの 1 分はまさにカタストロフィでした。
まず、常駐しているアプリが不正終了したりエラーダイアログを出したりして、1 分後の大惨事を知らない僕はこの状況を少し楽しんでいました。エラーダイアログのキャプチャなんかを撮ったりして。
Cygwin で date コマンドを打つと、196x 年ぐらいだったので、まさに 2036 年問題が発生していました。
出てきたエラーダイアログのひとつは .NET Framework のスタックトレースが出ていたので、なんだろうな、と眺めていた時に、年が明けて 2100 年になってしまったようです。
その瞬間、Windows は画面を表示したままフリーズしてしまいました。
復旧の手段がないので、電源を落として再起動。
なんと、PC が起動せず、ビープ音を発し続けます。BIOS すら出ない。
職場で PC がビープ音を鳴らし続け、周りの人が振り返るのは、結構こたえます。
とりあえずその日は定時を過ぎていたので、電源を落とし、何食わぬ顔で帰宅。
帰宅途中、いろいろ考察。
まず、PC がビープ音を出して起動しないということは、BIOS が正常ではないということ。ビープ音が出たことでいたたまれぬ思いをしたけど、逆に異常時にちゃんとビープ音が出るというのはよくできた BIOS で助かった。
Windows が 2100 年の時刻を BIOS に書き込んだのが原因なのか?でも OS から定期的に BIOS の時計をいじったりするかね?BIOS が勝手に時刻をインクリメントして、勝手に死んだというのが正しいような気がする。これを証明するには BIOS で時刻を 2099/12/31 23:50:00 にセットして、電源を切って 10 分放置すればよいが、そんなことはしたくない。
BIOS の時刻だけの問題なら、CMOS の初期化をすればいいはず。CMOS の初期化はバックアップ用のボタン電池を外せばいいだけだ。ということで、その日はそれ以上は考えないことにした。
翌日早めに出社してマザーボードを確認。幸いデスクトップだったので、マザーボードへのアクセスは比較的簡単に行えた。それでも、どでかいグラフィックカードが干渉するので、取り外さなければならなかったが。
ボタン電池を外し、放電 1 分。電池を装着し、仮組みをして電源 ON。
BIOS が出た!!
時刻は 2005 年になっていた。適当に直して OS を起動。事なきを得た。
これを読んで、「やってみたい」と思う人はいないとは思うけど、やるなら自己責任でお願いします。
- 12139 http://egone.org/entry/154573/
- 4476 http://jyouhouya3.net/
- 4207 http://b.hatena.ne.jp/
- 3395 http://egone.org/
- 2610 http://alfalfalfa.com/archives/6364386.html
- 1601 http://www.hatena.ne.jp/
- 1117 http://www6.ocn.ne.jp/~katoyuu/
- 1088 http://www.hiroburo.com/
- 985 http://twipple.jp/
- 927 http://b.hatena.ne.jp/hotentry