I'm following up on my own posting because I now have a script to
reproduce the problem. It sets up a loopback mount and extracts a large
..tar.gz archive there. The archive has to be large for the errors to
show up. I'm using a file of 1Mb which expands to about 4Mb. As you can
see in the log file, the filesystem gets totally corrupted.
-- Dick Streefland //// Tasking Software BV dicks@tasking.nl (@ @) The Netherlands ------------------------oOO--(_)--OOo------------------------ :::::::::::::: loopbug :::::::::::::: #!/bin/shdev=/dev/loop0 img=/tmp/image mnt=/mnt taz=/usr/local/sources/nvi.ALPHA.1.66.tar.gz # 1027870 bytes
dd bs=1k count=8192 if=/dev/zero of=$img losetup $dev $img mke2fs -m0 -q $dev mount $dev $mnt cd $mnt tar xfz $taz cd / umount $mnt fsck -f -y $dev losetup -d $dev rm -f $img :::::::::::::: loopbug.log :::::::::::::: 8192+0 records in 8192+0 records out mke2fs 0.5b, 11-Mar-95 for EXT2 FS 0.5b, 95/08/09 tar: Could not create file nvi.1.66/docs/ev: No such file or directory tar: Could not create file nvi.1.66/docs/features: No such file or directory tar: Could not create directory nvi.1.66/docs/interp: No such file or directory tar: Could not create file nvi.1.66/docs/interp/interp: No such file or directory tar: Could not create file nvi.1.66/docs/interp/spell.ok: No such file or directory tar: Could not create file nvi.1.66/docs/spell.ok: No such file or directory tar: Could not create file nvi.1.66/docs/TODO: No such file or directory tar: Could not create directory nvi.1.66/docs/internals: No such file or directory tar: Could not create file nvi.1.66/docs/internals/gdb.script: No such file or directory tar: Could not create file nvi.1.66/docs/internals/structures: No such file or directory tar: Could not create file nvi.1.66/docs/internals/autowrite: No such file or directory tar: Could not create file nvi.1.66/docs/internals/quoting: No such file or directory tar: Could not create file nvi.1.66/docs/internals/input: No such file or directory tar: Could not create file nvi.1.66/docs/internals/context: No such file or directory tar: Could not create file nvi.1.66/docs/internals/openmode: No such file or directory tar: Could not create file nvi.1.66/docs/internals/cscope.NOTES: No such file or directory tar: Could not create file nvi.1.66/docs/changelog: No such file or directory tar: Could not create directory nvi.1.66/docs/tutorial: No such file or directory tar: Could not create file nvi.1.66/docs/tutorial/vi.advanced: No such file or directory tar: Could not create file nvi.1.66/docs/tutorial/vi.beginner: No such file or directory tar: Could not create file nvi.1.66/docs/tutorial/vi.tut.csh: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/exref: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/exref to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/exref to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/vitut: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/vitut to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/vitut to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/vi.man: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/vi.man to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/vi.man to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/vi.ref: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/vi.ref to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/vi.ref to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/edit: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/edit to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/edit to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc to 755: No such file or directory Parallelizing fsck version 0.5b (11-Mar-95) e2fsck 0.5b, 11-Mar-95 for EXT2 FS 0.5b, 95/08/09 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Directory inode 200, block 0, offset 0: directory corrupted Salvage? yes
Missing '.' in directory inode 200. Fix? yes
Missing '..' in directory inode 200. Fix? yes
Pass 3: Checking directory connectivity '..' in /nvi.1.66/docs (200) is . (0), should be /nvi.1.66 (12). Fix? yes
Unconnected directory inode 201 (/nvi.1.66/docs/???) Connect to /lost+found? yes
Pass 4: Checking reference counts Inode 2 has ref count 3, expecting 4. Set i_nlinks to count? yes
Inode 12 has ref count 21, expecting 20. Set i_nlinks to count? yes
Inode 201 has ref count 8, expecting 7. Set i_nlinks to count? yes
Pass 5: Checking group summary information
/dev/loop0: ***** FILE SYSTEM WAS MODIFIED ***** /dev/loop0: 389/2048 files, 4057/8192 blocks