On 12/13/2009 01:45 PM, Alain Knaff wrote:
Mark Hounschell wrote: [...]
All kernels below 2.6.28 work on these boxes. All kernels 2.6.28 and higher do NOT.
2.6.28 was when support for sector "bases" other than 0 or 1 were introduced. So, rather than have sectors numbered from 1 to 18, you can now have sectors numbered from 129 to 146 (as is used by some of the more exotic CP/M formats). This info is stored in some previously unused bits of the "stretch" parameter.
Could it be that on some distributions, "something" is setting this to some spurious value (which got ignored before 2.6.28, but from 2.6.28 got misinterpreted as a non-zero sector base).
Could you try to:
fdformat /dev/fd0u1440
in case you don't have /dev/fd0u1440, you can create it using the following command line:
mknod /dev/fd0u1440 b 2 28
# fdformat /dev/fd0u1440 Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB. Formatting ... done Verifying ... Problem reading cylinder 1, expected 18432, read 2048
then do a getfdprm -o /dev/fd0u1440 (or getfdprm /dev/fd0)
You should get:
2880 18 2 80 0 0x1b 0x00 0xcf 0x6c
The fifth byte (0 here) is the stretch byte. If it contains anything other than 0, this might explain it.
# getfdprm -o /dev/fd0u1440 2880 18 2 80 0 0x1b 0x00 0xcf 0x6c
Another test would be to perform:
fdrawcmd readid 0 repeat=18
on the drive. This gets 18 sector headers, normally you should see all numbers from 1 to 18 as the sector id (byte: 5), but not necessarily in that order. If you see a different range (for instance, from 3 to 20), this might be the explanation.
# fdrawcmd readid 0 repeat=18 0: 0 1: 0 2: 0 3: a 4: 0 5: b 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: c 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: d 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: e 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: f 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 10 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 11 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 12 6: 2 no disk change 0: 0 1: 0 2: 0 3: 9 4: 0 5: 1 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 2 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 3 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 4 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 5 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 6 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 7 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 8 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: 9 6: 2 no disk change 0: 0 1: 0 2: 0 3: a 4: 0 5: a 6: 2 no disk change
Also, could you try superformat instead of fdformat:
superformat /dev/fd0 1440/1440
# superformat /dev/fd0 hd sect=18 Measuring drive 0's raw capacity In order to avoid this time consuming measurement in the future, add the following line to /etc/driveprm: drive0: deviation=-1040 CAUTION: The line is drive and controller specific, so it should be removed before installing a new drive 0 or floppy controller. Verifying cylinder 79, head 1 mformat -s18 -t80 -h2 -S2 -M512 a: Regards Mark