Bug#272139: /sys/block names are mangled with '!' in current 2.6 kernels, not '.'
Package: initrd-tools
Version: 0.1.74
Severity: important
Devices such as /dev/cciss/c0d0p1 used to have their names mangled in
/sys/block with '.' in place of '/', producing paths like
/sys/block/cciss.c0d0/cciss.c0d0p1/dev. However, current kernels use '!'
rather than '.' as the mangling character, so you get
/sys/block/cciss!c0d0/cciss!c0d0p1/dev. See
http://mail.nl.linux.org/linux-mm/2003-12/msg00087.html for some related
comments, fixing another part of the kernel to cope with this.
The upshot is that initrds generated by initrd-tools fail to figure out
how to mount root filesystems on CCISS devices.
/usr/share/initrd-tools/init copes with the old naming, like this:
IFS=/
set -f
set +f ${root#/dev/}
IFS=.
root=$*
unset IFS
try_name "$root" && return
It's probably best for us to try both. The following patch (actually
against 0.1.70 rather than 0.1.74, but should still apply) works for me:
http://www.no-name-yet.com/patches/initrd-tools.sys-block.diff
Cheers,
--
Colin Watson [cjwatson@debian.org]
Reply to: