[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: