Home

技術系のメモと日々の雑感

不可解な device error (続き)

この前のエントリの続き。
問題が出たマシンで Knoppix 3.8 を起動して dmesg を見たら

ichxrom: ichxrom_init_one(): Unable to register resource 0xffb00000-0xffffffff - kernel bug?
CFI: Found no ichxrom @fff00000 device at location zero
JEDEC: Found no ichxrom @fff00000 device at location zero

という、前回と違ったエラーが出ていた。
Web で情報を探してみてもまったくと言っていいほどヒットしない。
ひょっとしたら別のエラーかもしれないけど、珍しいメッセージみたいなので書いておく。
で、試しに、載っているマザーボード GA-8I865GM-775 の BIOS をアップデートしてみようかと思って、メーカのサイトで新しいバージョンを探してみたけど見つからず。
もう完全にお手上げだ。

ThinkPad S30 に CentOS をインストール

家のセカンドマシン ThinkPad S30 には長らく Vine を入れて使っていたけど、仕事の環境に合わせるために CentOS に入れ直すことにした。
ただ、このマシンには DVD ドライブどころか CD-ROM ドライブも付いてないし、古いマシンなので USB でつないだドライブからもブートできない。
おまけに、近頃の CentOS にはインストール用フロッピィのイメージがないから、入れるにはちょっとした工夫が必要だ。
そこで、以前に書いた手順を流用にすることにした。
今回はすでに Vine が入っているので簡単だ。
まずは適当なディレクトリを作ってインストーラを起動するためのファイルを置く。
必要なのは FTP サイトなどにある images/pxeboot の下の vmlinuz と initrd.img だけ。

# mkdir /centos
# cd /centos
# wget http://ftp.riken.jp/Linux/centos/5/os/i386/images/pxeboot/vmlinuz
# wget http://ftp.riken.jp/Linux/centos/5/os/i386/images/pxeboot/initrd.img

ファイルを置いたら、GRUB の menu.lst にインストーラを起動するための設定を追加する。

title CentOS Install
      root (hd?,?)
      kernel /centos/vmlinuz
      initrd /centos/initrd.img

kernel 行の ro とか root=/dev/hda? は特に指定しなくても大丈夫だった。
これで、リブートして GRUB メニューの「CentOS Install」を選ぶとインストーラが起動するので、あとは普通にネットワークインストールすれば、おしまい。

不可解な device error

この前、会社のマシン1台で dmesg に次のようなエラーが出た。

ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata1.00: tag 0 cmd 0xb0 Emask 0x1 stat 0x51 err 0x4 (device error)
ata1: EH complete

実際は3行だけじゃなくて同じエラーがズラ〜っと大量に出ていたので、もっと迫力のある雰囲気だったんだけど。
HDD の故障だろうと思ってすぐに新品に交換して CentOS をインストールしてみたら問題なく入った。
一件落着。
・・・かと思ったら、起動後に dmesg を見ると同じエラーが。
あれ?
これって HDD の問題じゃないの?
見たところ CentOS は動いてるみたいだけど、さすがにこのまま使い続ける程の度胸はない。
もうちょっと調べてみよう。

Postfix のエイリアスを正規表現で設定

Postfix で複数のアドレス宛のメールを1つのアカウントで受け取らないといけなくなったので、正規表現でエイリアスを指定してみた。
main.cf の変更は次の行だけだ。

alias_maps = hash:/etc/aliases,regexp:/etc/postfix/aliases.reg

これで通常の /etc/aliases にマッチしなかったアドレスが /etc/postfix/aliases.reg に渡されるようになる。
aliases.reg には次のように設定してみた。

/^[a-z]{4}test@example¥.com$/ hoge

ところが、これでは hoge のメールボックスには入らず、unknown user になってしまった。
う〜ん。
正規表現の指定は間違ってないと思うんだけど。
念のため postmap で確認したら

# postmap -q aaaatest@example.com regexp:aliases.reg
hoge

問題ないって言ってるのになぁ。
で、しばらくもがいているうちに

/^[a-z]{4}test(@.*)?$/ hoge

という指定にすればいけることがわかった。
ドメイン部分を固定にしたらダメなの?
不思議な動きだ。
大文字小文字が関係ないのもちょっと不思議で、上の設定で AAAAtest@example.com 宛のメールも届いた。
あと、aliases と違って # で行をコメントアウトできないのも戸惑うところだね。
ちなみに aliases.reg の変更後は postfix reload などは必要なく、すぐに反映される。

fastboot とは似て非なるもの

近頃は fastboot が話題になりつつあるけど、そっちの情報を漁っているうちに reboot コマンドの -f オプションのことを知った。
fastboot とはまったく別物だけどね。
-f は halt とか poweroff でも共通で使えるオプションで、マニュアルによると処理を高速に実行するんだとか。
そうと聞けば試さずにはいられない。
早速、CentOS 5.3 で reboot -f してみたら・・・、思わずのけぞった。
これって必要な処理まですっ飛ばしてしまうオプションなのか〜!
コマンドを実行した瞬間に画面がブラックアウトしてびっくり。
もちろんファイルシステムのアンマウントもしてくれないので、ブート時にしっかり Ext3 のリカバリが走ってしまった。
なんと危険な・・・。
残念だがこのオプションは封印だ。
ちなみに、shutdown にも -f オプションがあるけど、用途が微妙に違っていて、/fastboot というファイルを作ってブート時の fsck をスキップするように指示するだけだ。
今はジャーナルがあるから、こっちもほとんど利用されないオプションだね。