Package: cryptsetup
Version: 2:1.0.5-2
Severity: wishlist
Tags: patch

Hi there,

In ubuntu we generally use UUIDs only in /etc/fstab. This currently
breaks the cryptroot hook in a way, that the initramfs-tool hook fails
to detect the root filesystem in the debian package.

In related change, I modified partman-crypto to write out the 2nd cloumn
using UUIDs. You can look at that patch here:

http://patches.ubuntu.com/p/partman-crypto/partman-crypto_21ubuntu2.patch

Martin Pitt and myself have worked this week on this issue in
ubuntu, so that you can have UUIDs in both /etc/fstab and
/etc/crypttab!

You can find the complete patch to the ubuntu package here:
http://patches.ubuntu.com/c/cryptsetup/cryptsetup_2:1.0.5-2ubuntu1.patch

Find the relevant parts for this issue below:

diff -pruN 2:1.0.5-2/debian/initramfs/cryptroot-hook 
2:1.0.5-2ubuntu1/debian/initramfs/cryptroot-hook
--- 2:1.0.5-2/debian/initramfs/cryptroot-hook   2007-10-03 00:08:07.000000000 
+0100
+++ 2:1.0.5-2ubuntu1/debian/initramfs/cryptroot-hook    2007-10-03 
00:07:57.000000000 +0100
@@ -66,7 +66,7 @@ get_resume_devices() {
 
        # initramfs-tools
        if [ -e /etc/initramfs-tools/conf.d/resume ]; then
-               device=$(sed -rn 's/^RESUME[[:space:]]+=[[:space:]]+// p' 
/etc/initramfs-tools/conf.d/resume)
+               device=$(sed -rn 's/^RESUME[[:space:]]*=[[:space:]]*// p' 
/etc/initramfs-tools/conf.d/resume)
                if [ -n "$device" ]; then
                        candidates="$candidates $device"
                fi
@@ -123,6 +123,11 @@ get_lvm_deps() {
        local node deps maj min depnode
        node="$1"
 
+       uuid_resolv="/dev/disk/by-uuid/${node#UUID=}"
+       if [ -L "$uuid_resolv" ]; then
+               node=$(readlink -f "$uuid_resolv")
+       fi
+
        if [ -z $node ]; then
                echo "cryptsetup: WARNING: get_lvm_deps - invalid arguments" >&2
                return 1
@@ -289,7 +300,10 @@ add_device() {
        # Check that it is a node under /dev/mapper/
        nodes="${nodes#/dev/mapper/}"
        if [ "$nodes" = "$1" ]; then
-               return 0
+               # check that it is a UUID
+               if [ "${nodes#UUID=}" = "$nodes" ]; then
+                       return 0
+               fi
        fi
 
        # Can we find this node in crypttab


-- System Information:
Debian Release: lenny/sid
  APT prefers gutsy-updates
  APT policy: (500, 'gutsy-updates'), (500, 'gutsy')
Architecture: i386 (i686)

Kernel: Linux 2.6.22-12-generic (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages cryptsetup depends on:
ii  dmsetup               2:1.02.20-1ubuntu4 The Linux Kernel Device Mapper use
ii  libc6                 2.6.1-1ubuntu9     GNU C Library: Shared libraries
ii  libdevmapper1.02.1    2:1.02.20-1ubuntu4 The Linux Kernel Device Mapper use
ii  libgcrypt11           1.2.4-2ubuntu2     LGPL Crypto library - runtime libr
ii  libgpg-error0         1.4-2ubuntu1       library for common error values an
ii  libpopt0              1.10-3build1       lib for parsing cmdline parameters
ii  libuuid1              1.40.2-1ubuntu1    universally unique id library

cryptsetup recommends no packages.

-- no debconf information


-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4



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

Reply via email to