Serious fat + ramdisk/loopback bug

H. Peter Anvin (hpa@freya.yggdrasil.com)
13 Jun 1996 22:25:06 GMT


There seems to be a bad interaction between the FAT filesystem driver
and the ramdisk/loopback drivers. This presumably indicates a buffer
cache problem, possible something having to do with the new buffer
cache code?

Anyway:

--- With ramdisk ---

trantor 206 # uname -a
Linux trantor 2.0.0 #3 Sun Jun 9 11:27:43 PDT 1996 i586
trantor 207 # cat test.img > /dev/ram0
trantor 208 # dd if=3D/dev/ram0 bs=3D64 count=3D1 | mydump
1+0 records in
1+0 records out
00000000: EB 3C 90 27 66 2E 5B 43-49 48 43 00 02 01 01 00 =EB<.'f.[CIHC=
.....
00000010: 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00 .=E0.@.=F0...=
.......
00000020: 00 00 00 00 00 00 29 D9-16 26 37 4E 4F 20 4E 41 ......)=D9.&7=
NO NA
00000030: 4D 45 20 20 20 20 46 41-54 31 32 20 20 20 FA 33 ME FAT12 =
=FA3

trantor 209 # mount -r -t msdos /dev/ram0 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/ram0,
or too many mounted file systems
trantor 210 # dd if=3D/dev/ram0 bs=3D64 count=3D1 | mydump
1+0 records in
1+0 records out
00000000: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .............=
...
00000010: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .............=
...
00000020: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .............=
...
00000030: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .............=
...

--- With loopback device (mount-2.5j) ---

[Note: file test.img is an image of the floppy in /dev/fd0]

trantor 211 #=20
trantor 211 # mount -r -t msdos -o loop test.img /mnt
trantor 212 # ls -l /mnt

<Sound FX: intense seek activity on the hard disk>

total 0
trantor 213 # dd if=3D/dev/loop0 bs=3D64 count=3D1 | mydump
1+0 records in
1+0 records out
00000000: EB 3C 90 27 66 2E 5B 43-49 48 43 00 02 01 01 00 =EB<.'f.[CIHC=
.....
00000010: 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00 .=E0.@.=F0...=
.......
00000020: 00 00 00 00 00 00 29 D9-16 26 37 4E 4F 20 4E 41 ......)=D9.&7=
NO NA
00000030: 4D 45 20 20 20 20 46 41-54 31 32 20 20 20 FA 33 ME FAT12 =
=FA3

trantor 214 # mount -r -t msdos /dev/fd0 /mnt2
trantor 215 # ls -l /mnt2
total 68
drwxr-xr-x 2 root sys 512 Aug 23 1995 driver
-rwxr-xr-x 1 root sys 42873 Aug 14 1995 fasetup.ex_
-rwxr-xr-x 1 root sys 6080 Aug 14 1995 fasmeter.dll
-rwxr-xr-x 1 root sys 7410 Aug 14 1995 readme.txt
drwxr-xr-x 2 root sys 1024 Aug 23 1995 scantool
-rwxr-xr-x 1 root sys 6144 Aug 14 1995 setup.exe
-rwxr-xr-x 1 root sys 3092 Aug 14 1995 setup.inf

trantor 222 # dd if=3D/dev/fd0 bs=3D18x512 count=3D160 | sum
160+0 records in
160+0 records out
39579 1440
trantor 223 # sum test.img=20
39579 1440

Repeating the exercise with an ext2 filesystem image works just fine.

This is a major problem to me, since I have a direct need of using
either of these methods to create DOS filesystem images.

-hpa
--=20
PGP public key available - finger hpa@zytor.com
I don't work for Yggdrasil, but they sponsor the linux.* hierarchy.
"The earth is but one country, and mankind its citizens." -- Bah=E1'u=
'll=E1h
Just Say No to Morden * Save Babylon 5: http://www.babylon5.com/cmp/sup=
port/