ようこそゲストさん

色々日記(ざ・めも)

メッセージ欄

分類 【PC(Linux)】 で検索

一覧で表示する

2015/06/28(日) jessieで起動しない

2015/06/28 19:14 PC(Linux)
jessieにアップグレードした際に起動周りで色々問題が起きたのでメモ。

一部解決、かなり未解決。

段階的に修正していくしかなさそう。

grub起動時、コンソールにFile not foundが3回出力される

→解決
#grub-install /dev/sda
#update-grub 
で改善した(他に色々作業していたので、別の処置で改善した可能性も)

systemdで起動しない

→解決

jessieではgrubにsystemdとsysvinitが両方登録される。
wheezy時代には起動していたカーネルのsystemd版は起動しない。sysvinit版だと起動する。

jessieからinit周りがsystemdに切り替わるため、init.dでカスタマイズしたサービスが動かないとは聞いていたが起動しないとは想定外。

原因はfstabにあった。
どうやら、systemdではfstabの記述を厳密に解釈するらしい。usb外付けで繋いでいたドライブ(今は繋いでいない)のoptionsが
defaults
になっていた。
user,noauto
に修正して改善。

3.16.0-4-686-paeで起動しない

未解決解決

wheezyで入っていた3.2.0-4-686-paeは起動するのだが、3.16.0-4-686-paeで起動しない。
gave up waiting for root device 

alert /dev/disk/by-uuid/~~ does not exist
が出る。
busyboxのシェルであれこれ試してみると、
・/dev/disk/by-uuid/が無い
・そもそも/dev/sda1が無い
・cat /proc/modules は空

全くドライバが読めていないっぽい。

起動するカーネル(3.2.0-4-686-pae)のinitrdは12MB
起動しないカーネル(3.16.0-4-686-pae)のinitrdは4MB

lsinitramfsでのぞくと、3.16の方は/lib/modules/3.16.0-4-686-pae/kernel配下がまるごと無い

update-initramfs -uで症状変わらず
起動オプションrootdelay=90等で症状変わらず
depmod -a 3.16.0-4-686-paeでも症状変わらず
ここで今回の調査は断念。

initramfs-toolsのバグだか考慮漏れだかに当たっているような気がしている。

自分でカーネル作り直せば確実なのは分かっているが、そもそも管理コストを下げるためにカーネルもdebian標準にしたいというのが方針なので、しばらく標準でのinitrd正常化方策を探すことにする。といってもかなり色々試してはいるので、調べ方変えるか時間に解決してもらうかじゃないとちょっと無理そう。
[2015/07/28 追記]
時間が取れたので、ひたすら人力で調べてみた。

まずupdate-initramfs内で呼び出しているmkinitramfsを直に叩いてみるが、やはりmodulesが抜ける。
#mkinitramfs -o /boot/initrd.img-3.16.0-4-686-pae.new 3.16.0-4-686-pae
mkinitramfsをたどっていくと、/usr/share/initramfs-tools/hook-functions内のmanual_add_modulesでmodprobeの結果を元にループを回している箇所がある。ここが3.2では動いているのに3.16では動いていない。はて。

スクリプト内で使用しているコマンドをログインシェルで叩いてみるが、いずれのバージョンも問題がない。
#modprobe --all --set-version=3.2.0-4-686-pae --ignore-install --quiet --show-depends eql
insmod /lib/modules/3.2.0-4-686-pae/kernel/drivers/net/eql.ko

#modprobe --all --set-version=3.16.0-4-686-pae --ignore-install --quiet --show-depends eql
insmod /lib/modules/3.16.0-4-686-pae/kernel/drivers/net/eql.ko
とすると、mkinitfamfs内の環境変数が原因か。

で、調べたところ、
#export PATH=/usr/bin:/sbin:/bin
で動きが変わることが分かった。げーっ。実行ファイルゴースト問題だー。

結局のところ、modprobeもdepmodも/sbinと/usr/local/sbinの両方にありログインシェルでは/usr/local/sbinを見ていた。
/usr/local/sbinの方のタイムスタンプは2004年、うぉう。

あとは推測だが、aptでカーネルイメージを入れた際に/usr/local/sbinの古いdepmodを呼んでしまうようだ。古いdepmodは、/lib/modules/<< version >>/modules.dep.binを生成しない。同じく/usr/local/sbinの古いmodprobeはこれで動くのだが、新しい/sbinのmodprobeは
#/sbin/modprobe --all --set-version=3.16.0-4-686-pae --ignore-install --show-depends eql

modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/3.16.0-4-686-pae/modules.dep.bin'
となってしまう(quiet無しだとエラーが出る。ありだと何も出ない)。

3.2は何かのタイミングで新しいmodprobeを発火するタイミングがあった模様で、modules.dep.binがいた。そんな状態で良く動いてたな。

ということで、depmodもmodprobeも新しい方を使ってやればよい。
#/sbin/depmod -v 3.16.0-4-686-pae
これで
/lib/modules/3.16.0-4-686-pae/modules.dep.bin
ができた。

あとはこれでinitrdを作ってやる。
#update-initramfs -u -k 3.16.0-4-686-pae
丸々と太った健康そうな16MBのinitrdができた。

うーん、やっぱりwoodyのアップグレード&アップグレードじゃ限界あるなあ。

grub上でメニューいじったときにunaligned pointer 0x8が出る

→未解決

grub起動時にオプションをeで変えると、
unaligned pointer 0x8
が出る。

GRUBのバグかなあ。

デフォルト起動カーネル切り替え

ということで、しばらくwheezy時代のsysvinitカーネルを使用する。systemdにするためには洗い出しが必要なので3.16が動くようになってからにしたい。

/etc/default/grub
GRUB_DEFAULT="Debian GNU/Linux, with Linux 3.2.0-4-686-pae (sysvinit)"
最初上記形式で書いたが、update-grubしたらwarningが出たので、
/etc/default/grub
GRUB_DEFAULT="gnulinux-advanced-~~>gnulinux-3.2.0-4-686-pae-init-sysvinit-~~"
に変更して、update-grub。

これでとりあえず再起動しても特に操作せずに起動するようになった。
うーん、サーバつぶした方がいいんだろうか。
こういうドハマリは維持意欲を削ぐ。

このサーバはwoodyからの10年選手なので64bit化も含め再インストール時期ではあるのだが……

2014/10/19(日) サーバ交換

2014/10/19 25:26 PC(Linux)
サーバが故障したので交換したという話。

故障したのはpanasonic CF-T8EC6AAS。

このシリーズはどうもファンが弱いらしい。中古で買ったものなので耐久性がどうとか言いづらいのだが、うちのは使用しはじめてから1年程度でファンが強烈な異音を発するようになってしまった。ネットにもファン故障の報告多数。

その前に使っていたnx6110は6年稼働していたので、ちょっとがっかり。

nx6110の故障箇所についてはメモって無くておぼろげなのだが、ファンか熱暴走を疑う症状だったように思う。

さて、とりあえず入れ替えなければいけないので秋葉原でノートPCを調達してきた。
今回はPC-VY14A/C-7のOS無しが比較的安く手に入ったのでそれで。

本当はHP 2510pか2530pが欲しかったのだが、予算オーバー気味なのと選べるほど弾がなかったので断念。この2機種1.8インチ HDDのモデルもあって、商品名だけではなかなか判別が付かない。HDDはある程度入れ替えできた方がいいので2.5インチモデルが欲しい。現物見ないで買うと失敗しそうだったので秋葉原に出向いてみたのだが残念だ。

入れ替えは、以下のような手順で実施。
[1]
CF-T8のHDDを取り外し、VY14AにUSBで接続してMiniTool Partition Wizardでディスクコピー。

このコピー、120GBにもかかわらず10時間程度かかった。USB接続が遅かったのか、MiniTool側の遅さなのか判断付かないが、VY14Aも開腹してHDDを取り出した上でドライブコピーした方が良かったかもしれない。

[2]
CF-T8を起動してみたら何となく想像してたけどMBR破損("j"とだけ表示されて止まる)。debianのインストールディスクをrescue modeで起動して/dev/sbaにgrubをインストール。

[3]
これで完了かと思ったらネットワークがつながらない。ifconfigしてもeth0が無い。
dmesg見てると、こんなのがある。
udev: renamed network interface eth0 to eth1
これが原因か。

NICのデバイス名(eth0とか)が変わったら? - Practice of Programming
ネットワ−クの基本設定などを確認(Linux版)

を参考に、/etc/udev/rules.d/70-persistent-net.rulesの旧NIC MACアドレスとehe0の紐付けをコメントアウトして再起動したところeth0が復帰した。

修正前の場合でもeth1は居て欲しい気がするのだが、interface周りを調べる時間がない。今回はこれで終わりにする。

作業中に気づいたが、このNICはBroadcom製だった。intelが良かったのだが、致し方なし。

VY14Aについては今のところ大きな不満はないが、HDD(Fujitsu MHZ2120BH)が結構鳴くので安定稼働してきたら結局入れ替えすることになるかも…

2014/06/30(月) debian X周りのメモ

2014/06/30 16:36 PC(Linux)
久々にX立ち上げようとしたら動かなくなっていた。
ちょっと作業したのでそのメモ。

[ディスプレイデバイスずれ]
PC替えたときに、ディスプレイデバイスの指定を修正していなかった。
# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)

xorg.confを編集。
> diff /etc/X11/xorg.conf.20140630 /etc/X11/xorg.conf
73c73
<       BusID           "PCI:0:1:0"
 ---
>       BusID           "PCI:0:2:0"
[GNOME周り]
wheezyでデフォルトX環境が変わったせいか、startx後に"Failed to load session "gnome""が出る。

とりあえず、gnome-session-fallbackを入れればいいと言うので、

# aptitude install gnome-session-fallback

で、とりあえず起動するようにはなった。

その他、sshのX11 forward関係のオプションいじって、Xming+putty経由でX画面出るようにした。

いつも通り、sudo関係は適宜読み換えで。

2013/07/17(水) apt周りあれこれ(続き)

2013/07/17 11:50 PC(Linux)
aptitude upgradeは通るようになったけど、警告がバンバン出る。どうやらapt周りの警告基準が変わった模様。
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。24687 行目付近、パッケージ 'am-utils':
 `amd' を参照する `Replaces' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。24690 行目付近、パッケージ 'am-utils':
 `amd' を参照する `Conflicts' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。58611 行目付近、パッケージ 'root-tail':
 `rt' を参照する `Conflicts' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。73297 行目付近、パッケージ 'wmnetselect':
 `mozilla' を参照する `Suggests' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。77093 行目付近、パッケージ 'e3':
 バージョン文字列 'e3-2.30-1' にエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。84479 行目付近、パッケージ 'tac-plus':
 バージョン文字列 'F4.0.4.alpha-9.1' にエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。139337 行目付近、パッケージ 'epic4-script-thirdeye':
 `epic4' を参照する `Depends' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。165107 行目付近、パッケージ 'cnews':
 バージョン文字列 'cr.g7-31' にエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。208613 行目付近、パッケージ 'request-tracker1':
 `rt' を参照する `Conflicts' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。221822 行目付近、パッケージ 'epic4':
 `epic4-help' を参照する `Conflicts' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
