[comp.sys.atari.st] GEMDOS / MSDOS Disk Corruption

woodside@ttidca.TTI.COM (George Woodside) (02/16/90)

I've stumbled onto one sure fire way to do this, and thought that I may
not be the only victim. Actually, this doesn't require an MS-DOS
system, just any other computer with a compatible disk structure
(including another ST).

Read or write anything on a disk in an ST. Remove the disk, and put in
the other system. Alter its contents. Put it back in the same drive in
the ST (assuming you have not accessed another disk in the same
ddrive). Write something on it. Poof. Disk corrupted.

Why? Simplicity. I would have kicked myself if I had the agility
required for such acrobatics.

The ST identifies disks via the serial number. When a disk is removed,
or inserted, the ST hardware recognizes that the media "may have
changed". GEMDOS then checks the serial number before accessing the
disk again. If the serial number has not changed, GEMDOS diagnoses the
situation as "same disk", and deems the current buffers to still be
valid. These buffers most likely contain portions of the directory and
FAT. When you write to the disk again, the buffered directory and FAT
are used, rather than re-read them from the disk.

If you are running from the desktop, you can cure this situation with
an ESCAPE in TOS 1.4, since that forces a disk re-read. In older TOS
versions, or most shells, you have to access a different disk, then
re-insert the one you want. Note that if both disks have the same
serial numbers (like all disks formatted on MS-DOS machines do), you
are really out of luck. You'll probably trash both of them.

Is this a bug in GEMDOS? No. The operating system is behaving exactly
according to the specifications. This is a more insidious problem: the
dreaded Operator Error!

Signed,

STUPID in Santa Monica.
-- 
* George R. Woodside - Citicorp/TTI - Santa Monica, CA *
* Path:       woodside@ttidca                          *
*   or:       ..!{philabs|csun|psivax}!ttidca!woodside *