_ [debian] udev 0.100-1 vs sysvinit 2.86.ds1-18

reboot したら alsa のモジュールがロードされてなかった。昨日 udev 0.100-1 を入れたので udev が怪しいと見てみると、/etc/rcS.d/ 以下に udev 関係の symlink がなく、udevd が起動してなかった。 udevd が起動してないことに気付かない間に全体を upgrade していたんだけど、そのとき apt-listchanges で sysvinit の NEWS が出ていた。

In version 2.86.ds1-16 of the sysv-rc package released 2006-09-06, the update-rc.d script was broken. When used to to update symlinks it would remove all symlinks for a init.d script if such symlinks existed, and add them if they were missing.

ref. /usr/share/doc/sysvinit/NEWS.Debian.gz

sysvinit 2.86.ds1-16 以降の update-rc.d が壊れていて、その間に update-rc.d を使ったら init.d スクリプトへの symlink がおかしくなってしまったようだ。さらに

WARNING:
WARNING: You are upgrading from version 2.86.ds1-17 of sysv-rc, which
WARNING: broke upgrades of other packages with init.d scripts.
WARNING: Please read /usr/share/doc/sysvinit/NEWS.Debian.gz for
WARNING: instructions on how to recover.
WARNING:

という警告が。udev 0.100-1 を入れたときは sysvinit 2.86.ds1-17 だったので、/etc/rcS.d/ 以下の udev の symlink が消えてしまったようだ。解決策は sysvinit の NEWS に書かれているように、

Those with packages being broken from this bug can fix it by using ‘apt-get –reinstall install package’ on the affected packages.

ref. /usr/share/doc/sysvinit/NEWS.Debian.gz

apt-get –reinstall install udev とした。そうすると /etc/rcS.d/ 以下の udev の symlink が復活。

% ls -l /etc/*.d/*udev*
-rwxr-xr-x 1 root root 7662 Sep  3 19:15 /etc/init.d/udev
-rwxr-xr-x 1 root root 1252 Mar 28 16:44 /etc/init.d/udev-mtab
lrwxrwxrwx 1 root root   14 Sep  9 11:52 /etc/rcS.d/S03udev -> ../init.d/udev
lrwxrwxrwx 1 root root   19 Sep  9 11:52 /etc/rcS.d/S36udev-mtab -> ../init.d/udev-mtab
%

/etc/init.d 以下のものをまとめて apt-get –reinstall install して symlink を張り直す方法も書いてあるけど、手元では多分 udev だけっぽい。