The content from these files was migrated to disks/chapter.sgml a while ago.
These files are now only confusing committers with their presence, so hide them in the Attic.
This commit is contained in:
parent
01f0956493
commit
4df660a50e
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=17096
2 changed files with 0 additions and 876 deletions
|
@ -1,15 +0,0 @@
|
|||
#
|
||||
# Build the Handbook with just the content from this chapter.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
CHAPTERS= backups/chapter.sgml
|
||||
|
||||
VPATH= ..
|
||||
|
||||
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../../..
|
||||
|
||||
.include "../Makefile"
|
|
@ -1,861 +0,0 @@
|
|||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
<chapter id="backups">
|
||||
<title>Backups</title>
|
||||
|
||||
<sect1 id="backups-synopsis">
|
||||
<title>Synopsis</title>
|
||||
|
||||
<para>The following chapter will cover methods of backing up data, and
|
||||
the programs used to create those backups.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="backups-tapebackups">
|
||||
<title>Tape Media</title>
|
||||
|
||||
<indexterm><primary>tape media</primary></indexterm>
|
||||
<para>The major tape media are the 4mm, 8mm, QIC, mini-cartridge and
|
||||
DLT.</para>
|
||||
|
||||
<sect2 id="backups-tapebackups-4mm">
|
||||
<title>4mm (DDS: Digital Data Storage)</title>
|
||||
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>DDS (4mm) tapes</secondary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>QIC tapes</secondary>
|
||||
</indexterm>
|
||||
<para>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.</para>
|
||||
|
||||
<para>Data throughput 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.</para>
|
||||
|
||||
<para>The DDS-3 standard now supports tape capacities up to 12 GB (or
|
||||
24 GB compressed).</para>
|
||||
|
||||
<para>4mm drives, like 8mm drives, use helical-scan. All the benefits
|
||||
and drawbacks of helical-scan apply to both 4mm and 8mm drives.</para>
|
||||
|
||||
<para>Tapes should be retired from use after 2,000 passes or 100 full
|
||||
backups.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="backups-tapebackups-8mm">
|
||||
<title>8mm (Exabyte)</title>
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>Exabyte (8mm) tapes</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Data throughput 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.</para>
|
||||
|
||||
<para>The Exabyte <quote>Mammoth</quote> model supports 12 GB on one tape
|
||||
(24 GB with compression) and costs approximately twice as much as
|
||||
conventional tape drives.</para>
|
||||
|
||||
<para>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.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="backups-tapebackups-qic">
|
||||
<title>QIC</title>
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>QIC-150</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>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
|
||||
<emphasis>most</emphasis> 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). <link
|
||||
linkend="backups-tapebackups-mini">Mini-cartridges</link>, which
|
||||
also use 1/4" wide tape are discussed separately. Tape libraries and
|
||||
changers are not available.</para>
|
||||
|
||||
<para>Data throughput 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.</para>
|
||||
|
||||
<para>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).</para>
|
||||
|
||||
<para>Tapes should be retired from use after 5,000 backups.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="backups-tapebackups-mini">
|
||||
<title>XXX* Mini-Cartridge</title>
|
||||
|
||||
<para></para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="backups-tapebackups-dlt">
|
||||
<title>DLT</title>
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>DLT</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Data throughput is approximately 1.5MB/s, three times the throughput of
|
||||
4mm, 8mm, or QIC tape drives. Data capacities range from 10 GB to 20 GB
|
||||
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 50 GB to 9 TB of
|
||||
storage.</para>
|
||||
|
||||
<para>With compression, DLT Type IV format supports up to 70 GB
|
||||
capacity.</para>
|
||||
|
||||
<para>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.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title id="backups-tapebackups-ait">AIT</title>
|
||||
<indexterm>
|
||||
<primary>tape media</primary>
|
||||
<secondary>AIT</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>AIT is a new format from Sony, and can hold up to 50 GB (with
|
||||
compression) per tape. The tapes contain memory chips which retain an
|
||||
index of the tape's contents. This index can be rapidly read by the
|
||||
tape drive to determine the position of files on the tape, instead of
|
||||
the several minutes that would be required for other tapes. Software
|
||||
such as SAMS:Alexandria can operate forty or more AIT tape libraries,
|
||||
communicating directly with the tape's memory chip to display the
|
||||
contents on screen, determine what files were backed up to which
|
||||
tape, locate the correct tape, load it, and restore the data from the
|
||||
tape.</para>
|
||||
|
||||
<para>Libraries like this cost in the region of $20,000, pricing them a
|
||||
little out of the hobbyist market.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Using a New Tape for the First Time</title>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen>sa0(ncr1:4:0): NOT READY asc:4,1
|
||||
sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<para><command>mt fsf 1</command> causes the tape drive to write an
|
||||
Identifier Block to the tape.</para>
|
||||
|
||||
<para>Use the front panel button to eject the tape.</para>
|
||||
|
||||
<para>Re-insert the tape and <command>dump</command> data to the tape.</para>
|
||||
|
||||
<para><command>dump</command> will report <literal>DUMP: End of tape
|
||||
detected</literal> and the console will show: <literal>HARDWARE
|
||||
FAILURE info:280 asc:80,96</literal>.</para>
|
||||
|
||||
<para>rewind the tape using: <command>mt rewind</command>.</para>
|
||||
|
||||
<para>Subsequent tape operations are successful.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="backup-programs">
|
||||
<title>Backup Programs</title>
|
||||
<indexterm><primary>backup software</primary></indexterm>
|
||||
|
||||
<para>The three major programs are
|
||||
&man.dump.8;,
|
||||
&man.tar.1;,
|
||||
and
|
||||
&man.cpio.1;.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Dump and Restore</title>
|
||||
<indexterm>
|
||||
<primary>backup software</primary>
|
||||
<secondary>dump / restore</secondary>
|
||||
</indexterm>
|
||||
<indexterm><primary><command>dump</command></primary></indexterm>
|
||||
<indexterm><primary><command>restore</command></primary></indexterm>
|
||||
|
||||
<para>The traditional Unix backup programs are
|
||||
<command>dump</command> and <command>restore</command>. 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. <command>dump</command> backs up an entire
|
||||
filesystem on a device. It is unable to backup only part of a
|
||||
filesystem or a directory tree that spans more than one
|
||||
filesystem. <command>dump</command> does not write files and
|
||||
directories to tape, but rather writes the raw data blocks that
|
||||
comprise files and directories.</para>
|
||||
|
||||
<note><para>If you use <command>dump</command> on your root directory, you
|
||||
would not back up <filename>/home</filename>,
|
||||
<filename>/usr</filename> or many other directories since
|
||||
these are typically mount points for other filesystems or
|
||||
symbolic links into those filesystems.</para></note>
|
||||
|
||||
<para><command>dump</command>has quirks that remain from its early days in
|
||||
Version 6 of AT&T 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.</para>
|
||||
|
||||
<indexterm><primary><filename>rhosts</filename></primary></indexterm>
|
||||
<para>It is also possible to backup data across the network to a
|
||||
tape drive attached to another computer with <command>rdump</command> and
|
||||
<command>rrestore</command>. Both programs rely upon <command>rcmd</command> and
|
||||
<command>ruserok</command> to access the remote tape drive. Therefore,
|
||||
the user performing the backup must have
|
||||
<literal>rhosts</literal> access to the remote computer. The
|
||||
arguments to <command>rdump</command> and <command>rrestore</command> must be suitable
|
||||
to use on the remote computer. (e.g. When
|
||||
<command>rdump</command>ing from a FreeBSD computer to an
|
||||
Exabyte tape drive connected to a Sun called
|
||||
<hostid>komodo</hostid>, use: <command>/sbin/rdump 0dsbfu
|
||||
54000 13000 126 komodo:/dev/nrsa8 /dev/rda0a
|
||||
2>&1</command>) Beware: there are security implications to
|
||||
allowing <literal>rhosts</literal> commands. Evaluate your
|
||||
situation carefully.</para>
|
||||
|
||||
<para>It is also possible to use <command>rdump</command> and
|
||||
<command>rrestore</command> in a more secure fashion over
|
||||
<command>ssh</command>.</para>
|
||||
|
||||
<example>
|
||||
<title>Using <command>rdump</command> over <application>ssh</application></title>
|
||||
|
||||
<screen>&prompt.root; <userinput>/sbin/dump -0uan -f - /usr | gzip -2 | ssh1 -c blowfish \
|
||||
targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz</userinput></screen>
|
||||
|
||||
</example>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title><command>tar</command></title>
|
||||
<indexterm>
|
||||
<primary>backup software</primary>
|
||||
<secondary><command>tar</command></secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>&man.tar.1; also dates back to Version 6 of AT&T Unix
|
||||
(circa 1975). <command>tar</command> operates in cooperation
|
||||
with the filesystem; <command>tar</command> writes files and
|
||||
directories to tape. <command>tar</command> does not support the
|
||||
full range of options that are available from &man.cpio.1;, but
|
||||
<command>tar</command> does not require the unusual command
|
||||
pipeline that <command>cpio</command> uses.</para>
|
||||
|
||||
<indexterm><primary><command>tar</command></primary></indexterm>
|
||||
<para>Most versions of <command>tar</command> do not support
|
||||
backups across the network. The GNU version of
|
||||
<command>tar</command>, which FreeBSD utilizes, supports remote
|
||||
devices using the same syntax as <command>rdump</command>. To
|
||||
<command>tar</command> to an Exabyte tape drive connected to a
|
||||
Sun called <hostid>komodo</hostid>, use: <command>/usr/bin/tar
|
||||
cf komodo:/dev/nrsa8 . 2>&1</command>. For versions without
|
||||
remote device support, you can use a pipeline and
|
||||
<command>rsh</command> to send the data to a remote tape
|
||||
drive.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>tar cf - . | rsh <replaceable>hostname</replaceable> dd of=<replaceable>tape-device</replaceable> obs=20b</userinput></screen>
|
||||
|
||||
<para>If you are worried about the security of backing up over a
|
||||
network you should use the <command>ssh</command> command
|
||||
instead of <command>rsh</command>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title><command>cpio</command></title>
|
||||
<indexterm>
|
||||
<primary>backup software</primary>
|
||||
<secondary><command>cpio</command></secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>&man.cpio.1; is the original Unix file interchange tape
|
||||
program for magnetic media. <command>cpio</command> has options
|
||||
(among many others) to perform byte-swapping, write a number of
|
||||
different archive formats, and pipe the data to other programs.
|
||||
This last feature makes <command>cpio</command> and excellent
|
||||
choice for installation media. <command>cpio</command> does not
|
||||
know how to walk the directory tree and a list of files must be
|
||||
provided through <filename>stdin</filename>.</para>
|
||||
<indexterm><primary><command>cpio</command></primary></indexterm>
|
||||
|
||||
<para><command>cpio</command> does not support backups across
|
||||
the network. You can use a pipeline and <command>rsh</command>
|
||||
to send the data to a remote tape drive.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>for f in <replaceable>directory_list; do</replaceable></userinput>
|
||||
<userinput>find $f >> backup.list</userinput>
|
||||
<userinput>done</userinput>
|
||||
&prompt.root; <userinput>cpio -v -o --format=newc < backup.list | ssh <replaceable>user</replaceable>@<replaceable>host</replaceable> "cat > <replaceable>backup_device</replaceable></userinput></screen>
|
||||
|
||||
<para>Where <replaceable>directory_list</replaceable> is the list of
|
||||
directories you want to back up,
|
||||
<replaceable>user</replaceable>@<replaceable>host</replaceable> is the
|
||||
user/hostname combination that will be performing the backups, and
|
||||
<replaceable>backup_device</replaceable> is where the backups should
|
||||
be written to (e.g., <filename>/dev/nrsa0</filename>).</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title><command>pax</command></title>
|
||||
<indexterm>
|
||||
<primary>backup software</primary>
|
||||
<secondary><command>pax</command></secondary>
|
||||
</indexterm>
|
||||
<indexterm><primary><command>pax</command></primary></indexterm>
|
||||
<indexterm><primary>POSIX</primary></indexterm>
|
||||
<indexterm><primary>IEEE</primary></indexterm>
|
||||
|
||||
<para>&man.pax.1; is IEEE/POSIX's answer to
|
||||
<command>tar</command> and <command>cpio</command>. Over the
|
||||
years the various versions of <command>tar</command> and
|
||||
<command>cpio</command> have gotten slightly incompatible. So
|
||||
rather than fight it out to fully standardize them, POSIX
|
||||
created a new archive utility. <command>pax</command> attempts
|
||||
to read and write many of the various <command>cpio</command>
|
||||
and <command>tar</command> formats, plus new formats of its own.
|
||||
Its command set more resembles <command>cpio</command> than
|
||||
<command>tar</command>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="backups-programs-amanda">
|
||||
<title><application>Amanda</application></title>
|
||||
<indexterm>
|
||||
<primary>backup software</primary>
|
||||
<secondary><application>Amanda</application></secondary>
|
||||
</indexterm>
|
||||
<indexterm><primary><application>Amanda</application></primary></indexterm>
|
||||
|
||||
<!-- Remove link until <port> tag is available -->
|
||||
<para><application>Amanda</application> (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 a network connection to the Amanda server. A
|
||||
common problem at sites with a number of large disks is
|
||||
that 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.</para>
|
||||
|
||||
<para>The configuration file provides fine control of 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.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Do Nothing</title>
|
||||
|
||||
<para><quote>Do nothing</quote> 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!</para>
|
||||
|
||||
<para>If your time and your data is worth little to nothing, then
|
||||
<quote>Do nothing</quote> 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.</para>
|
||||
|
||||
<para><quote>Do nothing</quote> is the correct backup method for
|
||||
<filename>/usr/obj</filename> and other directory trees that can be
|
||||
exactly recreated by your computer. Some examples are the files that
|
||||
comprise the HTML or PostScript version of this Handbook.
|
||||
These document formats have been created from SGML input
|
||||
files. Creating backups of the HTML or PostScript files is
|
||||
not necessary. The SGML files are backed up regularly.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Which Backup Program Is Best?</title>
|
||||
<indexterm>
|
||||
<primary>LISA</primary>
|
||||
</indexterm>
|
||||
|
||||
<para>&man.dump.8; <emphasis>Period.</emphasis> 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 <command>dump</command>. Elizabeth created filesystems containing
|
||||
a large variety of unusual conditions (and some not so unusual ones)
|
||||
and tested each program by doing a backup and restore of those
|
||||
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 <ulink
|
||||
url="http://berdmann.dyndns.org/zwicky/testdump.doc.html">torture-testing
|
||||
Backup and Archive Programs</ulink>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Emergency Restore Procedure</title>
|
||||
|
||||
<sect3>
|
||||
<title>Before the Disaster</title>
|
||||
|
||||
<para>There are only four steps that you need to perform in
|
||||
preparation for any disaster that may occur.</para>
|
||||
<indexterm>
|
||||
<primary><command>disklabel</command></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>First, print the disklabel from each of your disks
|
||||
(<command>e.g. disklabel da0 | lpr</command>), your filesystem table
|
||||
(<filename>/etc/fstab</filename>) and all boot messages,
|
||||
two copies of
|
||||
each.</para>
|
||||
|
||||
<indexterm><primary>fix-it floppies</primary></indexterm>
|
||||
<para>Second, determine that the boot and fix-it floppies
|
||||
(<filename>boot.flp</filename> and <filename>fixit.flp</filename>)
|
||||
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.</para>
|
||||
|
||||
<para>Otherwise, you have to create two custom bootable
|
||||
floppies which have a kernel that can mount all of your disks
|
||||
and access your tape drive. These floppies must contain:
|
||||
<command>fdisk</command>, <command>disklabel</command>,
|
||||
<command>newfs</command>, <command>mount</command>, and
|
||||
whichever backup program you use. These programs must be
|
||||
statically linked. If you use <command>dump</command>, the
|
||||
floppy must contain <command>restore</command>.</para>
|
||||
|
||||
<para>Third, create backup tapes regularly. Any changes that you make
|
||||
after your last backup may be irretrievably lost. Write-protect the
|
||||
backup tapes.</para>
|
||||
|
||||
<para>Fourth, test the floppies (either <filename>boot.flp</filename>
|
||||
and <filename>fixit.flp</filename> 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 <command>tar xvf /dev/rsa0</command>, you
|
||||
might accidentally type <command>tar cvf /dev/rsa0</command> and
|
||||
over-write your backup tape).</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<example>
|
||||
<title>A Script for Creating a Bootable Floppy</title>
|
||||
|
||||
<programlisting><![ CDATA [#!/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 /dev/fd0c fd1440
|
||||
|
||||
#
|
||||
# newfs the one and only partition
|
||||
#
|
||||
newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/fd0a
|
||||
|
||||
#
|
||||
# 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 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 da0 swap on da0 and da1 dumps on da0
|
||||
|
||||
device isa0
|
||||
device pci0
|
||||
|
||||
device fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
|
||||
device fd0 at fdc0 drive 0
|
||||
|
||||
device ncr0
|
||||
|
||||
device 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 da0
|
||||
device da1
|
||||
device da2
|
||||
|
||||
device sa0
|
||||
|
||||
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 da0
|
||||
./MAKEDEV da1
|
||||
./MAKEDEV da2
|
||||
./MAKEDEV sa0
|
||||
./MAKEDEV pty0
|
||||
cd /
|
||||
|
||||
#
|
||||
# create minimum filesystem table
|
||||
#
|
||||
cat > /mnt/etc/fstab <<EOM
|
||||
/dev/fd0a / ufs rw 1 1
|
||||
EOM
|
||||
|
||||
#
|
||||
# create minimum passwd file
|
||||
#
|
||||
cat > /mnt/etc/passwd <<EOM
|
||||
root:*:0:0:Charlie &:/root:/bin/sh
|
||||
EOM
|
||||
|
||||
cat > /mnt/etc/master.passwd <<EOM
|
||||
root::0:0::0:0:Charlie &:/root:/bin/sh
|
||||
EOM
|
||||
|
||||
chmod 600 /mnt/etc/master.passwd
|
||||
chmod 644 /mnt/etc/passwd
|
||||
/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd
|
||||
|
||||
#
|
||||
# umount the floppy and inform the user
|
||||
#
|
||||
/sbin/umount /mnt
|
||||
echo "The floppy has been unmounted and is now ready."]]></programlisting>
|
||||
|
||||
</example>
|
||||
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>After the Disaster</title>
|
||||
|
||||
<para>The key question is: did your hardware survive? You have been
|
||||
doing regular backups so there is no need to worry about the
|
||||
software.</para>
|
||||
|
||||
<para>If the hardware has been damaged. First, replace those parts
|
||||
that have been damaged.</para>
|
||||
|
||||
<para>If your hardware is okay, check your floppies. If you are using
|
||||
a custom boot floppy, boot single-user (type <literal>-s</literal>
|
||||
at the <prompt>boot:</prompt> prompt). Skip the following
|
||||
paragraph.</para>
|
||||
|
||||
<para>If you are using the <filename>boot.flp</filename> and
|
||||
<filename>fixit.flp</filename> floppies, keep reading. Insert the
|
||||
<filename>boot.flp</filename> floppy in the first floppy drive and
|
||||
boot the computer. The original install menu will be displayed on
|
||||
the screen. Select the <literal>Fixit--Repair mode with CDROM or
|
||||
floppy.</literal> option. Insert the
|
||||
<filename>fixit.flp</filename> when prompted.
|
||||
<command>restore</command> and the other programs that you need are
|
||||
located in <filename>/mnt2/stand</filename>.</para>
|
||||
|
||||
<para>Recover each filesystem separately.</para>
|
||||
|
||||
<indexterm>
|
||||
<primary><command>mount</command></primary>
|
||||
</indexterm>
|
||||
<indexterm><primary>root partition</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary><command>disklabel</command></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary><command>newfs</command></primary>
|
||||
</indexterm>
|
||||
<para>Try to <command>mount</command> (e.g. <command>mount /dev/da0a
|
||||
/mnt</command>) the root partition of your first disk. If the
|
||||
disklabel was damaged, use <command>disklabel</command> to re-partition and
|
||||
label the disk to match the label that you printed and saved. Use
|
||||
<command>newfs</command> to re-create the filesystems. Re-mount the root
|
||||
partition of the floppy read-write (<command>mount -u -o rw
|
||||
/mnt</command>). Use your backup program and backup tapes to
|
||||
recover the data for this filesystem (e.g. <command>restore vrf
|
||||
/dev/sa0</command>). Unmount the filesystem (e.g. <command>umount
|
||||
/mnt</command>) Repeat for each filesystem that was
|
||||
damaged.</para>
|
||||
|
||||
<para>Once your system is running, backup your data onto new tapes.
|
||||
Whatever caused the crash or data loss may strike again. Another
|
||||
hour spent now may save you from further distress later.</para>
|
||||
</sect3>
|
||||
|
||||
<![ %not.published; [
|
||||
|
||||
<sect3>
|
||||
<title>* I did not prepare for the Disaster, What Now?</title>
|
||||
|
||||
<para></para>
|
||||
</sect3>
|
||||
]]>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="backups-floppybackups">
|
||||
<title>What About Backups to Floppies?</title>
|
||||
|
||||
<sect2 id="floppies-using">
|
||||
<title>Can I Use floppies for Backing Up My Data?</title>
|
||||
<indexterm><primary>backup floppies</primary></indexterm>
|
||||
<indexterm><primary>floppy disks</primary></indexterm>
|
||||
|
||||
<para>Floppy disks are not really a suitable media for
|
||||
making backups as:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>The media is unreliable, especially over long periods of
|
||||
time</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Backing up and restoring is very slow</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>They have a very limited capacity (the days of backing up
|
||||
an entire hard disk onto a dozen or so floppies has long since
|
||||
passed).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>However, if you have no other method of backing up your data then
|
||||
floppy disks are better than no backup at all.</para>
|
||||
|
||||
<para>If you do have to use floppy disks then ensure that you use good
|
||||
quality ones. Floppies that have been lying around the office for a
|
||||
couple of years are a bad choice. Ideally use new ones from a
|
||||
reputable manufacturer.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="floppies-creating">
|
||||
<title>So How Do I Backup My Data to Floppies?</title>
|
||||
|
||||
<para>The best way to backup to floppy disk is to use
|
||||
<command>tar</command> with the <option>-M</option> (multi
|
||||
volume) option, which allows backups to span multiple
|
||||
floppies.</para>
|
||||
|
||||
<para>To backup all the files in the current directory and sub-directory
|
||||
use this (as <username>root</username>):</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>tar Mcvf /dev/fd0 *</userinput></screen>
|
||||
|
||||
<para>When the first floppy is full <command>tar</command> will prompt you to
|
||||
insert the next volume (because <command>tar</command> is media independent it
|
||||
refers to volumes. In this context it means floppy disk)</para>
|
||||
|
||||
<screen>Prepare volume #2 for /dev/fd0 and hit return:</screen>
|
||||
|
||||
<para>This is repeated (with the volume number incrementing) until all
|
||||
the specified files have been archived.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="floppies-compress">
|
||||
<title>Can I Compress My Backups?</title>
|
||||
<indexterm>
|
||||
<primary><command>tar</command></primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary><command>gzip</command></primary>
|
||||
</indexterm>
|
||||
<indexterm><primary>compression</primary></indexterm>
|
||||
|
||||
<para>Unfortunately, <command>tar</command> will not allow the
|
||||
<option>-z</option> option to be used for multi-volume archives.
|
||||
You could, of course, <command>gzip</command> all the files,
|
||||
<command>tar</command> them to the floppies, then
|
||||
<command>gunzip</command> the files again!</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="floppies-restoring">
|
||||
<title>How Do I Restore My Backups?</title>
|
||||
|
||||
<para>To restore the entire archive use:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>tar Mxvf /dev/fd0</userinput></screen>
|
||||
|
||||
<para>There are two ways that you can use to restore only
|
||||
specific files. First, you can start with the first floppy
|
||||
and use:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>tar Mxvf /dev/fd0 <replaceable>filename</replaceable></userinput></screen>
|
||||
|
||||
<para><command>tar</command> will prompt you to insert subsequent floppies until it
|
||||
finds the required file.</para>
|
||||
|
||||
<para>Alternatively, if you know which floppy the file is on then you
|
||||
can simply insert that floppy and use the same command as above. Note
|
||||
that if the first file on the floppy is a continuation from the
|
||||
previous one then <command>tar</command> will warn you that it cannot
|
||||
restore it, even if you have not asked it to!</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-declaration: "../chapter.decl"
|
||||
sgml-indent-data: t
|
||||
sgml-omittag: nil
|
||||
sgml-always-quote-attributes: t
|
||||
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
||||
End:
|
||||
-->
|
Loading…
Reference in a new issue