Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 03 Apr 2000 14:46:14 +0200
From:      Frank Wegmann <wegmann@linguistics.ruhr-uni-bochum.de>
To:        freebsd-scsi@freebsd.org
Subject:   Can't use 4GB 1024b/sec SCSI disk
Message-ID:  <38E89296.78012581@linguistics.ruhr-uni-bochum.de>

next in thread | raw e-mail | index | archive | help
Maybe someone on this list can be of help in this tricky issue.

PROBLEM SUMMARY:
A Seagate ST34371N (4.3GB) at AHA 1542C on a 486 LocalBus host (64MB),
formatted with 1024 bytes per sector can be recognized but not used
under FreeBSD at all--on a (true) NeXTstation it can be used without
problem. Formatted with 512 bytes per sector yields half capacity on
both systems.

DETAILS:
Originally I formatted it low-level with 1024 bytes per sector (for
getting out some more MB) and used it in a NeXT machine as boot disk
for years. Although it should--in theory--be possible to use it 
directly under FreeBSD, this doesn't work at all. Probing the devices
(when invoking sysinstall) leads to:

/kernel: dscheck(rda2): b_bcount 512 is not on a sector boundary (ssize
1024)

At startup, the disk's transliterated geometry plus capacity had been
identified correctly:

da2 at aha0 bus 0 target 4 lun 0
da2: <SEAGATE ST34371N 0338> Fixed Direct Access SCSI-2 device
da2: 3.333MB/s transfers (3.333MHz, offset 8)
da2: 4341MB (4445468 1024 byte sectors: 64H 32S/T 2170C)

This is the physical layout of the drive (by querying it with the help of
the commands READ CAPACITY and MODE SENSE page 3 (format device page) and
page 4 (rigid disk layout page) -- done with a tool on the NeXT):

1024 bytes per sector
  86 sectors per track
  10 tracks per cylinder
5168 cylinder per volume (including spare cylinders)
  62 spare sectors per cylinder
   0 alternate tracks per volume
4445467 usable sectors for the disk

If formatting via sysinstall doesn't work, why not doing the old-fashioned
way (according to 8.2.2 of the Handbook)? This is what I've got:

# dd if=/dev/zero of=/dev/rda2 bs=1k count=1
1+0 records in
1+0 records out
1024 bytes transferred in 0.004346 secs (235618 bytes/sec)
# disklabel -Brw da2 auto
disklabel: /boot/boot2 too large               <-- doh, try the other way:
# disklabel /dev/rda2 | disklabel -BrR da2 /dev/stdin

Put it in a nutshell, I currently cannot use the disk at all, if it is
formatted with 1024 bytes. I tried to reformat it low-level under FreeBSD
with camcontrol, but that doesn't help either.

However, with 512 bytes per sector I can use *half* of the disk. Strangely
enough I then have the same number of physical sectors (4445468), but with
512 bytes per sector I only have 2.1 GB available. At least, it would be
useable under FreeBSD, but surely this is not what I want. Finally, using
the disk with 512 bytes at my NeXT also gives me 2.1 GB (probably, because
that number of sectors is returned on querying the device at the sense mode
level).

With the SCSI knowledge that I have, I'm at my wits end. It seems to me that
FreeBSD refuses to work with the 1024 byte/sec disk because of its uncommon
physical geometry data (nearly all disks in the PC world have 512 bytes/sec).
Might be some tweaks at the driver level could help here. As far as that
halved capacity with 512 bytes/sec is concerned, this could be the drives
fault and perhaps it could be solved by somehow (?) writing the correct
number of sectors into the mode pages.

Could anybody help in this case?

TIA,
Frank


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?38E89296.78012581>