2011-03-27 17:16:43

by Thomas Siedlich

[permalink] [raw]
Subject: loop-aes: It is not longer possible to create a filesystem on an encrypted DVD-RAM

Hi!

I try to format a loop-aes encrypted DVD-RAM in /dev/sr0 with mke2fs.

,----[command line]
| eagle:~# losetup -v -e AES256 -K ./key.gpg /dev/loop2 /dev/sr0
| Password:
| eagle:~# losetup /dev/loop2
| /dev/loop2: [000b]:985 (/dev/sr0) encryption=AES256 multi-key-v3
| eagle:~# mke2fs -K -N 2048 -m 0 -b 4096 -v /dev/loop2
| mke2fs 1.41.12 (17-May-2010)
| fs_types for mke2fs.conf resolution: 'ext2', 'default'
| Filesystem label=
| OS type: Linux
| Block size=4096 (log=2)
| Fragment size=4096 (log=2)
| Stride=0 blocks, Stripe width=0 blocks
| 2240 inodes, 1118352 blocks
| 0 blocks (0.00%) reserved for the super user
| First data block=0
| Maximum filesystem blocks=1149239296
| 35 block groups
| 32768 blocks per group, 32768 fragments per group
| 64 inodes per group
| Superblock backups stored on blocks:
| 32768, 98304, 163840, 229376, 294912, 819200, 884736
|
| Writing inode tables: done
| Writing superblocks and filesystem accounting information: done
|
| This filesystem will be automatically checked every 29 mounts or
| 180 days, whichever comes first. Use tune2fs -c or -i to override.
| eagle:~# echo $?
| 0
| eagle:~#
`----


After the successfull mke2fs run ($? = 0) I have got this error message
in syslog:

,----[/var/log/syslog]
| Mar 27 15:29:27 eagle kernel: loop2: loop_end_io_transfer err=-95 bi_rw=0x461
| Mar 27 15:29:27 eagle kernel: Buffer I/O error on device loop2, logical block 0
| Mar 27 15:29:27 eagle kernel: lost page write due to I/O error on loop2
| Mar 27 15:29:27 eagle kernel: loop2: loop_end_io_transfer err=-95 bi_rw=0x20
| Mar 27 15:29:27 eagle kernel: Buffer I/O error on device loop2, logical block 0
`----


And I'm not able to mount the freshly created file system:

,----[command line]
| eagle:~# mount -text2 /dev/loop2 /media/backup/
| mount: wrong fs type, bad option, bad superblock on /dev/loop2,
| missing codepage or helper program, or other error
| In some cases useful info is found in syslog - try
| dmesg | tail or so
|
| eagle:~#
`----

,----[/var/log/syslog]
| Mar 27 15:30:40 eagle kernel: EXT2-fs (loop2): error: can't find an ext2 filesystem on dev loop2.
`----


Do I the same without encryption this means:

,----[command line]
| eagle:~# mke2fs -K -N 2048 -m 0 -b 4096 -v /dev/sr0
| mke2fs 1.41.12 (17-May-2010)
| /dev/sr0 is entire device, not just one partition!
| Proceed anyway? (y,n) y
| fs_types for mke2fs.conf resolution: 'ext2', 'default'
| Filesystem label=
| OS type: Linux
| Block size=4096 (log=2)
| Fragment size=4096 (log=2)
| Stride=0 blocks, Stripe width=0 blocks
| 2240 inodes, 1118352 blocks
| 0 blocks (0.00%) reserved for the super user
| First data block=0
| Maximum filesystem blocks=1149239296
| 35 block groups
| 32768 blocks per group, 32768 fragments per group
| 64 inodes per group
| Superblock backups stored on blocks:
| 32768, 98304, 163840, 229376, 294912, 819200, 884736
|
| Writing inode tables: done
| Writing superblocks and filesystem accounting information: done
|
| This filesystem will be automatically checked every 30 mounts or
| 180 days, whichever comes first. Use tune2fs -c or -i to override.
| eagle:~# mount -text2 /dev/sr0 /media/backup/
| eagle:~#
`----

It just works fine but unencrypted :-(.

I guess it is a problem with loop-aes. Have someone an idea how I
can track this down or has someone seen this already?

My recipe above did work two years ago. I have a couple of working
formatted DVD-RAM from this time. Only e2fsck doesn't work any longer
in fact with the same behavior as mke2fs above this means $? = 0 and
the same errors in /var/log/syslog.

Thanks for help
Thomas






2011-03-28 06:56:55

by Jari Ruusu

[permalink] [raw]
Subject: Re: loop-aes: It is not longer possible to create a filesystem on an encrypted DVD-RAM

Thomas Siedlich wrote:
> I try to format a loop-aes encrypted DVD-RAM in /dev/sr0 with mke2fs.

What loop-AES version are you using?

What kernel version are you using?

> ,----[/var/log/syslog]
> | Mar 27 15:29:27 eagle kernel: loop2: loop_end_io_transfer err=-95 bi_rw=0x461

Backing device returned EOPNOTSUPP (Operation not supported on transport
endpoint) error for a write. Interpreting rest of bi_rw bits depends on
kernel version. For 2.6.38 kernel bi_rw means: "metadata io request",
"request to discard sectors", and "This bio has already been subjected to
throttling rules. Don't do it again"

> | Mar 27 15:29:27 eagle kernel: Buffer I/O error on device loop2, logical block 0
> | Mar 27 15:29:27 eagle kernel: lost page write due to I/O error on loop2

Somehow EOPNOTSUPP error got interpreted as I/O error and/or write was not
retried with bi_rw bits cleared that backing device do not support.

> | Mar 27 15:29:27 eagle kernel: loop2: loop_end_io_transfer err=-95 bi_rw=0x20
> | Mar 27 15:29:27 eagle kernel: Buffer I/O error on device loop2, logical block 0

Backing device returned EOPNOTSUPP error for a read. Interpreting rest of
bi_rw bits depends on kernel version. For 2.6.38 kernel bi_rw means:
"metadata io request".

> It just works fine but unencrypted :-(.

As a temporary workaround, you can create unencrypted file system and then
encrypt it in-place using aespipe tool.

--
Jari Ruusu 1024R/3A220F51 5B 4B F9 BB D3 3F 52 E9 DB 1D EB E3 24 0E A9 DD