(データベースを読み込んでいます ...
はい、available絡みですね。古いリポジトリ情報が残ってるんでしょう。
# dpkg --clear-avail
これで解消。
dpkg: 警告: ファイル '/var/lib/dpkg/status' を解析。1703 行目付近、パッケージ 'doc-debian-ja':
 architecture が見つかりません
こっちはなんだろ。apt-show-versionsで見てみる。
# apt-show-versions -a doc-debian-ja
doc-debian-ja 2.2.2.2 install ok installed
No stable version
No stable-updates version
No testing version
No unstable version
doc-debian-ja 2.2.2.2 installed: No available version in archive
うーん、現バージョンなしdocということで消す。
#dpkg -r doc-debian-ja
dpkgの警告はこれで解消。

で、insserv: warning: script 'hogehoge' missing LSB tags and overrides
がたくさん出るけどこれはどうしようもない気がするので保留。起動スクリプトに決まった書き方が出来たんだろうけどうーん全部直すのはことだぞ。

あと、qmailの依存関係を暇なときに解消することにする。

こっから愚痴だけど、debianは保守的なのが売りなのにubuntuからのフィードバックで更新が加速してしまった。wheezy前後でかなりパッケージシステムに改訂が入った模様。

整備されていくのはよいことだが、変わったものが短期間でまた変わらないか危惧はしている。警告基準が変わるのも厄介。update-rc.dもinsservになってしまったし、うーんこれで綺麗になっているなら良いのだが継続的に変わるようだといやだな。

まあ情報仕入れてない私が悪いのだ。元々は勉強用だった自宅鯖。その役割は十分に果たしたし、便利に使ってはいるが今の自分には管理コストが高過ぎる気がする。自宅鯖はどこかで諦めなければいけないかも知れない。とりあえず今回の一連の作業でaptがあまりに遅かったため、サーバハードのアップグレードは考え中。

サービス絞ってwinサーバにしちゃうってのはアリでしょうねえ……

[2013/11/13追記]
qmail周りの依存関係を整理して入れ直した。

ごたごたしていて細かいメモを紛失した。
ほぼ以下の通り。
debian/wheezy で qmail を入れる - T-Saitohの仕事日記

現状メールサーバは送信だけ出来ればいいやの世界になってきたので、Postfixへの切り替えを考え中。

2013/07/16(火) apt周りあれこれ

2013/07/16 27:07 PC(Linux)
#aptitude upgrade
しようとしたら、依存関係が色々ぶつかって通らなくなってた問題。
(いつも通り、先頭sudoは適宜読み換えて下さい)

wheezyにしたときにちゃんと整備してなかったのが今になって出てきたっぽい。

とりあえず、
#aptitude upgrade --full-resolver
して、お勧めの方法でやってしまう。
 slang1:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 gnome-users-guide-es:none : 依存: scrollkeeper:none[仮想パッケージです]
 libpcap0:none : 依存: libc6:none (>= 2.2.3-7)[仮想パッケージです]
 libperl5.6:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 ide-smart:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libguile9 : 依存: libreadline4 (>= 4.3-1)[仮想パッケージです]
 perl-5.6:none : 依存: perl:none (>= 5.6.0-20)[仮想パッケージです]
 libident:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 nas-lib:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libcap1:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 webrick:none : 依存: libruby:none (>= 1.6.5)[仮想パッケージです]
 libpisock4:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libg++27 : 依存: libc5 (>= 5.4.7-6)[仮想パッケージです]
 mc-common:none : 依存: perl:none[仮想パッケージです]
 python2.1 : 依存: libreadline4 (>= 4.3-1)[仮想パッケージです]
 slang1a-utf8:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 libdns5:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 aalib1 : 依存: slang1 (> 1.4.9dbs-4)[仮想パッケージです]
 kjc:none : 依存: java-common:none[仮想パッケージです]
 watanabe-vfont:none : 依存: vflib2:none (>= 2.25.1-4.1)[仮想パッケージです] または
                             vflib3:none (>= 3.6.8-1.1)[仮想パッケージです]
 ipchains:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
                 依存: debconf:none[仮想パッケージです]
 gnome-users-guide:none : 依存: scrollkeeper:none[仮想パッケージです]
 libdb2:none : 先行依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 libdb2-util:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 libisc4:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libjasper-1.701-1:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
                          依存: libjpeg62:none[仮想パッケージです]
 libdb4.0:none : 依存: libc6:none (>= 2.3.2-1)[仮想パッケージです]
 libjcode-perl:none : 依存: perl5:none[仮想パッケージです]
 ipmasqadm:none : 依存: libc6:none (>= 2.2.2-2)[仮想パッケージです]
 libupnpsdk1:none : 依存: e2fsprogs:none (>= 1.27-2)[仮想パッケージです]
                    依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
                    依存: libuuid1:none[仮想パッケージです]
 libmm11:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libmm13:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 perl-5.6-base:none : 依存: perl-base:none (>= 5.6.0-20)[仮想パッケージです]
 linuxigd:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
                 依存: libstdc++2.10-glibc2.2:none (>= 1:2.95.4-0.010810)[仮想パッケージです]
 libnkf-ruby:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
                    依存: libruby:none (>= 1.6.7-3woody5)[仮想パッケージです]
 libnewt0:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libreadline4:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
                     依存: libncurses5:none (>= 5.4-1)[仮想パッケージです]
 ldso:none : 依存: libc6:none (>= 2.1.94)[仮想パッケージです]
以下のアクションでこれらの依存関係の問題は解決されます:

      以下のパッケージを削除する:
1)      aalib1
2)      gnome-users-guide:none
3)      gnome-users-guide-es:none
4)      ide-smart:none
5)      ipchains:none
6)      ipmasqadm:none
7)      kjc:none
8)      ldso:none
9)      libc5:none
10)     libcap1:none
11)     libdb2:none
12)     libdb2-util:none
13)     libdb4.0:none
14)     libdns5:none
15)     libg++27
16)     libguile9
17)     libident:none
18)     libisc4:none
19)     libjasper-1.701-1:none
20)     libjcode-perl:none
21)     libmm11:none
22)     libmm13:none
23)     libnewt0:none
24)     libnkf-ruby:none
25)     libpcap0:none
26)     libperl5.6:none
27)     libpisock4:none
28)     libreadline4:none
29)     libupnpsdk1:none
30)     linuxigd:none
31)     mc-common:none
32)     nas-lib:none
33)     perl-5.6:none
34)     perl-5.6-base:none
35)     python2.1
36)     slang1:none
37)     slang1a-utf8:none
38)     watanabe-vfont:none
39)     webrick:none



