Bug#281172: mkinitrd: fails with ROOT=probe
Package: initrd-tools
Version: 0.1.74
Severity: important
I tried to install a kernel-image which failed with:
Setting up kernel-image-2.6.8-1-686 (2.6.8-5) ...
/usr/sbin/mkinitrd: /dev/loop1: Unknown root device
Please refer to the manual page.
Failed to create initrd image.
So I began searching for the possible reason. It seems that
getroot() in mkinitrd does not work correctly, in part this part of it:
script='
BEGIN { printf "set -- " }
/^#/ { next }
$2 == "/" { root = $1; type = $3; next }
$3 == "swap" { printf "'\''%s'\''", $1 }
END {
print ""
print "root=" root
print "fstabtype=" type
}
'
root=
eval "$(awk "$script" /etc/fstab)"
###########gives:
# set -- '''/dev/loop1'''
# root=/dev/hda1
# fstabtype=ext3
if [ -z "$root" ]; then
echo "$PROG: Cannot determine root device" >&2
exit 1
fi
device=$root
for i; do
[ -b "$i" ] || continue
##################### here getroot /dev/loop1 is called
getroot "$i"
done
I've attached my fstab. Let me know if you need to know more.
PS I use an encrypted swap partition, i.e. /dev/loop1, which is used
with
/sbin/modprobe cryptoloop
/bin/dd if=/dev/urandom bs=1 count=40 | /sbin/losetup -e twofish128 -p \
0 /dev/loop1 /dev/hda2
/sbin/mkswap /dev/loop1
swapon -a
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (990, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.6-1-386
Locale: LANG=C, LC_CTYPE=C
Versions of packages initrd-tools depends on:
ii coreutils [fileutils] 5.2.1-2 The GNU core utilities
ii cpio 2.5-1.1 GNU cpio -- a program to manage ar
ii cramfsprogs 1.1-6 Tools for CramFs (Compressed ROM F
ii dash 0.5.1-3 The Debian Almquist Shell
ii util-linux 2.12-10 Miscellaneous system utilities
-- no debconf information
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
#also have a look in /etc/init.d/checkroot.sh
/dev/loop1 none swap sw 0 0
#/dev/hda2 none swap sw 0 0
/dev/hda1 / ext3 defaults,errors=remount-ro 0 1
# use /etc/init.d/crypto-jens now
#/dev/hda3 /home/jens ext3 defaults 0 2
/dev/hdc /media/cdrom iso9660 ro,user,noauto 0 0
/dev/hdc /cdrom iso9660 ro,user,noauto 0 0
Reply to: