Amazon EC2で自作AMI作ったときにカーネルがエラー吐きまくるのを何とかする。
多分既知のことが多いんじゃないかと思うけど、ちょっとこけたりしたことがあったんでメモっておく。id:sotarokにとにかく書けばって言われたから書く。
なんか、自作AMIを作ると、便利ではありつつも、/var/log/messagesに普段は見ないエラーがいろいろ出まくる。
これは自作イメージがちゃんとxen用になっていないことが原因で、別に支障がないことも多いんだけど、AMIまるごとバックアップする時なんかには問題が起きたりする。
それに、個人的にはこういうエラーは邪魔だし気になるのでなんとか解決してみた。
自作AMIのバックアップ次にエラーで止まる問題の解消(->カーネルモジュールの置換え)
まず、最低限これはやっとかないと、自作AMIに手を加えたあと、S3に保存する時にこける。
具体的には、自作AMIのイメージ作成・保存時に
mount: could not find any loop device. maybe this kernel does not know
about the loop device? (if so, recompile or `modprobe loop'.)
とか言われたりする場合。*1
で、具体的にやることは以下の通り。
$ wget http://s3.amazonaws.com/ec2-downloads/modules-2.6.16-ec2.tgz $ cd / $ tar xvzf ~/modules-2.6.16-ec2.tgz $ depmod -a $ reboot
これは、カーネルモジュールをXen Domain U用のものに置き換えてるだけの話。
自作AMIはカーネルがピュアなやつなので、Xen用のパッチは当たってない。おかげで上述のエラーが出たり、modprobeとかFATAL吐いてるログが残ったりするんだけど、この置換えをしておくことで問題が解決できる。
ま、とりあえずこれで、最大の問題といえるEC2のバックアップAMI作成時にこけるエラーは解消できるようになる。
ref:http://netlog.jpn.org/r271-635/2009/10/amazon_ec2_loop_not_found_xen.html
ref:http://developer.amazonwebservices.com/connect/message.jspa?messageID=44021
/sbin/mingettyがめっちゃエラー吐く問題(->tty2〜6がないのに対応)
上述のエラーとは別に、さして問題ではないんだけど/var/log/messagesに大量にmingettyがエラーを吐いてる場合がある。
具体的には、
/sbin/mingetty[4068]: tty2: No such file or directory /sbin/mingetty[4069]: tty3: No such file or directory /sbin/mingetty[4070]: tty4: No such file or directory /sbin/mingetty[4071]: tty5: No such file or directory /sbin/mingetty[4072]: tty6: No such file or directory
こんなのがいっぱい出る。
これは、エラーの通り単にtty2〜6がないだけ。*2
なので、/etc/inittabでこれらをコメントアウトしてあげればいい。Amazonだとsshでしかログインしないし、特に問題ないし。
1:2345:respawn:/sbin/mingetty tty1 #2:2345:respawn:/sbin/mingetty tty2 #3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6
これで、kill -HUP 1とかしてループしてるトライを止めてあげれば、このエラーも止まる。
ref:http://collectivemeta.com/aode7
ref:http://developer.amazonwebservices.com/connect/thread.jspa?threadID=16434
という細かいネタ。