この解決方法を受け入れますか? [Y/n/q/?]
受け入れた。うーん、noneはパッケージ消失だと思うのだがlibc6絡みで消えてる奴はなんなのだ。

で、linuxigd(upnpdを提供してるパッケージ)だけ消えてくれない。
Stopping linuxigd: upnpd invoke-rc.d: initscript linuxigd, action "stop" failed.
Starting linuxigd: upnpd/usr/bin/upnpd: error while loading shared libraries: libupnp.so.1: cannot open shared object file: No such file or directory invoke-rc.d: initscript linuxigd, action "start" failed.
dpkg: クリーンアップ中にエラーが発生しました:
 サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 127 を返しました
処理中にエラーが発生しました:
 linuxigd
とりあえずupnpdは今使ってなかったと思うので、何とかして消す。

インストール・アンインストールのプリ・ポストプロセス周りで問題が出ている模様。

/var/lib/dpkg/info/にここらのスクリプトが集まっているので中身を見る。
$cat /var/lib/dpkg/info/linuxigd.prerm

#!/bin/sh
set -e
# Automatically added by dh_installinit
if [ -x "/etc/init.d/linuxigd" ]; then
        if [ -x /usr/sbin/invoke-rc.d ] ; then
                invoke-rc.d linuxigd stop
        else
                /etc/init.d/linuxigd stop
        fi
fi
# End automatically added section
こいつは止めてるだけだな。

