[pkg-cryptsetup-devel] Bug#682751: cryptsetup: Booting from encrypted multidevice btrfs does not work

Jon Severinsson jon at severinsson.net
Wed Jul 25 09:31:36 UTC 2012


Package: cryptsetup
Version: 2:1.4.3-2
Severity: important
Tags: patch

Booting with / on a multidevice btrfs where the component devices are encrypted does not work, as the cryptroot initramfs hook only add support for a single encrypted rootdev to the initramfs.

The attached patch makes the hook script support multiple rootdevs and adds support for finding all rootdevs for a btrfs filesystem. Someone should probably add zfs-fuse support to get_root_devices() as well, but I don't have any zfs filesystem to test with...

Best regards
Jon Severinsson

-- Package-specific info:
-- /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.2.0-3-amd64 root=/dev/mapper/gitara-crypt2 ro rootflags=subvol=debian bootdegraded=true quiet splash vt.handoff=7

-- /etc/crypttab
# <target name>	<source device>		<key file>	<options>
gitara-crypt1 UUID=0c334cb8-d190-4c5f-a218-e240ffbf142d none luks,discard
gitara-crypt2 UUID=948cd1d2-79d3-4515-b494-a7fd7b95c29b none luks,discard

-- /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system>     	<mount point>                   <type>  <options>                                   <dump/pass>
LABEL=gitara-boot   	/boot                           ext4    nodev,nosuid                                    0   2
LABEL=gitara-btrfs  	/media/btrfs                    btrfs   ssd,subvolid=0                                  0   0
LABEL=gitara-btrfs  	/                               btrfs   ssd,subvol=debian                               0   0
LABEL=gitara-btrfs  	/opt                            btrfs   ssd,subvol=opt                                  0   0
LABEL=gitara-btrfs  	/home                           btrfs   ssd,nodev,nosuid,subvol=home                    0   0
LABEL=gitara-btrfs  	/export                         btrfs   ssd,nodev,nosuid,subvol=export                  0   0
LABEL=gitara-backup 	/export/backup                  ext4    nodev,nosuid                                    0   2

-- lsmod
Module                  Size  Used by
parport_pc             22364  0 
ppdev                  12763  0 
lp                     17149  0 
parport                31858  3 lp,ppdev,parport_pc
rfcomm                 33656  0 
bnep                   17567  2 
bluetooth             119406  10 bnep,rfcomm
binfmt_misc            12957  1 
uinput                 17440  1 
isofs                  35171  0 
nls_utf8               12456  1 
nls_cp437              16553  1 
vfat                   17316  1 
fat                    45642  1 vfat
loop                   22641  2 
kvm_amd                47218  0 
kvm                   287662  1 kvm_amd
snd_hda_codec_hdmi     30783  1 
eeepc_wmi              12564  0 
asus_wmi               18726  1 eeepc_wmi
sparse_keymap          12760  1 asus_wmi
rfkill                 19012  3 asus_wmi,bluetooth
snd_hda_codec_realtek   188797  1 
amd64_edac_mod         22334  0 
edac_mce_amd           17103  1 amd64_edac_mod
k10temp                12611  0 
powernow_k8            17573  0 
psmouse                64455  0 
edac_core              35258  3 amd64_edac_mod
joydev                 17266  0 
mperf                  12453  1 powernow_k8
pcspkr                 12579  0 
serio_raw              12931  0 
snd_hda_intel          26345  0 
snd_hda_codec          78031  3 snd_hda_intel,snd_hda_codec_realtek,snd_hda_codec_hdmi
snd_hwdep              13186  1 snd_hda_codec
snd_pcm                63900  3 snd_hda_codec,snd_hda_intel,snd_hda_codec_hdmi
snd_page_alloc         13003  2 snd_pcm,snd_hda_intel
snd_seq                45093  0 
snd_seq_device         13176  1 snd_seq
evdev                  17562  15 
snd_timer              22917  2 snd_seq,snd_pcm
sp5100_tco             12900  0 
processor              28157  1 powernow_k8
thermal_sys            18040  1 processor
i2c_piix4              12536  0 
snd                    52850  9 snd_timer,snd_seq_device,snd_seq,snd_pcm,snd_hwdep,snd_hda_codec,snd_hda_intel,snd_hda_codec_realtek,snd_hda_codec_hdmi
soundcore              13065  1 snd
shpchp                 31293  0 
btrfs                 505480  1 
crc32c                 12656  1 
libcrc32c              12426  1 btrfs
zlib_deflate           25638  1 btrfs
sha256_generic         16797  4 
cryptd                 14517  0 
aes_x86_64             16796  32 
aes_generic            33026  1 aes_x86_64
cbc                    12754  16 
ext4                  350411  2 
crc16                  12343  2 ext4,bluetooth
jbd2                   62015  1 ext4
mbcache                13065  1 ext4
dm_crypt               22586  2 
dm_mod                 63545  5 dm_crypt
raid1                  30714  1 
md_mod                 87742  2 raid1
sr_mod                 21899  0 
cdrom                  35401  1 sr_mod
sd_mod                 36136  8 
usb_storage            43870  0 
crc_t10dif             12348  1 sd_mod
uas                    13296  0 
usbhid                 36379  0 
hid                    81288  1 usbhid
sata_sil24             17628  4 
ohci_hcd               22467  0 
mxm_wmi                12473  0 
radeon                639188  2 
firewire_ohci          35772  0 
firewire_core          48407  1 firewire_ohci
crc_itu_t              12347  1 firewire_core
ahci                   24997  1 
libahci                22860  1 ahci
libata                140589  3 libahci,ahci,sata_sil24
ehci_hcd               40215  0 
xhci_hcd               73170  0 
wmi                    13243  2 mxm_wmi,asus_wmi
button                 12937  0 
power_supply           13475  1 radeon
i2c_algo_bit           12841  1 radeon
ttm                    48725  1 radeon
drm_kms_helper         27227  1 radeon
drm                   167670  4 drm_kms_helper,ttm,radeon
usbcore               128498  7 xhci_hcd,ehci_hcd,ohci_hcd,usbhid,uas,usb_storage
r8169                  46980  0 
mii                    12675  1 r8169
i2c_core               23876  5 drm,drm_kms_helper,i2c_algo_bit,radeon,i2c_piix4
scsi_mod              162372  5 libata,uas,usb_storage,sd_mod,sr_mod
usb_common             12354  1 usbcore


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing'), (400, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=sv_SE.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages cryptsetup depends on:
ii  cryptsetup-bin         2:1.4.3-2
ii  debconf [debconf-2.0]  1.5.44
ii  dmsetup                2:1.02.74-4
ii  libc6                  2.13-33

cryptsetup recommends no packages.

Versions of packages cryptsetup suggests:
ii  busybox                                 1:1.20.0-5
ii  dosfstools                              3.0.13-1
ii  initramfs-tools [linux-initramfs-tool]  0.107
ii  liblocale-gettext-perl                  1.05-7+b1
ii  udev                                    175-3.1

-- debconf information:
  cryptsetup/prerm_active_mappings: true
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cryptroot-btrfs-multidevice.patch
Type: text/x-diff
Size: 2528 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-cryptsetup-devel/attachments/20120725/864c4d0e/attachment.patch>


More information about the pkg-cryptsetup-devel mailing list