Issues of hardware compatibility are among the most
troublesome in the computer industry today and FreeBSD is by
no means immune to trouble. In this respect, FreeBSD's
advantage of being able to run on inexpensive commodity PC
hardware is also its liability when it comes to support for
the amazing variety of components on the market. While it
would be impossible to provide a exhaustive listing of
hardware that FreeBSD supports, this section serves as a
catalog of the device drivers included with FreeBSD and the
hardware each drivers supports. Where possible and
appropriate, notes about specific products are included.
You may also want to refer to section in this handbook for
a list of supported devices.
As FreeBSD is a volunteer project without a funded testing
department, we depend on you, the user, for much of the
information contained in this catalog. If you have direct
experience of hardware that does or does not work with
FreeBSD, please let us know by sending e-mail to the &a.doc;.
Questions about supported hardware
should be directed to the &a.questions (see
for more
information). When submitting information or asking a
question, please remember to specify exactly what version of
FreeBSD you are using and include as many details of your
hardware as possible.
* What about backups to floppies? Tape Media
The major tape media are the 4mm, 8mm, QIC, mini-cartridge and
DLT.
4mm (DDS: Digital Data Storage)
4mm tapes are replacing QIC as the workstation backup
media of choice. This trend accelerated greatly when Conner
purchased Archive, a leading manufacturer of QIC drives, and then
stopped production of QIC drives. 4mm drives are small and quiet
but do not have the reputation for reliability that is enjoyed by 8mm drives.
The cartridges are less expensive and smaller (3 x 2 x 0.5
inches, 76 x 51 x 12 mm) than 8mm cartridges. 4mm, like 8mm, has
comparatively short head life for the same reason, both use
helical scan.
Data thruput on these drives starts ~150kB/s, peaking
at ~500kB/s. Data capacity starts at 1.3 GB and ends at 2.0 GB.
Hardware compression, available with most of these drives,
approximately doubles the capacity. Multi-drive tape library
units can have 6 drives in a single cabinet with automatic tape
changing. Library capacities reach 240 GB.
4mm drives, like 8mm drives, use helical-scan. All
the benefits and drawbacks of helical-scan apply to both 4mm and
8mm drives.
Tapes should be retired from use after 2,000 passes or
100 full backups.
8mm (Exabyte)
8mm tapes are the most common SCSI tape drives; they
are the best choice of exchanging tapes. Nearly every site has
an exabyte 2 GB 8mm tape drive. 8mm drives are reliable,
convenient and quiet. Cartridges are inexpensive and small (4.8 x
3.3 x 0.6 inches; 122 x 84 x 15 mm). One downside of 8mm tape is
relatively short head and tape life due to the high rate of
relative motion of the tape across the heads.
Data thruput ranges from ~250kB/s to ~500kB/s. Data
sizes start at 300 MB and go up to 7 GB. Hardware compression,
available with most of these drives, approximately doubles the
capacity. These drives are available as single units or
multi-drive tape libraries with 6 drives and 120 tapes in a
single cabinet. Tapes are changed automatically by the unit.
Library capacities reach 840+ GB.
Data is recorded onto the tape using helical-scan, the
heads are positioned at an angle to the media (approximately 6
degrees). The tape wraps around 270 degrees of the spool that
holds the heads. The spool spins while the tape slides over the
spool. The result is a high density of data and closely packed
tracks that angle across the tape from one edge to the other.
QIC
QIC-150 tapes and drives are, perhaps, the most common
tape drive and media around. QIC tape drives are the least
expensive "serious" backup drives. The downside is the cost of
media. QIC tapes are expensive compared to 8mm or 4mm tapes, up
to 5 times the price per GB data storage. But, if your needs can
be satisfied with a half-dozen tapes, QIC may be the correct
choice. QIC is the most common tape drive. Every site
has a QIC drive of some density or another. Therein lies the
rub, QIC has a large number of densities on physically similar
(sometimes identical) tapes. QIC drives are not quiet. These
drives audibly seek before they begin to record data and are
clearly audible whenever reading, writing or seeking. QIC tapes
measure (6 x 4 x 0.7 inches; 15.2 x 10.2 x 1.7 mm). , which also
use 1/4" wide tape are discussed separately. Tape libraries and
changers are not available.
Data thruput ranges from ~150kB/s to ~500kB/s. Data
capacity ranges from 40 MB to 15 GB. Hardware compression is
available on many of the newer QIC drives. QIC drives are less
frequently installed; they are being supplanted by DAT drives.
Data is recorded onto the tape in tracks. The tracks
run along the long axis of the tape media from one end to the
other. The number of tracks, and therefore the width of a track,
varies with the tape's capacity. Most if not all newer drives
provide backward-compatibility at least for reading (but often
also for writing). QIC has a good reputation regarding the
safety of the data (the mechanics are simpler and more robust
than for helical scan drives).
Tapes should be retired from use after 5,000 backups.
* Mini-Cartridge DLT
DLT has the fastest data transfer rate of all the drive
types listed here. The 1/2" (12.5mm) tape is contained in a
single spool cartridge (4 x 4 x 1 inches; 100 x 100 x 25 mm). The
cartridge has a swinging gate along one entire side of the
cartridge. The drive mechanism opens this gate to extract the
tape leader. The tape leader has an oval hole in it which the
drive uses to "hook" the tape. The take-up spool is located
inside the tape drive. All the other tape cartridges listed here
(9 track tapes are the only exception) have both the supply and
take-up spools located inside the tape cartridge itself.
Data thruput is approximately 1.5MB/s, three times the
thruput of 4mm, 8mm, or QIC tape drives. Data capacities range
from 10GB to 20GB for a single drive. Drives are available in
both multi-tape changers and multi-tape, multi-drive tape
libraries containing from 5 to 900 tapes over 1 to 20 drives,
providing from 50GB to 9TB of storage.
Data is recorded onto the tape in tracks parallel to the
direction of travel (just like QIC tapes). Two tracks are written
at once. Read/write head lifetimes are relatively long; once the
tape stops moving, there is no relative motion between the heads
and the tape.
Using a new tape for the first time
The first time that you try to read or write a new,
completely blank tape, the operation will fail. The console
messages should be similar to:
st0(ncr1:4:0): NOT READY asc:4,1
st0(ncr1:4:0): Logical unit is in process of becoming ready
The tape does not contain an Identifier Block (block number
0). All QIC tape drives since the adoption of QIC-525 standard
write an Identifier Block to the tape. There are two
solutions:
mt fsf 1 causes the tape drive to write an
Identifier Block to the tape.
Use the front panel button to eject the tape.
Re-insert the tape and dump(8) data to the
tape.
dump(8) will report DUMP: End of tape
detected and the console will show: HARDWARE FAILURE
info:280 asc:80,96
rewind the tape using: mt rewind
Subsequent tape operations are successful.
Backup Programs
The three major programs are dump(8),
tar(1), and cpio(1).
Dump and Restore
dump(8) and restore(8) are the
traditional Unix backup programs. They operate on the drive as a
collection of disk blocks, below the abstractions of files, links
and directories that are created by the filesystems.
dump(8) backs up devices, entire filesystems, not parts
of a filesystem and not directory trees that span more than one
filesystem, using either soft links ln(1) or mounting
one filesystem onto another. dump(8) does not write
files and directories to tape, but rather writes the data blocks
that are the building blocks of files and directories.
dump(8) has quirks that remain from its early days in
Version 6 of ATT Unix (circa 1975). The default parameters are
suitable for 9-track tapes (6250 bpi), not the high-density media
available today (up to 62,182 ftpi). These defaults must be
overridden on the command line to utilize the capacity of current
tape drives.
rdump(8) and rrestore(8) backup data
across the network to a tape drive attached to another computer.
Both programs rely upon rcmd(3) and ruserok(3)
to access the remote tape drive. Therefore, the user performing
the backup must have rhosts access to the remote
computer. The arguments to rdump(8) and
rrestore(8) must suitable to use on the remote computer.
(e.g. When rdump'ing from a FreeBSD computer to an
Exabyte tape drive connected to a Sun called komodo, use: /sbin/rdump
0dsbfu 54000 13000 126 komodo:/dev/nrst8 /dev/rsd0a 2>&1)
Beware: there are security implications to allowing
rhosts commands. Evaluate your situation carefully.
Tar
tar(1) also dates back to Version 6 of ATT
Unix (circa 1975). tar(1) operates in cooperation with
the filesystem; tar(1) writes files and directories to
tape. tar(1) does not support the full range of options
that are available from cpio(1), but tar(1)
does not require the unusual command pipeline that
cpio(1) uses.
Most versions of tar(1) do not support backups across the
network. The GNU version of tar(1), which FreeBSD utilizes, supports
remote devices using the same syntax as rdump. To tar(1)
to an Exabyte tape drive connected to a Sun called komodo, use:
/usr/bin/tar cf komodo:/dev/nrst8 . 2>&1.
For versions without remote device support, you can use a pipeline
and rsh(1) to send the
data to a remote tape drive. (XXX add an example command)
Cpio
cpio(1) is the original Unix file interchange
tape program for magnetic media. cpio(1) has options (among
many others) to perform byte-swapping, write a number of
different archives format, and pipe the data to other programs.
This last feature makes cpio(1) and excellent choice for
installation media. cpio(1) does not know how to walk
the directory tree and a list of files must be provided thru STDIN.
cpio(1) does not support backups across the
network. You can use a pipeline and rsh(1) to send the
data to a remote tape drive. (XXX add an example command)
Pax
pax(1) is IEEE/POSIX's answer to tar and
cpio. Over the years the various versions of tar and
cpio have gotten slightly incompatible. So rather than fight it
out to fully standardize them, POSIX created a new archive utility.
pax attempts to read and write many of the various cpio and tar
formats, plus new formats of its own. Its command set more resembles
cpio than tar.
Amanda
(Advanced Maryland Network Disk Archiver) is a
client/server backup system, rather than a single program. An
Amanda server will backup to a single tape drive any number of
computers that have Amanda clients and network communications
with the Amanda server. A common problem at locations with a
number of large disks is the length of time required to backup to
data directly to tape exceeds the amount of time available for
the task. Amanda solves this problem. Amanda can use a "holding
disk" to backup several filesystems at the same time. Amanda
creates "archive sets": a group of tapes used over a period of
time to create full backups of all the filesystems listed in
Amanda's configuration file. The "archive set" also contains
nightly incremental (or differential) backups of all the
filesystems. Restoring a damaged filesystem requires the most
recent full backup and the incremental backups.
The configuration file provides fine control backups
and the network traffic that Amanda generates. Amanda will use
any of the above backup programs to write the data to tape.
Amanda is available as either a port or a package, it is not
installed by default.
Do nothing
"Do nothing" is not a computer program, but it is the
most widely used backup strategy. There are no initial costs.
There is no backup schedule to follow. Just say no. If
something happens to your data, grin and bear it!
If your time and your data is worth little to nothing,
then "Do nothing" is the most suitable backup program for your
computer. But beware, Unix is a useful tool, you may find that
within six months you have a collection of files that are
valuable to you.
"Do nothing" is the correct backup method for
/usr/obj and other directory trees that can be exactly
recreated by your computer. An example is the files that
comprise these handbook pages-they have been generated from
SGML input files. Creating backups of these
HTML files is not necessary. The SGML source
files are backed up regularly.
Which Backup Program is Best?
dump(8)Period. Elizabeth D. Zwicky
torture tested all the backup programs discussed here. The clear
choice for preserving all your data and all the peculiarities of
Unix filesystems is dump(8). Elizabeth created
filesystems containing a large variety of unusual conditions (and
some not so unusual ones) and tested each program by do a backup
and restore of that filesystems. The peculiarities included:
files with holes, files with holes and a block of nulls, files
with funny characters in their names, unreadable and unwritable
files, devices, files that change size during the backup, files
that are created/deleted during the backup and more. She
presented the results at LISA V in Oct. 1991. See
.
Emergency Restore Procedure Before the Disaster
There are only four steps that you need to perform in
preparation for any disaster that may occur.
First, print the disklabel from each of your disks
(e.g. disklabel sd0 | lpr), your filesystem table
(/etc/fstab) and all boot messages, two copies of each.
Second, determine that the boot and fixit floppies
(boot.flp and fixit.flp) have all your devices. The easiest way
to check is to reboot your machine with the boot floppy in the
floppy drive and check the boot messages. If all your devices
are listed and functional, skip on to step three.
Otherwise, you have to create two custom bootable
floppies which has a kernel that can mount your all of your disks
and access your tape drive. These floppies must contain:
fdisk(8), disklabel(8), newfs(8),
mount(8), and whichever backup program you use. These
programs must be statically linked. If you use dump(8),
the floppy must contain restore(8).
Third, create backup tapes regularly.
Any changes that you make after your last backup may be
irretrievably lost. Write-protect the backup tapes.
Fourth, test the floppies (either boot.flp and
fixit.flp or the two custom bootable floppies you made in step
two.) and backup tapes. Make notes of the procedure. Store
these notes with the bootable floppy, the printouts and the
backup tapes. You will be so distraught when restoring that the
notes may prevent you from destroying your backup tapes (How? In
place of tar xvf /dev/rst0, you might accidently type
tar cvf /dev/rst0 and over-write your backup tape).
For an added measure of security, make bootable
floppies and two backup tapes each time. Store one of each at a
remote location. A remote location is NOT the basement of the
same office building. A number of firms in the World Trade Center
learned this lesson the hard way. A remote location should be
physically separated from your computers and disk drives by a
significant distance.
An example script for creating a bootable floppy:
#!/bin/sh
#
# create a restore floppy
#
# format the floppy
#
PATH=/bin:/sbin:/usr/sbin:/usr/bin
fdformat -q fd0
if [ $? -ne 0 ]
then
echo "Bad floppy, please use a new one"
exit 1
fi
# place boot blocks on the floppy
#
disklabel -w -B -b /usr/mdec/fdboot -s /usr/mdec/bootfd /dev/rfd0c fd1440
#
# newfs the one and only partition
#
newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a
#
# mount the new floppy
#
mount /dev/fd0a /mnt
#
# create required directories
#
mkdir /mnt/dev
mkdir /mnt/bin
mkdir /mnt/sbin
mkdir /mnt/etc
mkdir /mnt/root
mkdir /mnt/mnt # for the root partition
mkdir /mnt/tmp
mkdir /mnt/var
#
# populate the directories
#
if [ ! -x /sys/compile/MINI/kernel ]
then
cat << EOM
The MINI kernel does not exist, please create one.
Here is an example config file:
#
# MINI -- A kernel to get FreeBSD on onto a disk.
#
machine "i386"
cpu "I486_CPU"
ident MINI
maxusers 5
options INET # needed for _tcp _icmpstat _ipstat
# _udpstat _tcpstat _udb
options FFS #Berkeley Fast File System
options FAT_CURSOR #block cursor in syscons or pccons
options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device
options NCONS=2 #1 virtual consoles
options USERCONFIG #Allow user configuration with -c XXX
config kernel root on sd0 swap on sd0 and sd1 dumps on sd0
controller isa0
controller pci0
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
disk fd0 at fdc0 drive 0
controller ncr0
controller scbus0
device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
device sd0
device sd1
device sd2
device st0
pseudo-device loop # required by INET
pseudo-device gzip # Exec gzipped a.out's
EOM
exit 1
fi
cp -f /sys/compile/MINI/kernel /mnt
gzip -c -best /sbin/init > /mnt/sbin/init
gzip -c -best /sbin/fsck > /mnt/sbin/fsck
gzip -c -best /sbin/mount > /mnt/sbin/mount
gzip -c -best /sbin/halt > /mnt/sbin/halt
gzip -c -best /sbin/restore > /mnt/sbin/restore
gzip -c -best /bin/sh > /mnt/bin/sh
gzip -c -best /bin/sync > /mnt/bin/sync
cp /root/.profile /mnt/root
cp -f /dev/MAKEDEV /mnt/dev
chmod 755 /mnt/dev/MAKEDEV
chmod 500 /mnt/sbin/init
chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
chmod 555 /mnt/bin/sh /mnt/bin/sync
chmod 6555 /mnt/sbin/restore
#
# create the devices nodes
#
cd /mnt/dev
./MAKEDEV std
./MAKEDEV sd0
./MAKEDEV sd1
./MAKEDEV sd2
./MAKEDEV st0
./MAKEDEV pty0
cd /
#
# create minimum filesystem table
#
cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd <After the Disaster
The key question is: did your hardware survive? You
have been doing regular backups so there is no need to worry
about the software.
If the hardware has been damaged. First, replace
those parts that have been damaged.
If your hardware is okay, check your floppies. If you
are using a custom boot floppy, boot single-user (type "-s" at
the "boot:" prompt). Skip the following paragraph.
If you are using the boot.flp and fixit.flp floppies,
keep reading. Insert the boot.flp floppy in the first floppy drive
and boot the computer. The original install menu will be displayed
on the screen. Select the "Fixit--Repair mode with CDROM or floppy."
option. Insert the fixit.flp when prompted. restore and
the other programs that you need are located in /mnt2/stand.
Recover each filesystem separately.
Try to mount(8) (e.g. mount /dev/sd0a /mnt)
the root partition of your first disk. If the disklabel was
damaged, use disklabel(8) to re-partition and label the
disk to match the label that your printed and saved. Use
newfs(8) to re-create the filesystems. Re-mount the
root partition of the floppy read-write ("mount -u -o rw
/mnt"). Use your backup program and backup tapes to recover
the data for this filesystem (e.g. restore vrf
/dev/st0). Unmount the filesystem (e.g. umount
/mnt) Repeat for each filesystem that was damaged.
Once your system is running, backup your data onto new
tapes. Whatever caused the crash or data loss may strike again.
An another hour spent now, may save you from further distress later.
* I did not prepare for the Disaster, What Now?