で、結論から言うととりあえず手動で止めて、このスクリプト消してしまうのが手っ取り早いと思う。
#mv /var/lib/dpkg/info/linuxigd.prerm /var/lib/dpkg/info/linuxigd.prerm.orig
プリ部分はこれでOK。ポスト部分はメモってなかったが同様の方法で問題なかったと思う。

これで晴れて、
#dpkg -r linuxigd
が通った。

乱暴だが、そもそもパッケージの作りがおかしいので仕方ない。

2013/05/08(水) libccid VerUpに伴うB-CASカード周りの設定変更

2013/05/08 24:56 PC(Linux)
自宅サーバ(debian)をsqueeze -> wheezyにしたらちょいちょい動かなくなったものがあったので、それ関連の記事。

今回はpcscd, bcs-perl 周りの話。

wheezyにして以降、pcsc_scanしてもカードが出てこない。

原因は、libccidのバージョンが変わった所為でカードリーダを認識しなくなったからのようだ。

[参考]
Linux/テレビ関連/libccid - PukiWiki Plus!

とりあえず、libccid_Info.plistにエントリを追加してpcscdを再起動すれば良い。
$diff /etc/libccid_Info.plist /etc/libccid_Info.plist.orig
328d327
<               <string>0x04E6</string>
554d552
<               <string>0x511A</string>
780d777
<               <string>SCM SCR 3310 NTTCom</string>

#/etc/init.d/pcscd restart
bcs-perl側の名前が"SCM SCR 3310 NTTCom"なのでそのまま入れてやる。

pcsc_scanしてカードの検出、bcs-perl listしてカードの認識が出来てることを確認すること。pcsc_scanがだめならpcsc側のリストをチェック、bcs-perl listがダメならbcs-perl.pl内のカード名($selected_reader)が怪しい。

パッケージ作り直す、unstableにするという方法もあるがうーん、依存の整理とか考えたくない……

[2013/10/11 追記]
後日、カードリーダを指し直したらまたbcs-perl listで取れる名前が変わってしまった。うーん、カードリーダ同じ型番でも取れるものが違うのか、ドライバ周りで細かく変わるものなのか……

bcs-perlを弄って修正。

[参考]
ぼんぼんブログ - ぼんぼん工房

2011/12/01(木) awstatsの更新がおかしい

