this is a bugreport for linux-2.1.10 (others not yet tested):
"loop mounting of an iso-image on an ext2-filesystem doesn't
work for sparse files".
(sparse means a file containing a block full of nullbytes,
ext2 has the capabilty to store such blocks without using diskspace.)
DETAILS (How to reproduce)
==========================
mkdir looptest
dd if=/dev/zero of=looptest/testfile bs=1024 count=100
echo Hi > looptest/hi
mkisofs looptest >looptest.iso # this is not yet a sparse file
cp looptest.iso looptest-cp.iso # cp knows how to create sparse files!
mount -o loop -t iso9660 looptest-cp.iso /mnt
strace cp /mnt/testfile /dev/null # this shows EIO on first read()
# syslog shows "loop: block 63 not present" and
so on.
strace cat /mnt/hi # even this produces these errors!
# the original file "looptest.iso" works OK; when you copy either image
# to a FAT partition it will work OK (DOS doesn't know about sparse
files)
DIAGNOSIS
=========
linux/drivers/block/loop.c returns an error if it discovers such a
"sparse"
block (because it can't bmap it).
HELP
====
Either document this behaviour or correct it:-)
Sincerly, Gunther