Package: cryptsetup Version: 2:1.2.0-2 Severity: normal The '--size' option to cryptsetup is supposed to allow one to choose a subset of a block device when configuring an encrypted device-mapper target. Although this option has behaved sensibly in Debian releases up to 6.0 ("squeeze"), the latest 'testing' version of cryptsetup appears to ignore this option, and create a device-mapper target that is as large as the underlying block device.
The attached script shows that attempting to select a 4MB subset of a 16MB block device produces a device below /dev/mapper which has 16MB. This script produces the expected 4MB size when run under 'squeeze' and 'lenny'. Similar operations with cryptsetup have worked as expected with previous releases of Debian and a wide range of other flavours of Linux. Perhaps someone could advise why the '--size' option now seems to behave so differently? Thanks. -- Package-specific info: -- /proc/cmdline BOOT_IMAGE=/boot/vmlinuz-2.6.38-2-686 root=UUID=a4f8be97-3463-4d2b-9109-0e363ddc9be4 ro quiet -- /etc/crypttab # <target name> <source device> <key file> <options> -- /etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # /dev/hda1 / ext3 defaults,errors=remount-ro 0 1 UUID=a4f8be97-3463-4d2b-9109-0e363ddc9be4 / ext3 defaults,errors=remount-ro 0 1 # /dev/hda8 /home ext3 defaults 0 2 UUID=8a24e9da-0621-433a-a364-5d5b6d8f0468 /home ext3 defaults 0 2 # /dev/hda6 /usr ext3 defaults 0 2 UUID=3a1170f4-1fb5-4c05-a7af-b73b20c13710 /usr ext3 defaults 0 2 # /dev/hda7 /var ext3 defaults 0 2 UUID=2a6847a1-668b-462b-a75b-99fbb6f05112 /var ext3 defaults 0 2 # /dev/hda5 none swap sw 0 0 UUID=5a84def4-b9f8-4c84-a07b-844439faac9b none swap sw 0 0 # /dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/cdrom1 /media/cdrom0 udf,iso9660 user,noauto 0 0 -- lsmod Module Size Used by twofish_generic 16529 0 twofish_i586 12453 0 twofish_common 20528 2 twofish_generic,twofish_i586 cbc 12659 0 loop 17805 0 dm_crypt 17809 0 i2c_piix4 12480 0 snd_pcm 52774 0 i2c_core 18989 1 i2c_piix4 processor 26983 0 thermal_sys 17667 1 processor parport_pc 21895 0 tpm_tis 12949 0 parport 27018 1 parport_pc tpm 17454 1 tpm_tis tpm_bios 12799 1 tpm snd_timer 22171 1 snd_pcm psmouse 45863 0 snd 38153 2 snd_pcm,snd_timer serio_raw 12758 0 evdev 13084 5 soundcore 12878 1 snd snd_page_alloc 12841 1 snd_pcm pcspkr 12515 0 button 12866 0 ext3 98001 4 jbd 40818 1 ext3 mbcache 12810 1 ext3 dm_mod 56394 1 dm_crypt sg 21385 0 sd_mod 34941 6 sr_mod 17418 0 cdrom 34631 1 sr_mod crc_t10dif 12332 1 sd_mod ata_generic 12439 0 ata_piix 21079 5 uhci_hcd 21850 0 ehci_hcd 34889 0 libata 131904 2 ata_generic,ata_piix usbcore 99058 3 uhci_hcd,ehci_hcd scsi_mod 134369 4 sg,sr_mod,sd_mod,libata floppy 47893 0 e1000 84011 0 nls_base 12649 1 usbcore -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.38-2-686 (SMP w/1 CPU core) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages cryptsetup depends on: ii dmsetup 2:1.02.63-3 The Linux Kernel Device Mapper use ii libc6 2.11.2-11 Embedded GNU C Library: Shared lib ii libcryptsetup1 2:1.2.0-2 libcryptsetup shared library ii libpopt0 1.16-1 lib for parsing cmdline parameters cryptsetup recommends no packages. Versions of packages cryptsetup suggests: ii busybox 1:1.17.1-10 Tiny utilities for small and embed pn dosfstools <none> (no description available) ii initramfs-tools [linux-initr 0.98.8 tools for generating an initramfs ii udev 167-3 /dev/ and hotplug management daemo -- no debconf information
#!/bin/sh # Script for checking cryptsetup filesystem-size correctness # RW Penney, May 2011 TMPFILE=/tmp/cs-bug.fs LOOPDEV=/dev/loop0 KEYFILE=/tmp/cs-keyfile # Create loopback filesystem of 16MiB: dd if=/dev/zero of=${TMPFILE} bs=1b count=32768 losetup ${LOOPDEV} ${TMPFILE} # Create cryptsetup target, requesting size of 4MiB: dd if=/dev/urandom of=${KEYFILE} bs=32c count=1 2>/dev/null cryptsetup --cipher twofish --key-file ${KEYFILE} --size 8192 create cs-test ${LOOPDEV} # Measure size of cryptsetup device: dd if=/dev/mapper/cs-test of=/dev/null bs=1b # Tidy up: cryptsetup remove cs-test rm ${KEYFILE} losetup -d ${LOOPDEV} rm ${TMPFILE} exit 0