2011/12/01 22:13 PC(Linux)
メールをよみがえらせてみたら、こんなメッセージが山ほど来ていた。
Create/Update database for config "/etc/awstats/awstats.conf" by AWStats version 6.95 (build 1.943)
From data in log file "/var/log/apache/access.log"...
Error: Couldn't open server log file "/var/log/apache/access.log" : Permission denied
Setup ('/etc/awstats/awstats.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
うへえ、awstatsの更新が死んでる。……あれでもおかしい、awstats自体はちゃんと最新のデータを取ってきてる。しかしメールは続々来る。なんだこれはと調べてみたら、/etc/cron.dと/etc/cron.hourlyにそれぞれawstatsのスクリプトがあった…… orz。

片方が成功、片方が失敗して正常な更新とエラーメール(受け取れてなかった)を延々続けていたのか。なんだそれ!

awstatsは確か当初ソースから入れたので残っていたのかもしれない。パッケージに切り替えたときに旧cron設定を消し忘れたのだろう。

ということで、
$ dpkg -L awstats
で調べつつ、
cron.hourlyの古いスクリプトを消し、パッケージから入っていると思われるcron.d側を残した。

この状態でまだエラーメールが来るので、/etc/cron.d/awstats中のユーザ指定をaccess.logのユーザに書き換え。

更新成功し、エラーメールもなくなった。

2011/12/01(木) メールがローカルに配信されない

2011/12/01 14:01 PC(Linux)
しばらくほったらかしにしてたメールを久々に触ってみようと思ったら、何かとんでもないことになっていた。
# qmail-qstat
messages in queue: 54682
messages in queue but not yet preprocessed: 54680
最初はすわ不正中継爆弾? とか思ったのだが、
# cat /var/log/mail.log
1218742:Dec  1 10:19:04 debian qmail: 1322702344.535144 warning: unable to create local/8/1656100
...
おおう、これはローカルへの配信ができずに延々ループしてるっぽい。そしてmail.logのサイズがどんどんふくらんでいる。そこで、/var/spool/qmail/local/をのぞいてみたら、

空っぽ!

え、分割ディレクトリはどこへ行ったの?

分割ディレクトリを自動的に作る機能はなさそう…… しかし、分割ディレクトリがないのが原因っぽい。

ということで、分割ディレクトリを標準の23作成する。
# mkdir 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
して、chmod,chown,chgrpしたところ…… 動き出した。
ログをチェックして、warningが消えたことを確認

えー、なんだこれ。手で消した記憶はないので、update時に何かが消してしまったのかqmailの仕様が変わったのか。

うーん原因までは追えなかった。

一応解決。

2011/12/01(木) /dev/sdaが無い!

2011/12/01 11:37 PC(Linux)
起動時にデバイスノード/dev/sda, /dev/sda1, /dev/sda2が作成されない問題。

環境を整理すると、
kernel: 2.6.34.1(自分でコンパイル)
udev: 164-3
HDD: SATA HDD(内蔵)

/sys/block/sda/, /sys/block/sda/sda1/, /sys/block/sda/sda2/はできており、fstabsでのマウントも成功している。

これなら起動時にデバイスノードが自動的に作成されることを期待するのだが、なぜか作成されない。デバイスノードがないとfdiskとかできないので大変にまずい。

どうも1月にsqueezeに入れ替えたときから発生していたような気配だ。fstabsはUUIDで書いていたので、今まで問題が起こらなかった(もしくは気づかなかった)。

さて、squeezeからデバイス割り当ての仕組みがudevに変わっている。この移行に関しては注意書きが手順書に書かれるくらいなので大きな変更なのだが、一応これは気をつけてカーネルを作り直したつもり。起動はするし、警告も出てる気配がないのでこれはudevとsysfsの連携が単にうまくいっていない。

で、調べてみると、
[Sorcerer-admins udev does not create sda, sdb and md0]
完全に追えてないのだが、以下自分の解釈。udevの元々の仕組みはデバイスのモジュール組み込みを想定しているためモノリシックカーネルの対応が不十分な場合があるとのこと。あちこち回ってみると、udevのバージョン変更で直った例が多いようなのだが、debianは相変わらずtesting=unstableだし、依存関係がもうすンごかったので断念。うーん、推奨環境(カーネルもdebianのものを使用)じゃないのでバグ報告がためらわれる。しょうがないので、まずはコマンドラインで、
# cat  /sys/block/sda/dev /sys/block/sda/sda1/dev /sys/block/sda/sda2/dev
8:0
8:1
8:2
としてメジャー・マイナー番号を調べ
# mknod /dev/sda b 8 0
# mknod /dev/sda1 b 8 1
# mknod /dev/sda2 b 8 2
とした。

で、これを起動スクリプトに追加。
$ cat /etc/init.d/mk_sda_node
#!/bin/sh

if ! [ -e /dev/sda ]; then
        mknod /dev/sda b 8 0
        mknod /dev/sda1 b 8 1
        mknod /dev/sda2 b 8 2
fi

exit 0
雑にこんなんでいいや。すでにデバイスノードが存在してればmknodは特に問題は起こさないようだし。ずれることもないだろう(udevを頭から否定)。
update-rc.d mk_sda_node start 15 1 2 3 4 5 .
debian流で登録。single user modeでもあった方がいいでしょ。
update-rc.d: warning: /etc/init.d/mk_sda_node missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/mk_sda_node ...
   /etc/rc1.d/S15mk_sda_node -> ../init.d/mk_sda_node
   /etc/rc2.d/S15mk_sda_node -> ../init.d/mk_sda_node
   /etc/rc3.d/S15mk_sda_node -> ../init.d/mk_sda_node
   /etc/rc4.d/S15mk_sda_node -> ../init.d/mk_sda_node
   /etc/rc5.d/S15mk_sda_node -> ../init.d/mk_sda_node
LSBがらみは今度調べよう。

再起動してデバイスノードがあることを確認。うーん、次期wheezyまでこれでしのぐか…

2011/07/21(木) DNSを変えた(ZoneEdit->MyDNS)

2011/07/21 16:34 PC(Linux)
結論から書くと、Dynamic DNSサービスを変更し、ZoneEditの依存度を下げてMyDNSをメインにした。
$whois
がこうなった。
[Name Server]                   ns8.zoneedit.com
[Name Server]                   ns18.zoneedit.com

[Name Server]                   ns0.mydns.jp
[Name Server]                   ns1.mydns.jp
[Name Server]                   ns18.zoneedit.com
経緯としては、Try WiMaxした際にdt8.jpに接続できなかったことに端を発する。WiMaxの自動取得DNSがdt8.jpをタイムアウトしているようなのでざっと調べてみると、ZoneEditの挙動がおかしい。ns18は応答を返すがns8は応答を返さなかった。

ここで色々調べてみたのだが、どうもアクセス元として特定IPアドレスなりドメインなりをns8ははじいているようだ(そうとしか思えない)。下はWindowsのcmd.exe。
>nslookup dt8.jp ns8.zoneedit.com
DNS request timed out.
    timeout was 2 seconds.
 *** Can't find server name for address 75.125.10.187: Timed out
Server:  UnKnown
Address:  75.125.10.187

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
 *** Request to UnKnown timed-out

>ping ns8.zoneedit.com

Pinging ns8.zoneedit.com [75.125.10.187] with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 75.125.10.187:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
と、こうなる。

自宅(so-net配下)ではnslookup, pingともに通っていたので気づかなかった。

もしかしたら今までこのサイト見られなかったりしたのかも。ごめんなさい。

nslookup(dig)テスト【DNSサーバ接続・応答確認】

上記のサイトでもはねられる。

ということで元々zoneeditは挙動が怪しかったこともあり、できれば乗り換えたいと考えた。個人運営ながらMyDNSがそこそこ長期かつ安定的に運営されている(感謝!)ようなので特に挙動が怪しいns8.zoneedit.comを廃し、MyDNSをメインに差し替えることにした。

しかし、調べてみると現在フルドメイン登録可能なフリーのDDNSがほとんど無くなっている。EveryDNSはDynDNSに吸収されるようだし、概して有料化かサービス停止の流れにあるようだ。無料DDNSは広告プログラムとくっつきづらいのもわかるので、仕方ないかもしれない。

MyDNSもいつまでサービスを提供していてくれるかわからない。将来的にどうするか。

ドメインをVALUE-DOMAINに移管すればVALUE-DOMAINのDDNSが使えるのだが、VALUE-DOMAIN自体が今不安定な状況のようなので今回は控えた。VALUE-DOMAINはいつの間にか安くなっていて、汎用jpに関して現在のレジストラ21-domainと値段がほぼ互角のようだ。経営が安定していることが確認できればVALUE-DOMAINへの移管も手ではある(VALUE-DOMAINのDDNSも不安定という噂があるが)。

自前でネームサーバを立て、フルドメインでない適当なDDNSでドメインを取得し(たとえばxxx.dyndns.org)、それをDNSとしてJPRSなりに登録するという手もある(技術的には可能なはずだが認識に誤りがあるだろうか?)。

話を戻す。とりあえず、1月程度問題がないかどうか確認し、問題ないようだったらZoneEditを全廃することとする。

【追記 2011/11/10】
2011/11/07付けでmydnsに一本化した。
[Name Server]                   ns0.mydns.jp
[Name Server]                   ns1.mydns.jp
さらばzoneedit。