Leverage OSS:オープンソースツールを使ったハードウェア診断

あなたが相当な強運の持ち主でない限り、コンピュータの故障や破損を回避することはできない。ここでは、ハードウェアの問題を突き止めるためのオープンソースツールを幾つか紹介する。


SourceForge.JP Magazine

 すべての電子機器と同様、コンピュータにも故障や破損が起こる。カーネルのコアダンプや突然のクラッシュに見舞われたことがないのは、幸運な人だけだろう。よく起こるハードウェアの問題としては、RAMモジュールの不良、CPUの過熱または破損、ハードディスクのセクタまたはクラスタの障害が多い。本稿では、こうした問題を突き止めるためのオープンソースツールを幾つか紹介する。これで時間とお金を節約できるほか、悩みの種も減るはずだ。

 GNU/LinuxのライブCDディストリビューションは、ハードウェアの診断に便利だ。ハードウェアの診断に私が好んで用いるライブCDディストリビューションのGRMLには、これから説明するツールをはじめ、ホームユーザーと熟練システム管理者のどちらにも役立つプログラムが含まれている。なお、ここで説明するツールの一部またはすべてが入っているGRML以外のディストリビューションも存在する。

大きな不良のあるメモリの影響

 不良メモリは、システムの異常停止やときにはデータ破壊にもつながるクラッシュの原因になる。今度、プログラムをコンパイルしようとして失敗したときには、プログラムの作者にバグリポートを送る前にメモリのチェックを行うとよいだろう。Memtest86+は、RAMをテストするための優れたユーティリティだ。このツールはmemtest86をベースにしたものだが、AMD64をはじめとする最近のハードウェアのほとんどに対応している。一方、memtest86の方は、x86ベースのアーキテクチャにしか対応していない。Memtest86+はブートイメージなので、オペレーティングシステムに依存せずに動作する。

 Memtest86+を実行するには、GRMLのCDを使ってシステムをブートし、ブートプロンプトでmemtestと入力すればよい。使い方は簡単で、実行するとすぐに自動的にメモリのテストが始まる。cのキーを押すと表示される設定メニューでは、テスト方法の選択、ECCモードへの移行(システムがECCメモリを使用している場合)、テストの再開始、画面の更新が行える。ただし、大半のユーザーは、デフォルト設定のままで問題ないはずだ。

 一般にメモリの問題を検出するのは難しいので、確実を期すために、長期間Memtest86+を実行したままにしておき、最低10回は繰り返すとよい。また、Escキーを押せば、Memtest86+を終了してコンピュータを再起動させることができる。

CPUの過熱

 CPUの過熱もまた、システムクラッシュの原因になり得る。CPUの問題は、日常的な作業の途中ではなく、コードのコンパイルや動画のエンコードなど多量のCPUリソースを消費するアプリケーションの実行中に現れる傾向がある。そのため、cpuburnというパッケージを使ってCPUに高い負荷をかけることで、CPUに問題があるかどうかをチェックできる。このcpuburnは複数のプログラムを集めたもので、プロセッサに極限まで負荷をかけることを目的としている。

 cpuburnには、burn[CPU_TYPE]という名前を持つ、特定のCPUタイプに最適化された実行形式のバイナリが含まれている。なお、[CPU_TYPE]の部分にはP5、P6、K6、K7、MMX、BXの1つが入る。自分のシステムがどのCPUタイプに当たるかは、READMEファイル(GRMLの場合は/usr/share/doc/cpuburn/READMEにインストールされている)を読んで判断する。

 また、cpuburnは、Lm_sensorsACPI(ノートPCをテストする場合)のような温度センサープローブと組み合わせても使うことができ、CPU温度の情報をリアルタイムに参照できる。そのためには、仮想端末の1つでburn[CPU_TYPE]を実行し、もう1つでセンサーを実行すればよい。CPUのクロックアップや追加の冷却対策をしている場合は、このプログラムがきっと役に立つだろう。

