Tar can corrupt loop mounted devices

Steven L Baur (steve@miranova.com)
15 Apr 1996 20:47:01 -0700


Apr 15 20:11:14 geordi kernel: EXT2-fs error (device 07:01): ext2_find_entry: bad entry in directory #13: rec_len is smaller than minimal - offset=0, inode=0, rec_len=0, name_len=0
Apr 15 20:11:14 geordi last message repeated 2 times
Apr 15 20:11:36 geordi kernel: EXT2-fs error (device 07:01): ext2_readdir: bad entry in directory #13: rec_len is smaller than minimal - offset=0, inode=0, rec_len=0, name_len=0

The file
ftp://ftp.miranova.com/pub/Linux/boot3M-2.image.gz
can be used to demonstrate this [1.2MB].

# losetup /dev/loop0 boot3M-2.image
# mount /dev/loop0 /x
# dd if=/dev/zero of=boot3M-3.image bs=1k count=3200
# losetup /dev/loop1 boot3M-3.image
# mke2fs -vm 0 /dev/loop1
# mount /dev/loop1 /y

# (cd /x; tar cf - .) | (cd /y; tar xpf -)

e2fsck v1.02 reports that the starting image is clean. The copy
always gets a corrupted ``usr''. cp -a does not display the same
problem. Unmounting the target and running e2fsck can fix it.

Versions:
Linux 1.3.89 (loop compiled as a module w/kerneld)
mount-2.5i
libc-5.3.9
tar 1.11.8
GNU fileutils 3.12
e2fsprogs 1.02

-- 
steve@miranova.com baur
Unsolicited commercial e-mail will be proofread for $250/hour.
Andrea Seastrand: For your vote on the Telecom bill, I will vote for anyone
except you in November.