2008/02/14(木)Linux の badblocks コマンド

Linuxでディスクエラーをチェックするコマンドbadblocksについて。

fsck

man。ファイルシステムのエラーをチェックするプログラム。ディスクの物理エラーを調べてはくれない。

# fsck /dev/hda1

badblocks

デバイスそのもののエラーをチェックする。

# badblocks -s -v /dev/hda	読み出しテスト
# badblocks -s -v -n /dev/hda	非破壊読み書きテスト
# badblocks -s -v -w /dev/hda	破壊読み書きテスト

HDDの区画ではなくHDD全体を与えるのがミソ。破壊テストでは「0xaa, 0x55, 0xff, 0x00」を書き込み読み出してテストします。"-s -v"は進捗などを表示する指定。

一度にテストするサイズは -b(ブロックサイズ)と -c(ブロック数)で指定します。

# badblocks -s -v -b 1024 -c 256 /dev/hda	1024*256

マウントされているディスクでは読み出しテストしかできません。シングルユーザーモードでは読み書きテストができるみたいですが。

非破壊読み書き検査について

非破壊読み書き検査は次の手順で行われます。

  1. ディスクから現在のデータを読み出す
  2. ディスクにテストパターンを書き込む
  3. バッファをフラッシュする
  4. ディスクから読み込み書き込んだテストパターンと比較する
  5. 最初に読み込んだデータを書き戻す

Linuxカーネルで「O_DIRECT」というフラグが使えれば、2と4では O_DIRECT 用いてディスクと直接やりとりをします(ディスクキャッシュを抑制します)。これは比較的最近のカーネルでないとまともに使えないようです。

CTRL-Cなどで止めると大変なことになるので、プログラム側でCTRL-Cで落ちないように抑制されています。(上に書いたとおりですので、この検査をkillとかで止めると大変なことになります。)

非破壊テストは破壊テスト並のチェックができますが、単純な破壊テストよりもメモリと時間が食います。

2008/02/13(水)ぼやき

誰かオペアンプの帰還ループ内の出力端子に(電流制限目的で)単に直列に抵抗入れることが危険だって説明しないんですかね……*1。それでいいのか、自分よりよっぽど腕のある技術者のみなさん(ぉ

帰還ループの外に出力抵抗置かなきゃダメですよ、1Ωでいいから。*2

*1 : そもそも大抵のICは出力段にある内部FETの出力抵抗がネックになっているから、制限抵抗をつける必要性はあまりない。

*2 : これでも少なすぎるけどもないより100倍もマシ。この抵抗は普通○十Ω以上にしなさいって、高速オペアンプ等には書いてあります。

2008/02/08(金)キノコの話

ちょっとした用事があってexcite翻訳を使って中国語のサイトを眺めていました。噂に違わぬ不可思議ryお茶目な翻訳でしたが、さらに意訳すればなんとなく書いていることはわかります。

読み終えて素直に閉じればよかったのですが、何を血迷ったのかほんの出来心で、このブログを表示してみました。中→日翻訳で



……

………

chinese_nabe.png


表示されてるし!!!

全くでたらめかと思ったのですが、とても愉快に読める程度に表示されてしまいました。……てか、「薄いキノコを使います」って、「Apache proxyのあばらの年」って何ですか!!

リンクをたどって他の記事もみればわかりますが、excite翻訳がこんなに楽しいとは思いませんでした。一通り楽しんだ後、ふととあるブログを表示させてみました。






chinese_nabe2.png


きわめて全部キノコ!!!

……どんだけキノコ好きなんだよ ○| ̄|_