ハードディスクの問題

 記憶装置メーカーは、より小型でより高速なハードディスクを絶えず生み出しているが、どんなハードディスクにも故障はつきものだ。大半のハードディスクは、Self-Monitoring, Analysis and Reporting Technology(略してSMART)という監視機能を備えている。SMARTは、HDDに関するあらゆる情報(型式、シリアル番号、動作温度など)を取得する以外に、ハードディスクの整合性をテストする優れた方法も提供している。SMARTを利用するには、smartmontoolsのようなプログラムを使う。

 smartmontoolsパッケージには、2つのプログラムが含まれている。SMARTのタスクを実行するためのコマンドライン・ユーティリティ smartctlと、SMARTシステムを監視し、ハードディスク故障の予防対策を実施するためのデーモンsmartdである。ただし、これらのプログラムを使う前に、それぞれのmanページを注意深く読んでおくこと。

 まずは、HDDからSMARTの情報をすべて読み取るために、smartctl -a /dev/HDD_DEVICE (HDD_DEVICEの部分は、使っているハードディスクのデバイスノード ― 例えば、プライマリーマスタのIDEディスクの場合は/dev/hda ― で置き換える)を実行する。また、SATAドライブを使っている場合は、このコマンドの最後に-d ataを追加する。SMARTが有効ではない、というメッセージが出てsmartctlの実行に失敗した場合は、今度はsmartctl -s on /dev/HDD_DEVICE を実行するとよい。HDDの整合性を検証するには、smartctl -t long /dev/HDD_DEVICEとして長期のSMARTテストを実行する。このテストはバッググラウンドで実行されるため、結果の確認は、smartctl -l selftest /dev/HDD_DEVICEの実行によって行う。

 smartdデーモンは、実行中のシステムに対して定期的にSMARTテストを実行できる。smartdの設定ファイルsmartd.conf(通常は/etcにインストールされる)には、SMARTテストを定期的に実行する方法の例が示されているが、smartdの動作の詳細についてはmanページを参照してもらいたい。

 何らかの理由でSMARTを実行できない――例えば、HDDがSMARTに対応していない――場合は、badblocksというプログラムを使ってハードディスクをチェックできる。badblocksは、ほとんどすべてのGNU/Linuxディストリビューションにおいてデフォルトでインストールされるe2fsprogsパッケージに含まれている。ハードディスク上の不良ブロックをすべて検出するための非破壊の読み書きテストを行う場合は、badblocks -n -v /dev/HDD_DEVICEを実行すればよい。

まとめ

 ときどき私は、中小企業向けにコンサルティングやシステム管理のサービスを行っているが、ほとんどの場合は、ここで紹介したツールとPhilips のドライバーがあれば用が足りる。問題のある部分を突き止め、ただその部品を交換することによって多くの時間を節約できる。システム全体をベンダーのサービス部門に送る必要はないのだ。既存システムにおける問題の有無を確認する場合にも、構築した新しいシステムの稼働前にチェックを行う場合にも、これらのツールは貴重であり、しかも無料で入手できる。

Copyright © 2010 OSDN Corporation, All Rights Reserved.




キャリアアップ



エンタープライズ・ピックアップ

news004.jpg 世界で勝つ 強い日本企業のつくり方:利用契約の検討――グローバルクラウドで失敗しないために(前編)
2010年以降、クラウドサービスの利用がさらに加速する。サービスを利用する企業はプロバイダーのデータセンターに預けた自社情報を保護するために、法的な要素を理解しておかなければならない。企業が注意を払うべき法的な検討事項を整理する。

news001.jpg IT投資の新方程式:「Twitter使ってます」――現役MS社員が“社員力”を語る(前編)
マイクロソフトが掲げるプロモーションメッセージ「社員にチカラを。ITで企業力を。(以下、BIEB)」からは、ITで社員の生産性を向上することが業績の拡大につながる、といったニュアンスを感じる。そこで気になるのが「じゃあ、マイクロソフトの社員自身はどうなのよ?」ということ。3人の現役MS社員により実態が明らかになる……?

news010.jpg 産業構造を変えるか:「住宅クラウド」の衝撃
住宅都市工学研究所が進める「住宅クラウド」は、クラウドが企業のIT領域にとどまらず、ビジネスのやり方自体を変える可能性を示している。

news010.jpg オルタナティブな生き方 栗原進さん:ネットでリアルを楽しくしたい
SE出身の企業広報マンでありながら、趣味は落語で憧れの人はインディ・ジョーンズとアナログ全開の栗原さんに、ブログを書く理由やネットからはじまるコミュニケーションについて伺った。

news001.jpg 最強最速アルゴリズマー養成講座:トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター
プログラミングにおける重要な概念である「探索」を最速でマスターするために、今回は少し応用となる探索手法などを紹介しながら、その実践力を育成します。問題をグラフとして表現し、効率よく探索する方法をぜひ日常に生かしてみましょう。