russ@bbx.UUCP (Russ Kepler) (04/21/89)
In article <2121@valhalla.ee.rochester.edu> jal@ee.rochester.edu (John Lefor) writes: >As I recall Compaq DOS 3.31 and DOS 4.x do support disk >partitions bigger than 32Meg. On a similar note Microsoft has admitted to a bug (surprise, surprise) in MS-DOS 4.01. It would seem that accessing a file greater than 32Mb in length in particular patterns would cause 'fata corruption' in the file. For a reference see the April 17 issue of Info World, page 3. Microsoft is offering a patch on its' Compuserve porum and claims that versions shipped after April 7 don't contain the error. I wonder how we are supposed to tell if the version that we get was shipped after April 7th? -- Russ Kepler - Basis International SNAILMAIL: 5901 Jefferson NE, Albuquerque, NM 87109 UUCP: {backboneishsite}!unmvax!bbx!russ PHONE: 505-345-5232
leefi@microsoft.UUCP (Lee Fisher) (04/25/89)
Russ Kepler (russ@bbx.UUCP) writes: ... > On a similar note Microsoft has admitted to a bug (surprise, > surprise) in MS-DOS 4.01. It would seem that accessing a file > greater than 32Mb in length in particular patterns would cause > 'fata corruption' in the file. > > For a reference see the April 17 issue of Info World, page 3. > Microsoft is offering a patch on its' Compuserve porum and claims > that versions shipped after April 7 don't contain the error. I > wonder how we are supposed to tell if the version that we get was > shipped after April 7th? What's "fata corruption"? :-) Yes, a problem was recently found in DOS versions 4.00 and 4.01 which can cause FAT corruption when files that are larger than 32MB in size are appended to. The bug is manifested if each and every of the following occur: 1. BUFFERS (CONFIG.SYS command) are allocated with secondary cache enabled. 2. Greater than 32MB disk partition is in effect. 3. The user is sequentially accessing a file and any part of that file falls within the range of 32MB to 32MB + 10K on the disk, and the portion of the file being accessed falls between that same narrow range. 4. Immediately after sequentially accessing this file, the user performs an operation that causes the system to read a FAT (file allocation table) sector. If all of these conditions are true, the result is a corruption of the FAT (and loss of data). The chance of all of the above occuring in the sequence described is remote. Microsoft has provided a patch utility that corrects this problem. The name of the utility is PATCH.EXE. A description file, READ.ME, is included to provide instruction on how to use the PATCH.EXE program. These two files have been archived into the archived file DSPTCH.ARC. This archive is available in various information services, such as Microsoft OnLine and Compuserve. The patch, has a /F switch (ala CHKDSK), which will allow the actual patch to occur. Otherwise, it will not modify the DOS system file. If this switch is not used, PATCH.EXE will examine the boot disk and determine if the system needs to be patched. The system should be rebooted after the patch occurs. I've just submitted this file to the comp.binaries.ibm.pc newsgroup (via ibmpc-binaries@bsu-cs.bsu.edu); I don't have any idea about when this will be queued for distribution. Oh, while I'm at it, I'd like to clarify a statement made in an earlier message on this topic by Rahul Dhesi (dhesi@bsu-cs.UUCP): > I understand that >32 meg partitions use 32-bit FAT entries > instead of 12 or 16 bit entries. The >32MB partition type, new to DOS 4.0, is partition type 6. The size of the FAT of one of these partitions is still 16 bits -- *not* 32 bits. For such large partitions, the normal BPB's total sector WORD is 0, but the extended BPB's total sector DWORD contains the actual value. The block disk device driver (in IO.SYS) in previous DOS versions was limited to accessing 32MB because of the 16-bit starting sector number in the Request Header. Access to partition 6 in DOS 4.0 takes place via extended device drivers. These extended drivers differ from previous versions in their ability to support 32 bit sector numbers. A new device attribute bit was added to indicate that the device can process a 32 bit sector. For DOS 4.0, the word value for starting sector was changed to a double word (32 bits). This was done by adding a DWORD field to the end of the request packet. Information on how the device driver interface has changed for this new large partititon type is covered in the "Microsoft MS-DOS 4.00 Programer's Reference" as well as the "IBM PC-DOS 4.00 Technical Reference". -- Lee Fisher, leefi@microsoft.com.UUCP, leefi%microsoft@uw-beaver.MIL, {uw-beaver,decvax,decwrl,intelca,sun,tikal,uunet}!microsoft!leefi Don't blame my employer for any of this, its all my opinion.