8c6326f5db
Submitted by: John Lind <john@starfire.MN.ORG>
188 lines
10 KiB
Plaintext
188 lines
10 KiB
Plaintext
FreeBSD
|
|
Using "Mature Technology" (MFM, ESDI) hard drives
|
|
|
|
First, please read and make sure that you understand the "diskspace" FAQ.
|
|
|
|
The term "partition" has become overloaded when referring to an area of a
|
|
hard disk drive. I will use "slice" in this document to refer to an area
|
|
which is a "partition" to DOS FDISK. This usage is consistent with most of
|
|
current FreeBSD. I will use the word "partition" to refer to an area de-
|
|
fined by a FreeBSD disklabel, of which there is one per FreeBSD slice. The
|
|
FreeBSD partitions may contain filesystems, swap space, or be available as
|
|
raw disk devices to applications.
|
|
|
|
This document covers the steps you will need to perform before starting the
|
|
FreeBSD installation and which are specific to these types of disk drives.
|
|
|
|
1 Disk layout planning
|
|
2 Disk installation (may already be done)
|
|
3 Low-level formatting (may or may not be required)
|
|
|
|
If your drive is installed and formatted properly, careful planning is all
|
|
that you need to do.
|
|
|
|
During the installation, there is only one special step that is required.
|
|
This is also one place where the FreeBSD taxonomic convention breaks down
|
|
-- the assignment of slices is called "Partitioning" in the FreeBSD proce-
|
|
dures at the time of this writing. During that step, when you assign the
|
|
FDISK slices, be sure to specify that the bad144 lists should be created
|
|
(the "B" command).
|
|
|
|
1 Disk layout planning
|
|
----------------------
|
|
|
|
To be able to make the right decisions regarding the setup of slices for
|
|
FreeBSD, you need to understand that the initial boot stages for FreeBSD
|
|
rely on the ROM BIOS, but that the ROM BIOS is not used in any way once the
|
|
FreeBSD kernel is loaded. After the kernel is loaded, it uses its own
|
|
driver instead of the BIOS to access the disk.
|
|
|
|
These older disks do not do automatic bad block management. Some con-
|
|
trollers seem to do so, but this is a feature of the ROM BIOS on that con-
|
|
troller, and therefore is not available once FreeBSD is running. Other
|
|
controllers use a different method of bad sector handling (slipping), but
|
|
this feature can also induce translations in the sectoring which will pre-
|
|
vent successful installation. Do not use automatic sector mapping or sec-
|
|
tor slipping, even if it is supported on the controller, for the same rea-
|
|
sons that you cannot use a translated disk geometry.
|
|
|
|
To be able to use these drives, the driver has to be able to substitute
|
|
good sectors for the bad ones. The FreeBSD filesystems assume "perfect"
|
|
disks, so the bad sector handling is done in the driver. The way this is
|
|
done is that a few copies of the list of bad sectors is kept at the end of
|
|
the slice. When a slice is opened, this list is read and kept in the driv-
|
|
er. On every access to the drive, the list is consulted to see if a sub-
|
|
stitute sector, also from the end of the slice, must be used rather than
|
|
the sector that the filesystem or application is actually asking for. This
|
|
list is called the bad144 list, which name comes from a Digital Equipment
|
|
Corporation standard for keeping this information.
|
|
|
|
There are three reasons that you would be required to use more than one
|
|
FreeBSD slice on your disk, and all of them are more probable the larger
|
|
your drive is.
|
|
|
|
1) The FreeBSD portion of your drive will extend beyond cylinder 1023.
|
|
2) The FreeBSD portion of your drive has (or is likely to have) more than
|
|
126 bad sectors.
|
|
3) You need more than 7 filesystems for FreeBSD.
|
|
|
|
It is not sufficient to make sure that the entire boot filesystem is inside
|
|
of cylinder 1024, unless it just so happens that that filesystem occupies a
|
|
flawless part of the disk. To be able to read the bad144 list during the
|
|
boot process (via the ROM BIOS), the end of the slice must be within the
|
|
first 1024 cylinders. There are also some boot managers, e.g. the OS/2
|
|
boot manager, that require a bootable slice to be entirely below cylinder
|
|
1024.
|
|
|
|
The bad144 data format only allows for 126 sectors to be mapped. If your
|
|
drive is large, it could easily have more than this many over its entire
|
|
size. I have a 320 Mb drive which is unusually error-filled, but still
|
|
within acceptable tolerances, and it has this problem (but it also has more
|
|
than 1024 cylinders, so I'd have had to split it, anyway).
|
|
|
|
The FreeBSD disk label has room for 8 partitions. It is not recommended
|
|
that filesystems be placed on partitions b or c, even on non-booted slices,
|
|
so that leaves 6 partitions within each slice which may contain filesys-
|
|
tems. Older versions of FreeBSD did not support filesystems on partition d
|
|
either, but the slice-handling capability has eliminated that restriction.
|
|
It may be best to avoid using partition d if you can for compatibility pur-
|
|
poses. The installation procedures skip from a to e for this reason.
|
|
|
|
2 Disk installation
|
|
-------------------
|
|
|
|
Physical installation is outside the scope of this document. Consult the
|
|
documentation provided by your computer, controller, and disk drive ven-
|
|
dor(s).
|
|
|
|
3 Low-level formatting
|
|
----------------------
|
|
|
|
If you are starting from scratch, you may need to low-level format your
|
|
drive(s). If you have been using your drive with the intended controller
|
|
for DOS or some other system, and will not be changing the physical orien-
|
|
tation of the drive, then you can skip this step. If the drive is new, if
|
|
you are changing the physical orientation of the drive, or it has been used
|
|
with a different controller, you may need to do the low-level format. Be
|
|
aware that some drives have jumpers on them to help compensate for changes
|
|
in physical orientation (horizontal, right side, or left side), but it is
|
|
highly recommended that, if you are changing the physical orientation of
|
|
the drive, you redo the low-level format. The "sag" of the disk head arma-
|
|
ture and other effects of gravity are quite significant at the sizes of the
|
|
bits and tracks on these drives. The greater the capacity of your drive,
|
|
the more critical this becomes. With 10-40Mb MFM drives, you may get away
|
|
with it. Beyond that, you are definitely rolling dice.
|
|
|
|
The MFM drive format is standard, and a drive formatted on one manufacturer
|
|
and model of controller should work just fine on another, but ESDI drive
|
|
formats vary between manufacturers and sometimes even between models. A
|
|
new ESDI drive (yes, they can still be found new in the box, years old), or
|
|
one that has been in use on a different controller or in a different physi-
|
|
cal orientation will definitely require reformatting.
|
|
|
|
As the ESDI specification developed, the ability to put the error map in-
|
|
formation (Manufacturer's Defect List, or MDL) on the drive was added.
|
|
Since it was not known how the drive would be formatted, or even what the
|
|
size of the data part of the sectors would be, each bad spot is expressed
|
|
as bytes from the index and length of the bad area in bits. This informa-
|
|
tion is recorded in a few different cylinders on each track and contains
|
|
only information pertinent to the corresponding head. The most universal
|
|
place for this information is in the last cylinder. Later ESDI drives sup-
|
|
port a "phantom" cylinder at 0xfff (4095) where this information is kept --
|
|
the actual location of this cylinder is beyond the "last" cylinder reported
|
|
for data use. If your drive does not support cylinder 0xfff, or if your
|
|
controller doesn't know how to use it, and if you wish to preserve the man-
|
|
ufacturer's defect list, do not format the last cylinder of your drive.
|
|
The format of the MDL is such that regular data operations will not work on
|
|
a track containing that information.
|
|
|
|
As a further caveat, it as been observed that some controllers hang if the
|
|
MDL area is accessed for data use, while others simply report an error and
|
|
go on with life. You will want to be careful to not include the MDL area
|
|
in any FreeBSD slice, but you will want to be especially careful in case
|
|
your controller is one of those that hangs if you miss.
|
|
|
|
Now that you have decided how much of the drive to format, you can proceed
|
|
with the actual format process. How this is done varies widely from con-
|
|
troller to controller. For most of them, you need to jump into a special
|
|
location in the controller ROM using the DOS DEBUG program. For a few,
|
|
special software is provided on diskette for the controller. Because these
|
|
procedures and the ways to initiate them vary so much, it is outside of the
|
|
scope of this document to describe them. Consult the manufacturer's docu-
|
|
mentation for this procedure.
|
|
|
|
Many of the controllers have the ability to read and use the MDL. Even
|
|
though you cannot use the controller's bad block mapping capability, which
|
|
is supported through the BIOS, it may be beneficial to allow the controller
|
|
to use this information during the format process. When the drive was
|
|
tested at the factory, it was tested at the operating margins, not just op-
|
|
timal conditions. Therefore, there may be entries in the MDL that would be
|
|
missed by a run-of-the-mill data scan. If the controller is permitted to
|
|
use the MDL during formatting, many of them will format the sector with a
|
|
special flag set in the sector preamble to guarantee that that sector will
|
|
show up as bad on a read. This is, in fact, the mechanism that some con-
|
|
trollers use to handle bad sector mapping, though FreeBSD does not use the
|
|
same mechanism. We can take advantage of this feature as a 'round about
|
|
way to get the MDL represented in the bad144 list. Having the sectors
|
|
which contain a bad spot formatted as bad will make certain that you don't
|
|
use a sector where some data patterns may fail even though the initial scan
|
|
passed that sector as OK. Even if the sector doesn't produce hard errors,
|
|
it may cause soft (correctable) errors and time-consuming retries.
|
|
|
|
Finally, FreeBSD
|
|
----------------
|
|
|
|
Having made your careful plans and preparations, you are ready to use
|
|
FreeBSD on your MFM or ESDI disk drive. Don't forget to request bad block
|
|
scanning during the "Partition" slice assignment, and you should be on your
|
|
way to satisfying computing. Be prepared to allow time for the bad block
|
|
scan to take place. Depending on a variety of system parameters, such as
|
|
CPU speed, controller type, disk rotational and seek speeds, and so forth,
|
|
this process will take anywhere from several minutes to hours. If you for-
|
|
get to do the scan, it is likely that the installation will fail trying to
|
|
make the filesystems, and if it should make the filesystems, it will surely
|
|
fail when you start using them.
|
|
|
|
John Lind, Starfire Consulting Services
|
|
E-mail: john@starfire.MN.ORG USnail: PO Box 17247, Mpls MN 55417
|