Subject: Re: fsck and others die with Floating Point exception
To: None <kevin@spef8.spef.syr.ge.com>
From: Ken Nakata <kenn@romulus.rutgers.edu>
List: macbsd-general
Date: 03/11/1995 14:26:46
Date: Fri, 10 Mar 1995 19:10:08 +0500
From: kevin@spef8.spef.syr.ge.com (Kevin Wilson 315-456-1404)
Just an observation, from the sounds of this and other notes going back as
much as a year, many of the people having problems with disk drives have
large drives (1.0 GB or more).
I appended output of disklabel for my drives to this message. One of them
is a 1G drive.
The two prevelent problems appear to be:
[...]
2) From the recent comments, too large a partion comming before the UNIX
partions.
The point: How does Net(Mac)BSD deal with partions?
If ..BSD reads a partion table then keeps track of where a partion is
via number of bytes from start of sector 0 and uses signed 32 bit
arithmetic, then ..BSD will get confused as soon as any part of an
access exceeds 2 GBytes.
This is too brain-damaged a scheme to believe that MacBSD employs (I
just haven't taken a look at the actual code). We have 64-bit file
size, after all. Besides, it does happen on drives of sizes under
2Gig. 1GB is 2^21 512-byte blocks (=hardware sectors), or 2^17
8k-byte blocks (=usual UFS blocks), and none of them seem to be a
boundary causing integer overflow (let's not forget I have a 700M+
partition which contains more than 2^16 8k-byte blocks).
Just my 2 Japanese yen
Ken
-------------------------------------
# /dev/rsd0c:
type: unknown
disk:
label:
flags:
bytes/sector: 512
sectors/track: 77
tracks/cylinder: 15
sectors/cylinder: 1155
cylinders: 1819
rpm: 0
interleave: 0
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize cpg]
a: 443520 40425 4.2BSD 0 0 0 # (Cyl. 35 - 418)
b: 64680 483945 swap # (Cyl. 419 - 474)
c: 2117025 0 unknown # (Cyl. 0 - 1832*)
d: 16080 2100945 unknown # (Cyl. 1819 - 1832*)
e: 40281 144 HFS # (Cyl. 0*- 34*)
g: 1552320 548625 4.2BSD 0 0 0 # (Cyl. 475 - 1818)
# /dev/rsd1c:
type: unknown
disk:
label:
flags:
bytes/sector: 512
sectors/track: 96
tracks/cylinder: 4
sectors/cylinder: 384
cylinders: 2740
rpm: 0
interleave: 0
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize cpg]
a: 645120 407040 4.2BSD 0 0 0 # (Cyl. 1060 - 2739)
b: 82944 324096 swap # (Cyl. 844 - 1059)
c: 1057616 0 unknown # (Cyl. 0 - 2754*)
d: 5456 1052160 HFS # (Cyl. 2740 - 2754*)
e: 323952 144 HFS # (Cyl. 0*- 843*)