Jonas Meurer <[email protected]> writes:

> could you try to regenerate the initramfs after downgrading to
> 2:1.1.0-2.1, and test whether that works as well? that way you verify
> that the bug is in cryptsetup package itself, and was not introduced by
> some other package upgrade.
>
> you should backup the working initramfs first (copy it to
> /boot/initramfs.works), then downgrade the cryptsetup package to
> 2:1.1.0-2.1 (you can get it from snapshot.debian.org).

I have verified this.  The regenerated initramfs, after just downgrading
cryptsetup to 2:1.1.0-2.1, does work.

I've unpacked the two initramfs'es in good/ and bad/, and these are the
only files which differ between the working and non-working:

 bj...@nemi:/tmp$ diff -qarN good bad
 Files good/lib/cryptsetup/askpass and bad/lib/cryptsetup/askpass differ
 Files good/sbin/cryptsetup and bad/sbin/cryptsetup differ
 Files good/scripts/local-top/cryptroot and bad/scripts/local-top/cryptroot 
differ



Which means that the difference must be in one of these three files.
Most of this seems innocent, as there is no /bin/plymouth, but I'm
wondering a bit about the last hunch here, what does it do?:


bj...@nemi:/tmp$ diff -u good/scripts/local-top/cryptroot 
bad/scripts/local-top/cryptroot
--- good/scripts/local-top/cryptroot    2010-06-21 21:19:28.352464686 +0200
+++ bad/scripts/local-top/cryptroot     2010-06-21 21:19:16.663971550 +0200
@@ -30,7 +30,9 @@
 #
 message()
 {
-       if [ -p /dev/.initramfs/usplash_outfifo ] && [ -x /sbin/usplash_write 
]; then
+       if [ -x /bin/plymouth ] && plymouth --ping; then
+               plymouth message --text="$@"
+       elif [ -p /dev/.initramfs/usplash_outfifo ] && [ -x /sbin/usplash_write 
]; then
                usplash_write "TEXT-URGENT $@"
        else
                echo "$@" >&2
@@ -175,7 +177,7 @@
 
        # Sanity checks
        if [ ! -x /sbin/evms_activate ]; then
-               message "cryptsetup: evmc_activate is not available"
+               message "cryptsetup: evms_activate is not available"
                return 1
        elif [ "$dev" = "$1" ]; then
                message "cryptsetup: evms device name ($vg) does not begin with 
/dev/evms/"
@@ -290,8 +292,13 @@
                fi
 
                if [ -z "$cryptkeyscript" ]; then
-                       cryptkeyscript="/lib/cryptsetup/askpass"
                        cryptkey="Unlocking the disk $cryptsource 
($crypttarget)\nEnter passphrase: "
+                       if [ -x /bin/plymouth ] && plymouth --ping; then
+                               cryptkeyscript="plymouth ask-for-password 
--prompt"
+                               cryptkey=$(echo -e "$cryptkey")
+                       else
+                               cryptkeyscript="/lib/cryptsetup/askpass"
+                       fi
                fi
 
 
@@ -335,7 +342,7 @@
                        continue
                fi
 
-               message "cryptsetup: $crypttarget setup successfully"
+               message "cryptsetup: $crypttarget set up successfully"
                break
        done
 
@@ -365,7 +372,7 @@
 # Do we have any settings from the /conf/conf.d/cryptroot file?
 if [ -r /conf/conf.d/cryptroot ]; then
        while read mapping <&3; do
-               setup_mapping "$mapping"
+               setup_mapping "$mapping" 3<&-
        done 3< /conf/conf.d/cryptroot
 fi
 




Bjørn



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to