MondoRescue HOWTO

Utilisation and Configuration of Mondo and Mindi under Linux (Version
2.2.4-rRRR)

Bruno Cornec

   MondoRescue Project

   <bruno@mondorescue.org>

Conor Daly

   MondoRescue Project

   <conor.daly_at_met.ie>

   Copyright © 2000-2006 Bruno Cornec

   This document describes the use of mondo and mindi tools to
   realize disaster recovery backup of your systems. It provides
   information on installation, backup and restore modes, hardware
   and software requirements, and answers to some frequently asked
   questions. The goals are to offer a general view of the
   functions and their best usages. Mondo Rescue is a Disaster
   Recovery Solution which allows you to effortlessly backup and
   interactively restore Linux, Windows and other supported
   filesystem partitions to/from CD/DVD-+R/RW media, tape, NFS,
   ... and Mindi Linux provides the bootable emergency restore
   CD/floppy set which Mondo uses at boot-time.

   License

   This HOWTO is a free documentation. you may copy, redistribute
   and/or modify it under the terms of the GNU Free Documentation
   License, Version 1.1.

   or any later version published by the Free Software Foundation;
   with no Invariant Sections, Front-Cover Texts or Back-Cover
   Texts. This document is distributed hoping it will be useful,
   but without any guaranty; you're completely responsible of its
   use, and coulnd't complain in case it doesn't work, or even if
   it breaks the hardware. All the software included in it, if not
   already copyrighted is released under the GPL.
     __________________________________________________________

   Table of Contents
   1. About this Guide

        1.1. Purpose / Scope of this Guide
        1.2. New versions of this document
        1.3. Suggestions / Feedback
        1.4. Aknowledgements

   2. QuickStart
   3. Overview

        3.1. Mondo Rescue
        3.2. Mindi
        3.3. Linux Backup
        3.4. Windows Backup

              3.4.1. Windows ME/95/98
              3.4.2. Windows NT4/2K/XP

        3.5. Mondo Rescue and Mindi Linux History
        3.6. System Requirements

              3.6.1. Hardware Requirements
              3.6.2. Kernel Requirements
              3.6.3. Software Requirements

   4. Installation

        4.1. Mindi Installation
        4.2. Mindi Busybox Installation
        4.3. Mondo Installation
        4.4. RPM verifications

   5. Tests

        5.1. Testing Mindi

   6. Backup

        6.1. Recommendations
        6.2. Backup Commands and Options

              6.2.1. Standard Example With CD-R
              6.2.2. Standard Example With CD-RW
              6.2.3. Standard Example With Tape
              6.2.4. Standard Example With Failsafe kernel
              6.2.5. Standard Example With Network Backup

   7. HOWTO run mondo interactively using cron

        7.1. Overview
        7.2. Introduction
        7.3. Who should read this?

              7.3.1. Insurance
              7.3.2. Efficiency

        7.4. The Problem

              7.4.1. Cron's environment
              7.4.2. Interactivity
              7.4.3. Screen

        7.5. The Solution

              7.5.1. Briefly
              7.5.2. In Detail

   8. Compare
   9. Restore

        9.1. Overview
        9.2. Tips and Tricks

              9.2.1. Barebones (Nuke) Restore
              9.2.2. Interactive Restore
              9.2.3. Expert Restore
              9.2.4. Modified partitions - Restore to a different
                      disk geometry

              9.2.5. Advanced

   10. FAQ

        10.1. Overview
        10.2. General Questions
        10.3. Booting and Kernel related Questions
        10.4. Installation related Questions
        10.5. Hardware related Questions
        10.6. Backup related Questions
        10.7. Compare related Questions
        10.8. Restore related Questions

   A. GNU Free Documentation License

        0. PREAMBLE
        1. APPLICABILITY AND DEFINITIONS
        2. VERBATIM COPYING
        3. COPYING IN QUANTITY
        4. MODIFICATIONS
        5. COMBINING DOCUMENTS
        6. COLLECTIONS OF DOCUMENTS
        7. AGGREGATION WITH INDEPENDENT WORKS
        8. TRANSLATION
        9. TERMINATION
        10. FUTURE REVISIONS OF THIS LICENSE
        How to use this License for your documents
     __________________________________________________________

Chapter 1. About this Guide

1.1. Purpose / Scope of this Guide

   This HOWTO serves to help people get started with using
   mondo/mindi as way to backup/restore their system. This is a
   work constantly evolving. It was started by Hugo Rabson and has
   since been worked upon by a number of people. See the 'About'
   web page for a list of members of the development team.

   There are many ways to contribute to the Linux movement without
   actually writing code. One of the most important is writing
   documentation, allowing each person to share their knowledge
   with thousands of others around the world. This HOWTO is
   designed to help you get familiar with how Mondo/Mindi works.

   Opinions expressed here are those of the authors. Informations
   are provided in the aim to be useful to the readers. However,
   there can't be, through this document, any warranty of any kind
   on the way it works on your systems, nor the author could be
   responsible for any problem caused by the use of these
   informations. However, software editors don't garantee you a
   lot either (re-read the contracts).
     __________________________________________________________

1.2. New versions of this document

   The newest version of this document can always be found on
   MondoRescue's homepage MondoRescue.

   If you make a translation of this document into another
   language, please let meknow so that I can include a reference
   to it here.
     __________________________________________________________

1.3. Suggestions / Feedback

   I rely on you, the reader, to make this HOWTO useful. THis
   HOWTO is probably incomplete even if it tries to be accurate to
   the best of our knowledge. If you have any suggestions,
   corrections, recommandations or congratulations :-) don't
   hesitate to send them to me <bruno@mondorescue.org>, and I will
   try to incorporate them in a next revision or to the
   mondorescue mailing list; e-mail the list at
   mondo-devel@lists.sourceforge.net; tell us what is wrong and
   how it should be fixed. Include the section title and
   recommended changes. Whenever possible, include the exact,
   spell-checked, grammar-checked text that you think would
   improve the document.

   See Mondo's Support page for more information.

   Please note that we do our best to help everyone but it is
   difficult for us to help you if you do not attach a log file to
   your e-mail. Let me say that again - attach your log file to
   your e-mail! Thank you. Without it we can't offer any tangible
   help because you aren't either. That's what the log file is
   for. It is located at /var/log/mondoarchive.log; and
   /var/log/mindi.log (if called alone) or at
   /var/log/mondorestore.log

   This document was originaly written by native english speakers,
   but is maintained by a non-native english speaker so help me
   correct mistaques (sic) instead of rumbling that I've done one
   :-)

   I am also willing to answer general questions on MondoRescue,
   the best I can. Before doing so, please read all of the
   information in this HOWTO, and then send me detailed
   information about the problem, especially including the logs
   generated by the tools, or traces obtained (Did I say that
   already :-].

   If you publish this document on a CD-ROM or in hardcopy form, a
   complimentary copy would be appreciated; mail me for my postal
   address. Also consider making a donation to the Linux
   Documentation Project to help support free documentation for
   Linux. Contact the Linux HOWTO coordinator, Guylhem AZNAR
   <guylhem@rrremovethis.oeil.qc.ca>.
     __________________________________________________________

1.4. Aknowledgements

   Thanks goes to these people for helping and adding to this
   HOWTO.

   Document maintainer:

     * Bruno Cornec

   Original Design Assistance by:

     * Xion Network.com

   Original Document Assistance by:

     * Cafeole
     * Troff
     * Randy Delfs
     * Mikael Hultgren

   Original LinuxDoc and LaTeX Reformat by:

     * Bryan J. Smith

   Original DocBook Reformat by:

     * Mikael Hultgren

   Original author; 1.6x material:

     * Hugo Rabson
     __________________________________________________________

Chapter 2. QuickStart

     * We recommend that you read this complete HOWTO. However, if
       you are too busy or impatient, then please use this
       QuickStart guide to stay out of trouble.
     * Install the tarball, RPM, or DEB mindi and mondo packages.
       (see Installation for more details)
     * Execute as root (type 'su -' to become root if you are not
       logged in as root)

       bash# mondoarchive

   Choose from the list of supported backup media types. The media
   you will use most often are CD/DVD-+R, CD/DVD-+RW, tape, NFS
   and hard disk. If you want to backup/restore over a network,
   choose 'NFS'. If you want to backup/restore to/from a local
   partition or if you simply want to store the ISO images in a
   local directory until you have time or facilities to burn them
   to CD's, choose 'hard disk'. If you choose 'CD/DVD-+R[W]' or
   'tape' then in general your hardware will be detected and
   configured for you.
   If you are backing up to CD/DVD-+R[W] then Mondo will ask you
   if your CD burner has BurnProof technology, is inside a laptop,
   or is otherwise eccentric. If you are backing up to a tape
   streamer then you will not see this message.
   How much compression do you want? None, if your tape streamer
   has built-in hardware compression. Maximum, if your CPU is
   blazingly fast. Average should do just fine for most
   situations.
   If you want to backup the whole computer (excluding /sys and
   /proc, naturally) then leave this as / which is the default.
   Otherwise, specify subsets, (e.g. /usr/local /home ) being sure
   to put a space in between each path.
   If you are backing up your whole computer then you might want
   to exclude certain directories, e.g. /shared/MP3. Please
   specify them in the 'exclude directories' dialog box. Please
   put a space in between each path, e.g. /shared/private /scratch
   /nfs /windows
   Is your kernel sane? Red Hat, Mandrake, SuSE, Debian and
   Slackware users should in general say 'yes' because these
   vendors are good at producing reliable kernels. If you are
   using Gentoo or LFS then your kernel might be non-standard, in
   which case say 'no' to use Mondo's failsafe kernel (provided
   separately).
   If you want to verify the archives after writing them to media,
   say 'yes' here. If you have absolute faith in your hardware and
   your Linux distribution, say 'no'... and a little prayer.
   If you are sure you want to go ahead, say 'yes' and find
   something else to do while Mondo backs up your computer. If you
   say 'no' then you will be unceremoniously dumped at the shell
   prompt. :-)
   The backup process will now commence. There are some pre-backup
   tasks to be carried out first but the backup is essentially
   underway. To simplify the backup process, you were asked a
   series of questions. Next time, if you like, you could call
   mondoarchive with various command-line switches to control its
   behavior, instead of answering a series of questions. See the
   man page for details.
   Mondo will make a catalog of all files to be backed up. This
   may take up to five minutes. The list of files will be divided
   into sets, approximately 4 MB (before compression) of files per
   set. This typically takes one minute.
   Mondo calls Mindi. Mindi generates bootable floppy disk images
   and auxiliary data disk images which are based on your existing
   Linux distribution and filesystem. That way, you can be sure
   Mondo's tools will be compatible with your existing filesystems
   and binaries: Mondo's tools are your tools. Mindi takes up to
   five minutes to run.
   Finally, Mondo begins backing up your computer. This process
   may take a few minutes or a few hours, depending on how much
   data you are archiving, how fast your CPU is, how much RAM you
   have, and so on. It will backup your regular files and then
   your large files (files larger than approximately 32MB). If you
   have opted to verify your backups, Mondo will do that too.
   Do you want to create a boot floppy at the end? Yes, if you're
   a tape or NFS user. No, if you are using CD/DVD-R[W]'s and your
   computer supports bootable CD's. Tape users only need one
   floppy but other users may need more. Mondo will advise
   accordingly.

     * Try to boot from the first CD of the backup (or the first
       floppy, if you made floppies). Choose 'Compare Mode' by
       typing compare at the boot screen.
     * If you can boot, fine. If not, make a Mindi "Test" CD to
       checkout the compatibility of your system. (see Testing
       Mindi for more details). Remove the CD/floppy; boot your
       computer as usual; execute as root

       bash# mindi
       bash# cd /root/images/mindi
       (for CD-R)

       bash# cdrecord dev=0,0,0 speed=4 -eject -v mindi.iso
       (for CD-RW)

       bash# cdrecord dev=0,0,0 speed=4 blank=fast -eject -v mindi.iso
       Reboot your system with the created Mindi CD, with the BIOS
       set to boot from CD. If the result is a command line in
       'Expert' mode, your system checks out. Remove the CD and
       reboot your system.
     * If you still cannot boot from Mindi's CD then please e-mail
       the mondorescue mailing list for help.

   When making a backup on a live system, there will always be
   processes running that will write out data on the system after
   you have made the backup and before you have made the compare,
   this will result in difference showing up when comparing your
   backup. For a full explanation and what can be done to avoid
   this, please read this section.

     * This QuickStart covers the ideal case. Upon receiving any
       system feedback/errors, read each related HOWTO section.
       Example 2-1. A test backup of your /home directory to CD-Rs
       using the command line

       bash# mondoarchive -OVc 4 -I /home -gF
       The 'c' means you must be writing to CD-Rs, not CD-RWs (the
       latter would require 'w' instead of 'c'). The '4' is the
       speed of your CD writer. The string after -I is the path to
       be backed up. The '-gF' means you are going to see the
       pretty yellow-on-blue screen instead of the boring
       white-on-black screen. :) It also means Mondo will not
       offer to create physical boot floppies for you. It is
       assumed that you are able to boot from the CD which Mondo
       has generated.
       Example 2-2. A backup of your whole filesystem to NFS using
       the command line

       bash# mkdir -p /mnt/nfs
       bash# mount 192.168.1.28:/home/nfs /mnt/nfs
       bash# mondoarchive -OVn 192.168.1.28:/home/nfs -gF[...]
       bash# umount /mnt/nfs
       bash# cdrecord dev=0,0,0 speed=4 -eject -v
       /root/images/mindi/mindi.iso
       Note that you have to mount the NFS partition, backup to
       it, unmount it, and create a boot CD to allow you to
       restore from scratch if necessary. To reassure yourself
       that you will be able to restore from the NFS share even if
       your PC is wiped, please boot from the Mindi CD and type
       'compare'. The on-screen instructions from that point on
       should be sufficient.
       Example 2-3. A backup of your whole filesystem to tape
       using the command line

       bash# mondoarchive -OVt -d /dev/st0 -9 -L -g
       In this case, we assume Syslinux is incompatible with your
       boot media. For some reason, some BIOSes just don't like
       Syslinux. If you find this to be the case for your
       computer, please use '-L' to force Mondo to use LILO
       instead of Syslinux as the boot loader for its CD/floppies.
       (NB: This has nothing to do with which boot loader your
       hard drive uses.) Also, it is a good habit to specify your
       tape streamer with '-d <device>'. You don't usually need to
       but it's good to be on the safe side. Some computers call
       your tape streamer /dev/osst0, some call it /dev/ftape, ...
     __________________________________________________________

Chapter 3. Overview

3.1. Mondo Rescue

   Mondo Rescue backs up your file system to CD, tape, NFS
   (archives stored remotely) or ISO's (archives stored locally).
   Mondo uses afio as the backup engine; afio is a well-respected
   replacement for tar. In the event of catastrophic data loss,
   you may restore some or all of your system, even if your hard
   drives are now blank. Mondo Rescue can do a lot of other cool
   things:

     * You can use Mondo to clone an installation of Linux. Just
       backup the crucial stuff and exclude /home, /var/log, etc.
     * You can backup a non-RAID file system and restore it as
       RAID including the root partition (if your kernel supports
       that).
     * You can backup a system running on one format and restore
       as another format.
     * You can restructure your partitions, e.g. shrink/enlarge,
       reassign devices, add hard drives, etc, before you
       partition and format your drives. Mondo will restore your
       data and amend /etc/lilo.conf and /etc/fstab accordingly.
     * You can backup Linux/Windows systems, including the boot
       sectors. Mondo will make everything right at restore-time.
       (However, do run "Scandisk" when you first boot into
       Windows, just in case.)
     * You can use your Mondo backup CD to verify the integrity of
       your computer.

   Mondo's principal virtue is that it protects you from the
   problems that can arise when you reinstall completely from
   scratch. If you want to wipe and restore your system every year
   just as a matter of 'good practice', Mondo is not for you.
   However, if you want to get up and running again in a hurry
   after someone breaks into your computer and wipes it (or if you
   accidentally wipe it yourself) then Mondo is definitely for
   you. It will permit you to roll back to a known-good
   installation in a very short period of time, sometimes as
   little as twenty minutes. Even if you backup large amounts of
   data to tape daily and do not want to add yet another backup
   regime, please consider backing up the core filesystem (i.e.
   everything but the directories containing your huge database
   and your prizewinning novel) every month or so, just in case.
   You will be glad you did.

   What is Mondo not?

   Mondo is not an everyday backup program. It is not designed to
   replace tar, afio, kbackup, etc. Mondo is designed to make it
   possible to recover from scratch if necessary. Tar and afio
   offer a quick, convenient way to backup small sets of files,
   sometimes to removable media.
     __________________________________________________________

3.2. Mindi

   Mindi Linux creates a set of boot/root floppy disk images that
   will let you perform basic system maintenance on your Linux
   distro. The principal virtues of Mindi's boot disks are the
   fact that they contain your kernel, modules, tools and
   libraries. You can ask for additional binaries (or other files)
   to be included on the kit. The libraries will be added for you.

   Whichever modules were loaded at backup-time, they are reloaded
   at boot-time. So, in theory, you will boot into almost the same
   environment as you were in when you backed up. If you want to
   add files to your Mindi boot disks, edit '<INSTALLPATH OF
   MINDI>/mindi/deplist.txt' and add the files to that list. The
   added files and dependencies, will be spread across the data
   disks at run-time.

   Mindi makes sure that Mondo has all the tools it needs at
   boot-time. Mondo uses fdisk, mkfs, cat, less, more, afio, gzip,
   bzip2, your keyboard configuration, your glibc libraries, your
   other libraries, your kernel, your modules, ... which is a lot
   of tools! Mindi takes care of all that, so that Mondo can get
   on with the job of backing up or restoring your data.

   Mindi is also handy for making boot CDs/disks which stand on
   their own. You do not need Mondo. Indeed, if you like, you
   could use another backup/restore program with Mindi. Just add
   it to Mindi's dependency list (type 'locate deplist.txt' to
   find it). Mindi will include your software on its boot CD/disks
   the next time you run mindi.
     __________________________________________________________

3.3. Linux Backup

   Mondo Rescue and Mindi Linux are used primarily as Linux backup
   and cloning tools. The fall in prices of CD-RW drives and
   writable discs will allow current users to keep good backups
   and future users to leverage the cloning capability.

   Tape drives are more likely to suit your needs if you run a
   larger installation (or have lots of MP3's). Warning! OnStream
   drives do not play well with Mondo. I do not know why. It is,
   in my opinion, something which OnStream should look into. Mondo
   uses fopen(), fread(), fwrite() and fclose() to interact with
   tape drives. That works for most drives but some drives just
   don't like that.

   Mondo Rescue has been tested thousands of times on various
   computers. It has worked for them. Thousands of users testify
   to Mondo's stability and its ease of use. However, please test
   it on your own system before you rely on it. In fact, do not
   rely on any software until you have tested it to see if it
   performs as expected.

   To establish that Mondo will behave well in an emergency,
   please be prepared. Run a test backup as follows:-

     * Run mondoarchive without any command-line options.
     * Backup a subset of files - e.g. /usr/local - to CD or tape.
       Say 'yes' when asked if you want to verify them.
     * If you are not backing up to CD, please create boot
       floppies when prompted.

   Next, restore archives to your live filesystem.

     * When mondoarchive terminates, run mondorestore without any
       command-line options.
     * Insert the CD or the first boot floppy when prompted. Press
       <Enter>. Wait a moment.
     * Select a subset of files to restore, e.g. /usr/local/man
       and /usr/local/bin. Hit OK.
     * Restore files to /tmp or /root/RESTORED or something
       similar.
     * When mondorestore terminates, compare the restored files to
       the originals using cmp or diff.

   Finally, simulate an emergency restore.

     * Boot from CD/floppies.
     * Select 'Interactive Mode' at boot-time. (Type 'interactive'
       and hit <Enter>.)
     * Hit OK when shown the mountlist. Say 'yes' when asked if
       you accept the mountlist.
     * Select files to restore, e.g. /usr/local/man and
       /usr/local/bin. Hit OK.
     * Restore files to /tmp or /root/RESTORED or something
       similar.
     * When mondorestore terminates, please reboot and compare the
       restored files to the originals.

   FYI, the subroutines to repartition and reformat your drives
   are very stable. If you are a RAID or LVM user, you
   might encounter some difficulties when wiping and restoring
   from scratch because of the sheer range of filesystem layouts
   and the impossibility of testing Mondo on every single one. If
   you have trouble, just drop to the command-line and
   partition/format manually. Then, call mondorestore, select
   Interactive Mode, and say 'no' when asked if you want Mondo to
   partition or format your drives for you.

   You see, even if you have trouble, you still have two hands and
   most of the tools you need - lvchange, pvcreate, fdisk, mkraid,
   etc. - to do it manually. After you have prepped and formatted
   your drives manually (if you have to), just run mondorestore
   again and say 'no' when asked if you want to prep or format
   your drives. What could be easier?
     __________________________________________________________

3.4. Windows Backup

   Backing up windows partitions.
     __________________________________________________________

3.4.1. Windows ME/95/98

   Verify that the partition is listed in /etc/fstab and is
   mounted (e.g. /dev/hda1). Mondo will take care of everything
   else. The files will be archived just like all other files in
   the live file system. At restore-time, Mondo will take care of
   the boot sector of /dev/hda1 prior to the restore.

   Note: if Windows ME/95/98 is not located on /dev/hda1 or
   /dev/sda1, then Mondo will not take care of the boot sector of
   /dev/hda1. The user will have to boot from a DOS floppy and run
   SYS C: to correct the Windows boot sector.
     __________________________________________________________

3.4.2. Windows NT4/2K/XP

   Windows NT4/2K/XP typically use the NTFS file system, not
   VFAT.. The user should use '-x /dev/hda1' (or whichever device
   the Windows partition resides). Mondo will treat the partition
   as a biggiefile. Mondo will also add an entry to the mountlist
   to reflect the size and type of the partition. The user may not
   edit that partition's size at restore-time (for obvious
   reasons).

   Please bear in mind that Mondo was written for Linux users. If
   Mondo does not backup or restore your Windows system well, you
   might want to consider reporting it to the mondorescue mailing
   list
     __________________________________________________________

3.5. Mondo Rescue and Mindi Linux History

   Mondo Rescue was created in December 1999 by Hugo Rabson as a
   utility to clone Linux/Windows installations. Norton Ghost
   would not do the job, and his boss wanted to jump on the Linux
   bandwagon. So, he wrote a few scripts and shoehorned them into
   the latest Linux-Mandrake CD. Since that time, Mondo grew into
   a disaster recovery suite for Linux and Windows. Mondo forced
   him to learn about the kernel, its initrd initial ramdisk,
   modules, library dependencies, disk partitioning, and the
   myriad differences between the Top 10 Linux distributions.

   The first formal release was made on February 18th, 2000. Mondo
   is currently one of the top five Linux backup/restore programs.
   Mondo has been compared favorably to ArcServe, Arkeia and BRU.
   Although Mondo lacks the more advanced, enterprise-level
   features of ArcServe and Arkeia, for workstations and small- to
   medium-size servers it is ideal because it is small, fast,
   efficient, stable, comes with source code, and is being
   actively developed and supported.

   Since November 2005, Hugo Rabson has tranfered the maintenance
   of the Mondo Rescue suite to Andree Leidenfrost and Bruno
   Cornec, both previous developers and packagers of the tool
   since nearly the begining.
     __________________________________________________________

3.6. System Requirements

3.6.1. Hardware Requirements

   Your computer must have:

     * Intel(R)-compatible CPU (ia32, x86_64/amd64 or ia64)
     * 64MB of RAM (128MB recommended)
     * 800MB of hard disk space free
     * CD writer, tape streamer, NFS share or some way to backup
       the backups :)

   It is recommended that your computer have very good airflow.
   The backup with Mondo Rescue and Mindi Linux will utilize your
   CPU, CD drive and fixed disk(s) like very few other
   applications. With a few hours of system backup activity,
   computers without sufficient airflow may show symptoms such as
   not burning full CD discs. The solution is a $20 or less
   additional fan at your local electronics discount store.
     __________________________________________________________

3.6.2. Kernel Requirements

   Your kernel must have:

     * stable loopfs support, which means it really needs to be
       2.2.19 or 2.4.7 (or later)
     * CD-ROM device support
     * ISO9660 file system support
     * initrd ramdisk support (built-in)
     * Virtual memory file system support (built-in)
     * floppy disk support (built in)
     * ext2 file system support (built-in)
     * Support for the backup media (Tape, CD-RW, NFS, Hard disk)
     * If the backup media is CD-RW then you need SCSI emulation
       also
       vfat support in the active kernel - mindi needs this when
       creating syslinux boot floppies

   Please note that the stock kernels of Red Hat/RHEL/Fedora,
   Mandrake/Mandriva, SuSE/SLES/OpenSuSE, Debian and Slackware all
   meet Mondo's requirements. If your kernel does not meet Mondo's
   requirements then there is something wrong with it. Mondo's
   demands are not unreasonable.

   Mondo (specifically Mindi) does not require any specific
   module. It does require that your kernel support the initrd
   initial ramdisk facility. Typically this is supported by the
   Linux kernel. Modules used are needed to support the CD, floppy
   disks, hard disks, etc. If the support is modular, then the
   modules will be incorporated in a boot disk by Mindi. If the
   support is built-in (static), then it will be available at
   boot-time by default.
     __________________________________________________________

3.6.3. Software Requirements

   See Mondo's Download page for details.

   Mondo requires afio, bzip2, cdrtools/cdrecord/growisofs (may be
   part of the dvd+rw-tools package), ncurses, newt,
   isolinux/syslinux, lzo (optional), lzop (optional), mkisofs,
   slang, and a few other packages.

   Good Linux distributions provide all these packages. If yours
   does not then please go to the aforementioned Download page or
   surf the Net, preferably the website of the distribution you
   are using.

   Mondo's expectations are not unreasonable, either of your Linux
   distribution or of your kernel. However, if your distribution
   fails to meet its expectations and you cannot find out how to
   resolve them, please feel free to e-mail the mondorescue
   mailing list
     __________________________________________________________

Chapter 4. Installation

4.1. Mindi Installation

   If you are installing from a tarball then copy it to wherever
   you have enough space, for example /tmp and type:

   bash# cd /tmp
   bash# tar -zxvf mindi-1.x.tgz
   bash# cd mindi-1.x
   bash# ./install.sh

   This installs mindi additional files into /usr/local/lib/mindi
   and the program into /usr/local/sbin

   Or, if you are installing from an RPM/deb then copy it to
   wherever you have enough space, for example /tmp and type:

   bash# rpm -Uvh /tmp/mindi-1.x-x.i386.rpm
   or
   bash# dpkg -i /tmp/mindi-1.x-x.deb

   This installs mindi additional files into /usr/lib/mindi and
   the program into /usr/sbin.
     __________________________________________________________

4.2. Mindi Busybox Installation

   If you are installing from a tarball then copy it to wherever
   you have enough space, for example /tmp and type:

   bash# cd /tmp
   bash# tar -zxvf mindi-busybox-1.x.tgz
   bash# cd mindi-busybox-1.x
   bash# make oldconfig
   bash# make busybox
   bash# make install

   This installs busybox files and symlinks into
   /usr/local/lib/mindi/rootfs

   Or, if you are installing from an RPM/deb then copy it to
   wherever you have enough space, for example /tmp and type:

   bash# rpm -Uvh /tmp/mindi-busybox-1.x-x.i386.rpm
   or
   bash# dpkg -i /tmp/mindi-busybox-1.x-x.deb

   This installs busybix files and symlinks into
   /usr/lib/mindi/rootfs
     __________________________________________________________

4.3. Mondo Installation

   If you are installing from a tarball then copy it to wherever
   you have enough space, for example /tmp and type:

   bash# cd /tmp
   bash# tar -zxvf mondo-2.xx.tgz
   bash# cd mondo-2.xx
   bash# ./configure
   bash# make && make install

   This installs mondo into /usr/local/lib/mondo and installs the
   programs into /usr/local/sbin

   Or, if you are installing from an RPM/deb then copy it to copy
   it to wherever you have enough space, for example /tmp and
   type:

   bash# rpm -Uvh /tmp/mondo-2.x-x.i386.rpm
   or
   bash# dpkg -i /tmp/mondo-2.x-x.deb

   This installs mondo into /usr/lib/mondo and installs the
   programs into /usr/sbin
     __________________________________________________________

4.4. RPM verifications

   For RPM based distributions (Fedora, OpenSuSE, Mandriva, ...),
   you may want to do this post-install in order to check the
   validity of your installation:

   bash# rpm -Va mindi mondo mindi-busybox

   This gives some truly obtuse output. Basically it will list all
   files that do NOT pass the verify tests (done on size, MD5
   signature, etc). Please read rpm man page to discover the
   meaning of the output.
     __________________________________________________________

Chapter 5. Tests

5.1. Testing Mindi

   Mindi is a vital part of the backup procedure. If you have used
   Mondo before or if you are in a hurry, skip steps 6.2 and 6.3;
   go straight to QuickStart.

   However, if you have time or if you have been having trouble
   getting Mondo to work, I would recommend trying out Mindi
   directly (rather than via Mondo) to see if it can produce a
   bootable CD on your system.

   Make sure you are root while doing this, otherwise mindi will
   fail, now do this.

   If you have any problems, please:-

     * less /var/log/mindi.log
     * feel free to edit mindi (it's a shell script, btw) to try
       to fix the problem yourself
     * contact the mondorescue mailing list if you get stuck.

   Type:-

   bash# mindi

   Example screen output, selecting to use your own kernel, to
   create boot disks, and to create a bootable CD image:

# mindi
Mindi Linux mini-distro generator v1.09-r762

Latest Mindi is available from http://www.mondorescueg

BusyBox sources are available from http://www.busybox.net

-----------------------------------------------------------------------
-------
Do you want to use your own kernel to build the boot disk (y/n) ?y
Would you like to use LILO (instead of syslinux)
for your boot CD/floppies (y/n) ?n
Analyzing dependency requirements                               Done.
Making complete dependency list                                 Done.
Analyzing your keyboard's configuration.

Adding the following keyboard mapping tables: us-latin1         Done.
Assembling dependency files............................................
.......................
  Done.
The files have been subdivided into 5 directories.
         Your mountlist will look like this:-
    Finding all volume groups
  No volume groups found
  No volume groups found
  No volume groups found
  No volume groups found
        DEVICE          MOUNTPOINT      FORMAT          SIZE (MB)
        /dev/hda1       /               ext3                399
        /dev/hda9       /home           ext3              48478
        /dev/hda6       /usr            ext3               4999
        /dev/hda7       /var            ext3               1000
        /dev/hda5       swap            swap                349
        /dev/hda8       swap            swap               2003
    Finding all volume groups
  No volume groups found
  No volume groups found
  No volume groups found
  No volume groups found
Tarring and zipping the groups..................                Done.
Creating data disk #1...#2...#3...#4...#5...                    Done.
Making 1722KB boot disk...........................1440+0 enregistrement
s lus.
1440+0 enregistrements écrits.
mke2fs 1.38 (30-Jun-2005)
Failed to copy /boot/vmlinuz-2.6.12-15mdk-i686-up-4GB to ramdisk

Warning - failed to create 1.44MB boot/root floppies

Warning - failed to create 1.72MB boot image. Please reduce your kernel
's size

if you want to make a 1.72MB floppy disk.

Making 2880KB boot disk...........................mkfs.vfat 2.10 (22 Se
p 2003)
... 2880 KB boot disks were created OK                          Done.
In the directory '/root/images/mindi' you will find the images:-
   mindi-data-1.img    mindi-data-2.img    mindi-data-3.img    mindi-da
ta-4.img    mindi-data-5.img mindi-root.1440.img
Would you like to create boot+data floppy disks now (y/n) ?n
Shall I make a bootable CD image? (y/n) y
NB: Mindi's bootable CD always uses isolinux.

For a bootable CD w/LILO, please use Mondo.

Finished.

Boot and data disk images were created.

#

   If your kernel is too large (more than about 900KB) then you
   cannot make boot floppies, although you can still make a
   bootable CD image. The easiest way to test Mindi in either case
   is to say 'n' to its first question and 'y' to its second, then
   use the separate application cdrecord to make a bootable CD-R
   or CD-RW.

   Use the cdrecord application to write the CD image:

   bash# cd /root/images/mindi
   bash# cdrecord -scanbus

   The output of the above call to cdrecord will tell you your CD
   writer's node. It is usually '0,0,0'. Choose one of the
   following calls to write the CD, depending on whether the disk
   in the drive is a CD-R or a CD-RW. Please replace 'x,x,x' with
   your writer's node. For further information, type 'man
   cdrecord" from a Linux command line.

   If writing to a CD-RW Drive/Disc:

   bash# cdrecord -v blank=fast dev=x,x,x speed=4 mindi.iso (for
   CD-RW)

   If writing to a CD-R Drive/Disc:

   bash# cdrecord -v dev=x,x,x speed=4 mindi.iso (for CD-R)
     __________________________________________________________

Chapter 6. Backup

6.1. Recommendations

     * Shut down all possible applications (this minimizes any
       compare differences following the backup). Especially
       shutdown properly any running database on your system, as
       the recovery may lead to corrupted data. Or if applicable,
       boot to single user mode.
     * Type:

   bash# mondoarchive

   For most users, that should be enough. :-) Mondoarchive will
   usually autodetect your hardware and configure it for you.

   If you are a power user (or you like to control every detail of
   how Mondo runs) then you may want to look at the command-line
   switches. For example:-

   bash# mondoarchive -Ow9 -gF -I /home

   cdrecord will tell you where your CD recorder lives, in SCSI
   terms, which looks like '0,0,0'. The previous call to
   mondoarchive tells Mondo to backup everything to a 4x CD-RW
   drive that has a CD-RW disk in it. (Use -Oc instead of -Ow if
   you are using CD-R.)

   Please put the first CD-R(W) in the drive now. You will be
   prompted to insert CD #2 but you will not be prompted to insert
   the first disk. However, if you forget, do not worry: if Mondo
   fails to write the first (or any) disk, it will offer to retry,
   abort or fail.

   Find the speed/compression compromise that best suits your
   needs. Here maximum (-9) compression level is used.

   If you are using cron then please consult the chapter that
   Conor Daly has dedicated to that topic
     __________________________________________________________

6.2. Backup Commands and Options

   Backup Command:

   mondoarchive <-option1> <-option2> ... <-optionN>

   E.g.,

   bash# mondoarchive -E "/mnt/dos /mnt/cdrom" -9 -Oc 8

   Would create backup CD to a CD-R disc at the highest
   compression level, writing at speed 8 and ignoring the /mnt/dos
   and /mnt/cdrom directories.

   To see a detailed list of switches and their meaning, see the
   HTML man page on the website or type 'man mondoarchive' at the
   console.
     __________________________________________________________

6.2.1. Standard Example With CD-R

   bash# mondoarchive -Oc 2 -g

   Replace '2' in '-Oc 2' with the writer's speed. If mondoarchive
   cannot find your CD-R then please add '-d 0,0,0' (or whatever
   your CD writer's SCSI node is; usually, it is 0,0,0) to the
   call.

   Please insert the first disk in the writer while the PC is
   chugging away. If Mondo needs additional CD-R(W) then it will
   ask for them.
     __________________________________________________________

6.2.2. Standard Example With CD-RW

   bash# mondoarchive -Ow 2 -g

   Replace '2' in '-Ow 2' with the writer's speed.
     __________________________________________________________

6.2.3. Standard Example With Tape

   bash# mondoarchive -Ot -d /dev/st0 -g
     __________________________________________________________

6.2.4. Standard Example With Failsafe kernel

   bash# mondoarchive -k FAILSAFE -Ow 2

   If you have problems during the restore phase, due to your
   kernel (which may be the case on some distributions), you may
   want to explore the Failsafe approach, In order for this option
   to work you'll have to get the mindi-kernel tarball or package
   for your distribution.
     __________________________________________________________

6.2.5. Standard Example With Network Backup

   bash# mount 192.168.1.3:/home/nfs -t nfs /mnt/nfs
   bash# mondoarchive -OVn 192.168.1.3:/home/nfs -g -s 200m
   bash# umount /mnt/nfs

   The resultant ISO's can be burned to CD's if you want (which
   isn't a good idea unless you're a Mondo expert because they'll
   try to restore over a network by default, which is silly
   because the archives are on the CD's). Or, you can boot from
   the Mindi floppies (or mondorescue.iso) and hit ENTER a few
   times to restore.

   Those ISO images can also be used for a PXE restore. For this
   to work, please refer to the file README.pxe provided with your
   mindi package.
     __________________________________________________________

Chapter 7. HOWTO run mondo interactively using cron

7.1. Overview

   Mondoarchive is designed to run interactively (at least where
   media changes are necessary). Cron does not allow user
   interaction with a job. This section addresses the problem by
   using screen as a wrapper for mondo.

   This section is Copyright 2003 Conor Daly.
     __________________________________________________________

7.2. Introduction

   Mondoarchive is designed to run interactively. That's not
   strictly true, if you run mondoarchive without the '-g' switch,
   it will just run. However, there is a problem where media
   changes are necessary. The user must change the media and tell
   mondoarchive that the change has been done. The problem lies in
   the fact that cron does not allow user interaction with a job.
   If you schedule a mondoarchive job via cron, you better be sure
   it needs only one media. In practical terms, this means using
   tapes or ISOs (if CD-R(W) is your backup medium). However, for
   tape users, there's always the possibility that the backup will
   overflow the tape while for CD-R(W) users, there is the added
   hassle of burning the ISOs in the morning. If your CD_R(W)
   backup routinely occupies more than one media, this is not for
   you (use the ISO option and burn the CDs in the morning). This
   HOWTO addresses the problem by using screen as a wrapper for
   mondo.
     __________________________________________________________

7.3. Who should read this?

7.3.1. Insurance

   Mondo users who wish to automate the backup and whose backups
   routinely occupy close to one media are the best audience. If
   you backup to tape, the occasion will arise when the backup
   will overflow your tape. In this instance, mondoarchive will
   ask for another tape. If you're using cron to start the backup,
   you won't be able to tell mondo that the new tape is mounted
   and the backup will fail. If you backup to CD-R(W), the same
   situation will arise but sooner.
     __________________________________________________________

7.3.2. Efficiency

   If your backup already occupies two media, this method will
   allow as much of the backup as possible to proceed during quiet
   periods. Time the backup to start with enough time to complete
   the first media shortly before the operator arrives for work.
   The next media can be mounted and the backup completed asap and
   minimises the time for which users are inconvenienced by the
   backup (eg. database locked...).
     __________________________________________________________

7.4. The Problem

7.4.1. Cron's environment

   When a user submits a job with cron, their environment is not
   preserved. This is reasonable since cron jobs are typically
   ongoing and may be adversely affected if the user's environment
   changes subsequent to the cron submission. Thus, a cron job
   should call a script that set's up the correct environment
   before starting the user's desired program. The 'at' command
   does this nicely.
     __________________________________________________________

7.4.2. Interactivity

   When a job is started with cron, it runs as a background
   process. No interaction with the program is possible (unless it
   is capable of interacting via a FIFO or some such) except
   termination via its pid. The only program that I know of that
   allows such interaction and serves as a wrapper for other
   processes is 'screen'
     __________________________________________________________

7.4.3. Screen

   There's one little problem with screen though. It expects to
   attach to a terminal when it first starts. This won't happen
   under cron so screen will fail. Fortunately, screen comes with
   a "start detached" (-d) option.
     __________________________________________________________

7.5. The Solution

7.5.1. Briefly

     * Use 'at' to run your usual mondoarchive command
     * Grab the script generated by 'at' and make a copy of it
     * Edit that script to use 'screen -m -d <your mondoarchive
       command>'
     * Run that script from your crontab
     * Use 'screen -r' to attach to the mondo screen to change CDs
     * Use '<CTRL>-a d' to detach the screen again
     __________________________________________________________

7.5.2. In Detail

7.5.2.1. at

   Use the 'at' command to submit your usual mondoarchive command.
   My mondoarchive command is:

   # mondoarchive -D -Ow 10 -S /home/mondo/ -T /home/mondo/ -g \
   -E "\"/home/cdaly/GIS/W2K /home/mondo/\"" -9

   To submit the mondoarchive command with 'at' do:

   # at now + 5 min mondoarchive -D -Ow 10 -S /home/mondo/ -T
   /home/mondo/ -g \ -E "\"/home/cdaly/GIS/W2K /home/mondo/\"" -9
   <CTRL>-d

   This generates a script in /var/spool/at/ which sets up your
   environment and runs your command. Grab this script to become
   your cron job.
     __________________________________________________________

7.5.2.2. Grab the 'at' script

   Make a copy of the script generated by the 'at' command to use
   as the basis for your cron job.

   grep mondo /var/spool/at/*
   cp /var/spool/at/<file-from-grep> /root/mondo-cronscript

   You'll need to edit this.
     __________________________________________________________

7.5.2.3. Edit mondo-cronscript

   To use screen, you'll need to edit the cronscript and add the
   screen command. My mondo-cronscript looks like:
#!/bin/sh
# atrun uid=0 gid=0
# mail    cdaly 0 umask 22
PWD=/root; export PWD
XAUTHORITY=/root/.xauthyOrD4f; export XAUTHORITY
HOSTNAME=bofh.irmet.ie; export HOSTNAME
PVM_RSH=/usr/bin/rsh; export PVM_RSH
QTDIR=/usr/lib/qt-2.3.1; export QTDIR
LESSOPEN=\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
XPVM_ROOT=/usr/share/pvm3/xpvm; export XPVM_ROOT
KDEDIR=/usr; export KDEDIR
USER=root; export USER
LS_COLORS=no=00:fi=00:di=01\;34:ln=01\;36:pi=40\;33:so=01\;35:bd=40\;33
\;01:cd=40\;33\;01:or=01\;05\;37\;41:mi=01\;05\;37\;41:ex=01\;32:\*.cmd
=01\;32:\*.exe=01\;32:\*.com=01\;32:\*.btm=01\;32:\*.bat=01\;32:\*.sh=0
1\;32:\*.csh=01\;32:\*.tar=01\;31:\*.tgz=01\;31:\*.arj=01\;31:\*.taz=01
\;31:\*.lzh=01\;31:\*.zip=01\;31:\*.z=01\;31:\*.Z=01\;31:\*.gz=01\;31:\
*.bz2=01\;31:\*.bz=01\;31:\*.tz=01\;31:\*.rpm=01\;31:\*.cpio=01\;31:\*.
jpg=01\;35:\*.gif=01\;35:\*.bmp=01\;35:\*.xbm=01\;35:\*.xpm=01\;35:\*.p
ng=01\;35:\*.tif=01\;35:; export LS_COLORS
MACHTYPE=i386-redhat-linux-gnu; export MACHTYPE
MAIL=/var/spool/mail/root; export MAIL
INPUTRC=/etc/inputrc; export INPUTRC
BASH_ENV=/root/.bashrc; export BASH_ENV
LANG=en_US; export LANG
LOGNAME=root; export LOGNAME
SHLVL=1; export SHLVL
II_SYSTEM=/usr/local/ingres; export II_SYSTEM
USERNAME=root; export USERNAME
HOSTTYPE=i386; export HOSTTYPE
OSTYPE=linux-gnu; export OSTYPE
HISTSIZE=1000; export HISTSIZE
LAMHELPFILE=/etc/lam/lam-helpfile; export LAMHELPFILE
PVM_ROOT=/usr/share/pvm3; export PVM_ROOT
HOME=/root; export HOME
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass;
export SSH_ASKPASS
PATH=/usr/local/ingres/ingres/bin:/usr/local/ingres/ingres/utility:/usr
/kerberos/sbin:/usr/kerberos/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/loc
al/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin; export PA
TH
cd /root || {
echo 'Execution directory inaccessible' >&2
exit 1
}
screen -m -d mondoarchive -D -Ow 10 -S /home/mondo/ \
-T /home/mondo/ -g -E "\"/home/cdaly/GIS/W2K /home/mondo/\"" -9
#done

   The crucial line is this one:

   screen -m -d mondoarchive -D -Ow 10 -S /home/mondo/ -T
   /home/mondo/ -g -E "\"/home/cdaly/GIS/W2K /home/mondo/\"" -9

   This uses 'screen -m -d' to "-m -d Start screen in "detached"
   mode. This creates a new session but doesn't attach to it. This
   is useful for system startup scripts. (From 'man screen')"

   When screen starts, it will be in the background and
   "detached".
     __________________________________________________________

7.5.2.4. Run the thing with cron

   To get the whole thing running, do:

   crontab -e

   and add the following lines:

   # run mondoarchive at 23:59 weekdays
   59 23 * * 1-5 /root/mondo-cronscript

   Your mondoarchive job will run at 23:59 monday-friday.

   DON'T FORGET TO CHANGE TAPES!
     __________________________________________________________

7.5.2.5. Getting at it...

   Once your cron job is running regularly, you'll want to get to
   it to change tapes and check status etc.

   screen -r

   attaches to the running screen where you can change CDs etc

   <CTRL>-a d

   detaches the running screen again.
     __________________________________________________________

7.5.2.6. Caveat

   The script generated by 'at' is unique to the user/machine
   combination. You MUST regenerate it on each machine where it
   will be used. Using the one above will NOT work for you. MAKE
   YOUR OWN!
     __________________________________________________________

Chapter 8. Compare

   Before you trust your backup CD, make sure your BIOS can boot
   CD (and that it is configured to do so).

     * Boot from the first CD.
     * Type:

   LILO: compare

   Follow the on-screen instructions. This will compare your
   backup against your original file system.

   FYI, no bad archives have been created since May 2000. Having
   said that, I would still encourage you to run Compare before
   trusting the backups.

   To view the file differences, look at the file
   '/tmp/changed.txt'. Normal differences include logs and other
   dynamic system files that changed during the time of the backup
   process. If only a few files differ - e.g. files in /var, files
   ending in '&#732;', logs, temporary files, /etc/mtab,
   /etc/adjtimex - then you know the archives are good. Your logs
   will change over time, too. Bear in mind that a difference
   between the backup and the live copy does not indicate a flaw
   in Mondo. It indicates that you or your filesystem changed the
   files, so the backup is no longer 100% up to date. However,
   that is inevitable, as your filesystem changes from moment to
   moment (which is why you back it up regularly).
     __________________________________________________________

Chapter 9. Restore

9.1. Overview

   I hope you don't have to restore from scratch very often. It's
   nerve-wracking until you realize that Mondo's restore engine is
   very reliable.

   If you find that you cannot make your PC boot from the CD, take
   heart: the first backup CD of each set contains floppy disk
   images to give you the same functionality as the CD (minus the
   archives, of course) on floppies. Remember, your Mondo CD is a
   fully functional CD-based mini-distribution as well as a
   recovery CD.

   You can choose from the following modes:

   Interactive
          Restore step-by-step, or restore a subset of the
          archives. This is the method you should mainly use for
          your recovery needs.

   Nuke
          Wipe your drives and restore everything, automatically
          and unattended. Warning: This does exactly what is says,
          so be careful using it.

   Expert
          Boot to a shell prompt. If you want to do anything
          creative, you should boot into Expert Mode. It's called
          expert, I think that says it all.

   If the CD is not found during the initial restore CD boot
   attempt, reboot the PC a second time prior to reporting
   failure. Occasional timing errors and hardware/software/system
   conflicts do occur.
     __________________________________________________________

9.2. Tips and Tricks

   Ideally, restore your system to a spare hard drive to test the
   integrity and reliability of your disks. To do that, either
   edit your mountlist to make the devices point to your spare
   hard drive, or swap your hard drive cables between boots.

   At a bare minimum, compare your CD against your file system
   before you decide whether to trust them.

   To test Mondo's ability to handle your LILO or GRUB boot loader
   and accompanying configuration file:

     * Boot from the backup CD into Expert Mode
     * Type:

   bash# mondorestore --mbr

     * To fix any mess it made (not that it should) type:

   bash# mount-me
   bash# chroot /mnt/RESTORING

   bash# lilo OR grub-install '(hd0)'
   bash# exit
   bash# unmount-me

     * If it did not work then please copy /tmp/mondo-restore.log
       to a floppy (or to your hard disk, USB key, ...), gzip it
       and e-mail it to the mondorescue mailing list.
     __________________________________________________________

9.2.1. Barebones (Nuke) Restore

   Imagine that your hard drives happen to be wiped, deliberately
   or accidentally. Or, imagine that you want to clone your
   existing operating system. In either case, you want to run in
   Nuke Mode.

   If you want to wipe everything and restore your whole system
   from CD, please:

     * Use the -H option when invoking mondoarchive
     * Boot from the first Mondo CD
     * Press RESTORE<enter>
     * Insert the subsequent CD when asked
     * Watch the screen for errors

   That's it. The restoration process for tape or NFS users is
   similarly easy: just boot, answer the on-screen prompts, and
   wait.

   Now, should something go wrong, you will be able to examine
   /tmp/mondo-restore.log to see what happened. All is not lost.
   You can fdisk and format the partitions yourself, using the
   tools that come with the CD. You can then run mondorestore in
   Interactive Mode and say 'no' when asked if you want Mondo to
   partition/format your drives.

   If you want to see exactly what Mondo is doing while it is
   restoring, press <Alt><left cursor> to view its logfile, in a
   virtual console, scrolling past.
     __________________________________________________________

9.2.2. Interactive Restore

   Interactive Mode is for people who have lost a subset of data
   from their live file system, or perhaps who have lost some data
   from their latest backup and want to restore a subset of data
   from an earlier backup. If you want to restore only some files
   or if you do not want to prep/format your drives, then you
   should boot into Interactive Mode. The interactive mode will
   provide an 'Editing mountlist screen' that allows you to setup
   a different disk geometry.

   To move up and down between partitions in the 'Editing
   mountlist screen', use the Up and Down arrows. To move between
   the main window and the buttons at the bottom, use the Left and
   Right cursor keys. TAB shifts focus from one screen item to the
   other in a haphazard fashion, owing to the complexities of the
   Newt library.

   If you want to restore selectively, just press <enter> and
   follow the on-screen instructions. You will be asked to say
   yes/no to a range of questions.

   If you are planning to modify your partition table, you would
   do well to read up on the partition layout and the use of
   fdisk, it gives you some pointers on how to best lay out
   partitions. You can find a good guide at
   http://www.tldp.org/HOWTO/Partition/index.html

   If you want to restore a subset of the backup then:

     * Boot from the CD
     * Type:

   bash# interactive

     * Then, after booting, answer the questions as follows:

   Do you want to partition your devices? no
   Do you want to format them? no
   Do you want to restore everything? no
   Do you want to restore something? yes
   Which path do you want to restore? /mydata [e.g.]
   Do you want to run LILO to setup your boot sectors? Yes
     __________________________________________________________

9.2.3. Expert Restore

   If you are planning to modify your partition table, you would
   do well to read up on the partition layout and the use of
   fdisk, it gives you some could pointers on how to best lay out
   partitions. You can find good a guide at http://www.ibiblio.o
   rg/pub/Linux/docs/HOWTO/mini/Partition/index.html

   To restore manually, please:

     * Boot from the first CD, then type:

   bash# expert

     * Then do whatever you like. :) You may type the following,
       of course:

   bash# mondorestore
     __________________________________________________________

9.2.4. Modified partitions - Restore to a different disk geometry

   One of the nice things about Mondo is that it lets you wipe
   your existing system and restore it in any layout you like
   (within reason). You can move from non-RAID to RAID,install and
   utilize additional drives, move from ext2 to ReiserFS, etc.,
   all without risking the loss of data.

   If the user excluded a particular partition from backup and
   specifically excluded it from the mountlist itself using -E
   then Mondo will insert a small (32MB) partition at
   restore-time, in order to avoid having to re-jig fstab, the
   partition table, etc.

   To do this:

     * Boot into Expert Mode, then type:

   bash# mondorestore

     * (edit the mountlist using the on-screen editor)

   If you want to move from ext2 to ReiserFS, you can do it here
   (so long as your kernel supports ReiserFS). Ditto for XFS, JFS
   or ext3.

   Mondorestore will try to modify your /etc/fstab to reflect
   changes you have made to the mountlist. If you are not using
   LILO, you can still create your own
   /mnt/RESTORING/etc/lilo.conf and run lilo -r /mnt/RESTORING to
   configure your boot sectors and Master Boot Record.

   Mondo (technically, Mindi on behalf of Mondo) creates a file
   called a mountlist. This can be found on the ramdisk at
   /tmp/mountlist.txt; it looks something like this:

   /dev/hda1 /mnt/windows vfat 4096000
   /dev/hda5 / reiserfs 6023000
   /dev/hda6 /tmp xfs 955000
   /dev/hda7 /usr ext3 4096000

   It is fairly easy to understand the list. Each line refers to a
   single device/partition. The line format is:

   <device> <partition> <format> <Kilobytes>

   If you have added a hard drive and want to take advantage of
   the additional space, you could amend the above mountlist to
   read:

   /dev/hda1 /mnt/windows vfat 6096000
   /dev/hda5 / reiserfs 9123000
   /dev/hda6 /tmp xfs 955000
   /dev/hdb1 /usr ext3 8192000
   /dev/hdb2 /home xfs 8192000

   This assumes that your old hard drive is /dev/hda and the new
   hard drive is /dev/hdb.

   Or, if you want to add RAID support, create a new /etc/raidtab
   on the ramdisk (which is beyond the scope of this HOWTO) and
   then write a mountlist like this:

   /dev/hda1 /mnt/windows vfat 6096000
   /dev/md0 / reiserfs 9123000
   /dev/md1 /tmp xfs 955000
   /dev/md2 /usr ext3 8192000
   /dev/md3 /home xfs 8192000

   So long as your /etc/raidtab file is sane, Mondo can
   automatically partition and format your disks for you,
   including the RAID devices.

   Once you have finished editing /tmp/mountlist.txt using
   mondorestore's built-in editor then you may choose 'OK'. Please
   note that this will not write anything to your hard disk. You
   will only reformat or repartition your disks if you say 'Yes'
   when asked if you want to do those things.
     __________________________________________________________

9.2.5. Advanced

   It is now possible to restore to a live filesystem using Mondo.
   In other words, you do not have to boot your PC from your
   CD/floppy in order to restore files. Mondo was originally
   designed for disaster recovery - situations in which you cannot
   boot your PC. If you can boot your PC, it is not really a
   disaster, is it? :) Well, if you have wiped out your priceless
   collection of "MTV's Bjork Unplugged" MP3's, perhaps it is.
   Anyway, just type this as root

   bash# mondorestore

   Choose your type of backup media. The live restoration process
   is very similar to what you'll experience if you type
   mondorestore with no parameters after booting from a Mondo
   CD/floppy.
   Hit 'OK' when you have inserted the tape/CD. If you generated a
   tape backup, the tape itself should be enough. If you generated
   a CD backup, the first CD should be enough. Otherwise, you may
   need the boot floppy.
   Flag the files and directories you wish to restore. Use the
   'More' and 'Less' buttons to open and close subdirectories.
   Specify the location to restore the files to. In general, '/'
   is appropriate. If you do not want to overwrite newer versions
   of the files you are restoring then specify /tmp/BKP or similar
   as the restore path.
   Mondorestore will retrieve configuration information from the
   media. (The sample screen is for tape users. CD users will see
   something different.)
   Data will be restored to the hard disk - first the regular
   files, then any big (32MB or greater) files in the restore set.

   I hope this manual was useful for you.
     __________________________________________________________

Chapter 10. FAQ

10.1. Overview

   Are the errors from Mindi or Mondo? Look at
   /var/log/mondoarchive.log or /var/log/mindi.log (if run alone).
   Pipe screen errors which relate to the creation of boot disk(s)
   and or data disk(s) to a text file.

   See the MondoRescue for details. If you are going to e-mail
   mondorescue mailing list then please attach that text file
   (zipped!) and give :

     * Your kernel version (uname -a)
     * Your Linux distro's name and version (/etc/distro-release)
     * Whether your kernel supports initrd and loopfs; it should!
       (grep -E '^CONFIG_BLK_DEV_LOOP|^CONFIG_BLK_DEV_INITRD'
       /usr/src/linux/.config
     * What sort of PC you are using, including hard disk
       configurations (results of dmidecode, lshw, fdisk -l are
       useful here)

   Mondo is freely available under the GPL and you are given it
   for no charge. When you e-mail the mondorescue mailing list,
   please bear that in mind.
     __________________________________________________________

10.2. General Questions

   10.2.1. Q: What is "Mindi"?
   10.2.2. Q: Why is it called "Mondo"?
   10.2.3. Q: Mondo does not work on my system. It keels over and
          dies. What's wrong?

   10.2.4. Q: What if the error is in Mindi?
   10.2.5. Q: Can I trust Mondo?
   10.2.6. Q: How do I report a bug?
   10.2.7. Q: I think Mondo should (...insert suggestion here...)
          and I have rewritten it accordingly. Would you like to
          see my patch?

   10.2.8. Q: I think Mondo should (...insert suggestion here...);
          will you incorporate this feature for me, please?

   10.2.9. Q: Mondo says, "XXX is missing," and then terminates.
          What's wrong?

   10.2.10. Q: Can Mondo handle multi-CD backups and restores?
   10.2.11. Q: Can Mondo handle Linux/Windows dual-boot systems?
   10.2.12. Q: Can Mondo backup Windows-only systems?
   10.2.13. Q: Does Mondo support LVM?
   10.2.14. Q: What if I don't use LILO? What if I use GRUB?
   10.2.15. Q: I get the error, 'Cannot find /tmp/dev.0' or
          'Cannot mount device 0x0701'; what do I do?

   10.2.16. Q: Can I create a Mondo CD and then use it to create
          an archive of any OS on any PC?

   10.2.17. Q: Why do you insist on putting floppy disk images on
          Mondo CD? They waste space and I never use them. The CD
          works just fine, so why keep the floppy disk images?

   10.2.18. Q: Why doesn't the Mondo project have a cool-looking
          animal logo?

   10.2.19. Q: Is there a Mondo user 'Code of Conduct?

   10.2.1. Q: What is "Mindi"?

   A: Mindi, a.k.a. Mindi-Linux, makes a mini-distribution from
   your kernel, modules, modules, tools and libraries. It can also
   generate an El Torito 2.88/5.76MB boot disk image. Mondo uses
   Mindi to create a mini-distro, then boots from it and runs on
   it.

   10.2.2. Q: Why is it called "Mondo"?

   A: The Teenage Mutant Ninja Turtles described cool things as
   'mondo'. Hugo Rabson wasn't sure what to call this project.
   'Faust' was one idea he had, partly as a dig at his former boss
   who practically owned him because of his legal status at the
   time. In the end, he chose something short and distinctive.

   10.2.3. Q: Mondo does not work on my system. It keels over and
   dies. What's wrong?

   A: It works on Red Hat 7.x/8/9, RHEL 2.1/3/4, Mandrakelinux
   8.x/9.x/10.x/200x, Fedora 4/5/6, Debian 3.x, most flavors of
   SuSE/SLES, some flavors of Slackware, etc. The more
   distributions we support, the more moving targets we have to
   hit. Please bear this in mind when e-mailing the list. :) If
   you would like to help us by beta-testing Mondo (or Mindi) on
   your PC then we would be very interested in working with you to
   work around the eccentricities of your Linux distro. However,
   rest assured, 90% of the bugs reported are actually symptoms of
   FooLinux X.Y's unique way of doing things.

   Please send a copy of /var/log/mondoarchive.log to the
   mondorescue mailing list along with a description of your
   distro, your kernel, etc. Oh, and before sending it, please try
   to read it.

   10.2.4. Q: What if the error is in Mindi?

   A: Please send a copy of /var/log/mindi.log to the mondorescue
   mailing list along with a description of your distro, your
   kernel, etc. Oh, and before sending it, please read it as it is
   much easier to understand it.

   10.2.5. Q: Can I trust Mondo?

   A: Mondo has generated reliable archives since May 2000. Lost
   data occured by using bad CD-R disks and not verifying their
   contents. Some users have not tried booting from their CD until
   crunch time. Remember to boot into Compare Mode to verify the
   backup before you trust it. If Mondo did not work, you would
   not be reading this. If it does not work for you, your kernel
   is usually the culprit. Check Linux Kernel support to see what
   your kernel should support. Please e-mail the list if you need
   some help with this.

   10.2.6. Q: How do I report a bug?

   A: E-mail the bug report (mondo.err.xxxxx.tgz) to the
   mondorescue mailing list. Ok you've read it already but it's
   really important if you want help. If you don't send a logfile
   then there isn't a lot that we can do for you, so PLEASE
   include a logfile at the very least.

   10.2.7. Q: I think Mondo should (...insert suggestion here...)
   and I have rewritten it accordingly. Would you like to see my
   patch?

   A: Absolutely! :-) The best way for you to make Mondo do what
   you want is to modify it and then send the patch. That way, we
   can all benefit.

   10.2.8. Q: I think Mondo should (...insert suggestion here...);
   will you incorporate this feature for me, please?

   A: Please enter the suggestion in our feature system at
   MondoRescue

   10.2.9. Q: Mondo says, "XXX is missing," and then terminates.
   What's wrong?

   A: A good Linux distribution should contain XXX but the
   designers, in their infinite wisdom, decided not to include
   that particular tool. Check Related Linux Packages and install
   the missing package. If that fails, contact the
   vendor/distributor/manufacturer/designer of your distro.

   10.2.10. Q: Can Mondo handle multi-CD backups and restores?

   A: Yes, up to twenty CD per set. This 20-CD limit results from
   laziness on mondorescue's part. I'll be removed in the future.
   However, if your system occupies more than 20 CD, may it's time
   for another type of media ?

   10.2.11. Q: Can Mondo handle Linux/Windows dual-boot systems?

   A: Yes. If your system currently boots into Linux or Windows
   via LILO, you can backup and restore both OSes at the same time
   using Mondo. If you are using NTFS then add the switch, '-x
   <device>'.

   10.2.12. Q: Can Mondo backup Windows-only systems?

   A: Not at the moment.

   10.2.13. Q: Does Mondo support LVM?

   A: Mondo supports LVM v1 and v2. Mondo backs up and restores
   your existing setup but it does not make it easy for you to
   change your LVM configuration, at the moment. You have to edit
   /tmp/i-want-my-lvm at boot-time to do that.

   10.2.14. Q: What if I don't use LILO? What if I use GRUB?

   A: GRUB is supported by Mondo.

   10.2.15. Q: I get the error, 'Cannot find /tmp/dev.0' or
   'Cannot mount device 0x0701'; what do I do?

   A: Please free up /dev/loop0 using 'losetup /dev/loop0 -d' to
   unmount that loop device. If your OS will not let you do that,
   contact your local support group or Linux vendor.

   10.2.16. Q: Can I create a Mondo CD and then use it to create
   an archive of any OS on any PC?

   A: Not yet. You can use Mondo to backup Linux or Linux/Windows
   dual boot. One day, Mondo will let you backup partitions it
   can't read or write, by treating each partition as one long
   file to be backed up. This file will be chopped, compressed and
   archived like any other big file.

   10.2.17. Q: Why do you insist on putting floppy disk images on
   Mondo CD? They waste space and I never use them. The CD works
   just fine, so why keep the floppy disk images?

   A: Because. It helped us in the past. If you really, truly want
   them gone then please submit a patch to make them optional.

   10.2.18. Q: Why doesn't the Mondo project have a cool-looking
   animal logo?

   A: Excellent question! Please submit graphics of candidate
   animal logos!

   10.2.19. Q: Is there a Mondo user 'Code of Conduct?

   A: Yes. Read the HOWTO. Submit patches. Recommend realistic
   improvements. Be courteous to other users on the discussion
   list. Do not whine.
     __________________________________________________________

10.3. Booting and Kernel related Questions

   10.3.1. Q: When I try to boot from the Mondo CD, it says, "VFS:
          Unable to mount root fs." I am using an old Debian
          distro. What do I do?

   10.3.2. Q: When I try to boot from the Mondo CD, it says,
          "Cannot mount root fs - kernel panic," or something
          similar. What do I do?

   10.3.3. Q: When I try to boot from the Mondo CD, it says,
          "UPGRADE YOUR RAM". What does that mean?

   10.3.4. Q: When I try to boot from the Mondo CD, it says
          something about not finding my CD-ROM drive and then it
          blames the kernel. What does that mean?

   10.3.5. Q: The Mondo CD/floppy takes ages to boot. How can I
          speed it up?

   10.3.6. Q: I made a Mondo CD using the failsafe kernel (i.e. I
          said 'no' when Mondo asked if I wanted to use my own
          kernel). It still doesn't boot. Help!

   10.3.7. Q: What if my PC won't boot from a CD?
   10.3.8. Q: But why won't Mondo boot from my CD? It says my
          kernel is flawed/outdated/ whatever, and when I wrote to
          the ML, they told me the same thing... but I still don't
          get it. I mean, my kernel works for everything else. Why
          not Mondo?

   10.3.9. Q: Why do I only need a boot disk if I'm using a tape
          drive? Where are the data disks?

   10.3.10. Q: Why does it say, "Process accounting FAILED" when I
          reboot?

   10.3.11. Q: Why does it say,
          &#8220;request_module[block-major-1]: Root fs not
          mounted VFS: Cannot open root device "100" or 01:00
          Please append a correct "root=" boot option kernel
          panic: VFS: Unable to mount root fs on 01:00&#8221; when
          i boot from the CD?

   10.3.12. Q: How do i copy boot+data disk images to physical
          floppy disks ?

   10.3.13. Q: My tape drive doesn't play nicely with Mondo at
          boot-time. What do I do?

   10.3.1. Q: When I try to boot from the Mondo CD, it says, "VFS:
   Unable to mount root fs." I am using an old Debian distro. What
   do I do?

   A: Ask Debian's designers why they, unlike every other distro I
   can find, have included cramfs and other 'goodies' with their
   kernel. In the meantime, please use '-k FAILSAFE' in your
   command line when calling Mondo.

   A: From Sarge onwards, all stock Debian 2.6 kernels should work
   fine. If you are still using stock Debian 2.4 kernels, FAILSAFE
   is the way to go. Of course, if you have compiled your own
   kernel and experience problems, FAILSAFE is the way to go as
   well, but this is not really Debian-specific.

   10.3.2. Q: When I try to boot from the Mondo CD, it says,
   "Cannot mount root fs - kernel panic," or something similar.
   What do I do?

   A: Recompile your kernel (or use '-k FAILSAFE'). Take a look at
   Linux Kernel support to see what your kernel must support.

   10.3.3. Q: When I try to boot from the Mondo CD, it says,
   "UPGRADE YOUR RAM". What does that mean?

   A: Recompile your kernel and add Virtual memory file system
   support. Take a look at Linux Kernel support to see what your
   kernel must support. (Of course, if your PC has less than 64MB
   of RAM, you could always... what's the phrase? I know, upgrade
   your RAM!)

   10.3.4. Q: When I try to boot from the Mondo CD, it says
   something about not finding my CD-ROM drive and then it blames
   the kernel. What does that mean?

   A: Your kernel must support initrd, loopfs, IDE|SCSI|USB
   CD-ROM's, and ramdisks. Take a look at Linux Kernel support to
   see what your kernel must support. If your kernel does not
   support these things, Mondo will not boot from your CD.
   However, when running Mindi, you may choose to use _its_ kernel
   instead of your own. In addition, you may boot from floppy disk
   images instead the CD: copy the disk images from the CD /images
   directory to floppy disks, using 'dd'. Take a look at Copy boot
   data disks on how to make those.

   10.3.5. Q: The Mondo CD/floppy takes ages to boot. How can I
   speed it up?

   A: Edit mindi (it's a shell script, btw) and change
   LILO_OPTIONS="" to LILO_OPTIONS="-c". This enables map
   compaction in lilo and speeds up booting, for more info see the
   lilo man page.

   10.3.6. Q: I made a Mondo CD using the failsafe kernel (i.e. I
   said 'no' when Mondo asked if I wanted to use my own kernel).
   It still doesn't boot. Help!

   A: OK, now that is a bug. :-) I included a kernel with Mondo
   (technically, with Mindi, which Mondo uses) to make sure that
   users could use Mondo despite flaws in their own kernels. If
   you are using Mondo/Mindi's kernel but still cannot boot from
   your Mondo CD then please e-mail the mondorescue mailing list.

   10.3.7. Q: What if my PC won't boot from a CD?

   A: Copy the image files from the CD /images directory, using
   the dd command. Take a look at Copy boot data disks on how to
   make those. Then boot from the first floppy; follow it up with
   the data disks; finally, type 'mount /mnt/cdrom' and then
   utilize the restore script as usual, e.g. mondorestore.

   A: You may also want to boot using the network with PXE. Look
   at the README.pxe file of mindi to know more details on how.

   10.3.8. Q: But why won't Mondo boot from my CD? It says my
   kernel is flawed/outdated/ whatever, and when I wrote to the
   ML, they told me the same thing... but I still don't get it. I
   mean, my kernel works for everything else. Why not Mondo?

   A: Because Mondo makes a boot disk using your kernel. I bet
   your other software doesn't do that. Also, not all kernels are
   suitable for boot disks. I'm sorry but that's Life. Upgrade
   your kernel and/or recompile it. Take a look at Linux Kernel
   support to see what your kernel must support.

   10.3.9. Q: Why do I only need a boot disk if I'm using a tape
   drive? Where are the data disks?

   A: On the tape. :-) The first 32MB of the tape will be set
   aside for a large tarball containing the data disks, a list of
   all files backed up, and other sundries. If Mondo and Mindi do
   their respective jobs then you won't need additional floppies,
   just the boot floppy and the tape(s).

   For the moment mondorescue doesn't support OBDR for tapes. Feel
   free to produce patches for it :-)

   10.3.10. Q: Why does it say, "Process accounting FAILED" when I
   reboot?

   A: You were using Process Accounting. Red Hat (or whichever
   distro you are using) does not provide a startup/shutdown
   script yet. So, when you try to backup the process log, it just
   grows and grows as Mondo tries to back it up. Mondo doesn't
   back it up anymore and that's why. The unfortunate side-effect
   is... well, what you see on your screen. Type 'touch
   /var/log/pacct' and then 'paccton' to fix the error message.

   10.3.11. Q: Why does it say,
   &#8220;request_module[block-major-1]: Root fs not mounted VFS:
   Cannot open root device "100" or 01:00 Please append a correct
   "root=" boot option kernel panic: VFS: Unable to mount root fs
   on 01:00&#8221; when i boot from the CD?

   A: Recompile your kernel and add initrd support. Take a look at
   Linux Kernel support to see what your kernel must support.

   10.3.12. Q: How do i copy boot+data disk images to physical
   floppy disks ?

   A: The images are in /root/images/mindi (even if they are
   created by Mondo) and also in the 'images' directory on the
   first CD of your backup set, if you have backed up to CD. You
   can copy the images to disk as follows:-

   Put an empty Boot floppy
   bash# fdformat /dev/fd0u1722
   bash# dd if=/root/images/mindi/mindi-boot.1722.img
   of=/dev/fd0u1722
   Put an empty Data floppy
   bash# fdformat /dev/fd0
   bash# dd if=/root/images/mindi/mindi-data-N.img of=/dev/fd0
   Replace N with 1, 2, etc.

   10.3.13. Q: My tape drive doesn't play nicely with Mondo at
   boot-time. What do I do?

   A: Play with the 'mt' command (package mt-st). Use its
   setblksize and defblksize switches to reconfigure your tape
   drive if necessary. Some tape drives just are painful. If yours
   is one of them then God help you. Mondo can handle any tape
   drive whose drive and firmware can handle fopen(), fwrite(),
   fread() and fclose(). Mondo uses standard C libraries to talk
   to your tape streamer. If your tape streamer can't handle that
   then you had better call a priest. Either that or ask for a
   refund.
     __________________________________________________________

10.4. Installation related Questions

   10.4.1. Q: Why do I get, "newt.h not found," or "popt.h not
          found," several times when I try to install Mondo?

   10.4.2. Q: Newt won't compile when I try. What's the problem?
   10.4.3. Q: I've just used up 6 CD-R, only to find that Mondo
          won't boot!

   10.4.4. Q: Lots of packages, required by Mondo, are missing
          from my system. What do I do?

   10.4.1. Q: Why do I get, "newt.h not found," or "popt.h not
   found," several times when I try to install Mondo?

   A: You have not installed libnewt and/or libnewt-devel. Please
   do so. Check Related Linux Packages to see what Mondo requires
   and where you can get tarballs and RPM's. Make sure you are
   using the right version of newt/libnewt. Read the error
   messages carefully.

   10.4.2. Q: Newt won't compile when I try. What's the problem?

   A: You are probably missing popt.h, which newt needs to
   compile, it can be found in the 'popt' package. Check your
   distribution and see if they have popt, if not check Related
   Linux Packages to see where you can get it.

   10.4.3. Q: I've just used up 6 CD-R, only to find that Mondo
   won't boot!

   A: You should have used CD-RW. ;) In the HOWTO, it gives
   instructions on how to create a test CD (one, not six).

   10.4.4. Q: Lots of packages, required by Mondo, are missing
   from my system. What do I do?

   A: Install them. :) If you are using RPM or deb then you'll be
   told which packages you need. Mondo offers a lot of those
   packages on its Download web page.
     __________________________________________________________

10.5. Hardware related Questions

   10.5.1. Q: Can Mondo handle CD-RW?
   10.5.2. Q: Does Mondo support tape drives?
   10.5.3. Q: Does Mondo support my tape drive?
   10.5.4. Q: How do I copy the floppy images from the CD to
          floppy disks?

   10.5.5. Q: Sometimes, my laptop won't mount Mondo CD properly,
          or something. Umm...

   10.5.6. Q: Does Mondo support Hardware RAID?
   10.5.7. Q: Where is my CD burner, in SCSI terms?
   10.5.8. Q: Can Mondo handle SCSI devices?
   10.5.9. Q: Why doesn't cdrecord -scanbus work ?

   10.5.1. Q: Can Mondo handle CD-RW?

   A: Yes. Use '-Ow <speed> <device>' to make it work.

   10.5.2. Q: Does Mondo support tape drives?

   A: Yes. See above.

   Of course, mondo will relay on the kernel to support your tape
   drive. So you should first check that your kernel found it
   correctly. Use for example one of the following commands:

   bash# dmesg | grep tape
   bash# cat /proc/scsi/scsi
   bash# mt -f /dev/st0 status

   10.5.3. Q: Does Mondo support my tape drive?

   A: If your tape drive and its firmware and the kernel-level
   driver support fopen(), fread(), fwrite() and fclose() -
   standard C library calls - then yes, Mondo should support it.
   If not, well, you need a refund. :) Mondo plays nicely with any
   sane, sensible drives. That's most of them, by the way. :) If
   your drive doesn't play nicely with Mondo then you may try
   tinkering with setblksize and defblksize using 'mt', or
   tweaking Mondo's block size by recompiling it with make
   INTTAPE=4096 or INTTAPE=8192 or something. Other than that, you
   need a priest or a refund.

   10.5.4. Q: How do I copy the floppy images from the CD to
   floppy disks?

   A: Mount the CD-ROM, e.g. at /mnt/cdrom. Insert a blank floppy.
   Type:

   bash# cd /mnt/cdrom/images
   bash# dd if=mindi-boot.1722.img of=/dev/fd0u1722

   Insert another blank floppy and type:

   bash# dd if=mindi-data-1.img of=/dev/fd0u1722

   Do the above for each 'mindi-data' disk image.

   10.5.5. Q: Sometimes, my laptop won't mount Mondo CD properly,
   or something. Umm...

   A: Please insert the CD, close the CD-ROM tray, wait a few
   seconds and then press Enter to acknowledge insertion of the
   next CD. Your laptop is on crack and is sucking a little too
   hard on the pipe.

   10.5.6. Q: Does Mondo support Hardware RAID?

   A: Yes. You may backup and restore RAID systems. You may also
   backup a non-RAID system and restore as RAID (or vice versa) by
   using the mountlist editor to edit your RAID and non-RAID
   partitions and their settings. Mondo will do the partitioning
   and formatting for you.

   Tested Raid controllers includes all those showing only
   classical devices such as /dev/sdx, and SmartArray cciss
   controllers.

   10.5.7. Q: Where is my CD burner, in SCSI terms?

   A: Type:

   bash# cdrecord -scanbus

   or for ATAPI type of devices:

   bash# cdrecord -scanbus dev=ATAPI

   you may replace ATAPI by ATA in the previous line with certain
   cdrecord versions and hadrware configurations

   Find your CD burner's device# (e.g. '0,0,0'). Call Mondo with
   the switch '-Oc <speed>' -d '<device>'. Or, if you feel lucky,
   just use '-Oc 2'; Mondo will (a) assume you want to write at 4x
   to a CD-R and (b) will do its best to find your CD burner.

   10.5.8. Q: Can Mondo handle SCSI devices?

   A: Mondo should be able to handle almost any hardware. So long
   as your kernel and modules support it, Mindi will support it
   and therefore so will Mondo.

   10.5.9. Q: Why doesn't cdrecord -scanbus work ?

   A: If you have a 2.4.x kernel (typical example are fedora
   legacy kernels for redhat 7.X/8/9) and an IDE CDRW device, and
   the drive is not listed when you run

   bash# cdrecord -scanbus

   try adding the following kernel option to your boot script to
   enable SCSI emulation: hdx=ide-scsi, where "hdx" should be
   replaced with the appropriate drive letter of the CDRW device,
   e.g., "hdc". (Answer provided by Christopher Moriarity
   cdm7_at_cdc.gov)
     __________________________________________________________

10.6. Backup related Questions

   10.6.1. Q: Mondo says, 'Cannot run mindi --makemountlist' and
          aborts. What do I do?

   10.6.2. Q: Can Mondo burn CD as they are created?
   10.6.3. Q: Mondo failed to burn my CD. It said something like,
          "Error CDB A1 01 02 53 ..." and so on. What does that
          mean?

   10.6.4. Q: May I backup my system with one partition layout and
          restore with another?

   10.6.5. Q: Why does Mondo need so much free disk space?
   10.6.6. Q: I am trying to do something clever, e.g. write my
          ISO's to an NFS mount, and I get some weird error
          messages. What do I do?

   10.6.7. Q: Can Mondo backup to data files on another partition,
          e.g. an NFS mount?

   10.6.8. Q: Can Mondo backup _to_ an NFS partition, i.e. backup
          over a network? How about restoring?

   10.6.9. Q: Does Mondo handle System or Hidden attributes when
          archiving Dos/Win files?

   10.6.1. Q: Mondo says, 'Cannot run mindi --makemountlist' and
   aborts. What do I do?

   A: Look at /var/log/mindi.log and see what it says. Also, try
   typing 'mindi --makemountlist /tmp/mountlist.txt' to see what
   Mindi says. Send the log to the mondorescue mailing list if you
   get stuck.

   10.6.2. Q: Can Mondo burn CD as they are created?

   A: Yes. Use the '-Oc <speed>' switch. Use a negative number for
   a dummy burn.

   10.6.3. Q: Mondo failed to burn my CD. It said something like,
   "Error CDB A1 01 02 53 ..." and so on. What does that mean?

   A: Cdrecord reported some serious errors while trying to burn
   your CD. Check your CD burner, your CD-R and your kernel.

   10.6.4. Q: May I backup my system with one partition layout and
   restore with another?

   A: Yes. Boot in Interactive Mode and edit the mountlist using
   the snazzy new mountlist editor. Mondo can now edit your RAID
   partitions for you. Just open /dev/md0 (or whatever) and select
   "RAID.." to start. Or, to add a RAID device:

     * Add two or more partitions, of type and mountpoint 'raid'
     * Add device '/dev/md0' and click OK
     * Follow the prompts and your own common-sense :)

   10.6.5. Q: Why does Mondo need so much free disk space?

   A: Because it need space to create the archive files with afio,
   then again space to create the ISO images that you'll be able
   to burn.

   10.6.6. Q: I am trying to do something clever, e.g. write my
   ISO's to an NFS mount, and I get some weird error messages.
   What do I do?

   A: Well, (a) use '-T /tmp' or '-T /home' or something in your
   call to Mondo. Oh, and (b) check the /etc/exports file on your
   NFS server and verify the exported filesystem is writable for
   the client, and relaunch exportfs -a.

   10.6.7. Q: Can Mondo backup to data files on another partition,
   e.g. an NFS mount?

   A: Yes. Just backup as usual but add '-d /mnt/nfs' or wherever
   your partition is mounted; don't use '-Oc' or '-Ot' at all;
   just '-Oi -d /root'. Then, after booting from the floppies
   which Mondo generates, you need to type 'ISO' at the console.

   10.6.8. Q: Can Mondo backup _to_ an NFS partition, i.e. backup
   over a network? How about restoring?

   A: Yes. Use '-On <mount> <directory>'. Example:

   bash# mondoarchive -On 192.168.1.3:/home/nfs

   10.6.9. Q: Does Mondo handle System or Hidden attributes when
   archiving Dos/Win files?

   A: No. It probably never will, either. Sorry.
     __________________________________________________________

10.7. Compare related Questions

   10.7.1. Q: When I compare my archives to my file system, Mondo
          tells me there are differences or errors. Are the
          archives bad?

   10.7.1. Q: When I compare my archives to my file system, Mondo
   tells me there are differences or errors. Are the archives bad?

   A: Look at /tmp/changed.files; if the files are logfiles, temp
   files or files which you think you may have changed recently
   then the archives are simply out of date, albeit only by a few
   minutes. Not a problem. However, if lots of files in /usr have
   changed or if you get lots of errors then perhaps your CD, your
   tapes or even your hardware could be to blame. Check your CD
   writer or tape streamer.

   Also, don't forget to review /var/log/mondoarchive.log for more
   information.
     __________________________________________________________

10.8. Restore related Questions

   10.8.1. Q: Can Mondo help me move/resize/re-allocate my
          partitions?

   10.8.2. Q: My zip drive is a SCSI drive. When I restore, Mondo
          craps out, saying it can't mount the drive (because
          there is no disk in it). What do I do?

   10.8.3. Q: I received a message like, 'Fileset NNN failed'
          during restore. What does it mean.

   10.8.4. Q: Why does my ext3 partition have less space free than
          when I backed it up?

   10.8.5. Q: When I restore after booting from the CD/floppies, I
          sometimes get errors like, "Running out of memory" or
          "Segmentation fault". What is going on?

   10.8.6. Q: I can't nuke-restore my LVM or RAID or LVM-on-RAID
          setup. I have to do it manually. What now?

   10.8.1. Q: Can Mondo help me move/resize/re-allocate my
   partitions?

   A: Yes. Just backup your system in Interactive Mode using
   Mondo. Edit the mountlist when prompted.

   10.8.2. Q: My zip drive is a SCSI drive. When I restore, Mondo
   craps out, saying it can't mount the drive (because there is no
   disk in it). What do I do?

   A: Restore in Interactive Mode. Delete the SCSI drive from the
   mountlist before you restore. Then Mondo won't try to partition
   or format it. Next time you backup, use -E /dev/sdd (or
   whatever your zip drive is). The /dev entry will be excluded
   from the mountlist but not from the filelist. So, when you
   restore, you won't accidentally reformat your zip disk.
   However, after restoring, you will find that /dev/sdd (the
   _file_) will still be present in your /dev directory. Cool, eh?

   10.8.3. Q: I received a message like, 'Fileset NNN failed'
   during restore. What does it mean.

   A: It usually means either you had a very large (>2GB) file
   which was not archived owing to a flaw in your distro or your
   filesystem has changed in relation to the backup.

   10.8.4. Q: Why does my ext3 partition have less space free than
   when I backed it up?

   A: Mondo creates a 10MB journal file area. Your journal was
   probably smaller than that, hence the difference.

   10.8.5. Q: When I restore after booting from the CD/floppies, I
   sometimes get errors like, "Running out of memory" or
   "Segmentation fault". What is going on?

   A: It sounds as if you are running out of disk space, probably
   ram disk space. Type 'df -m' to see which partitions are
   running low on space. Please send as much information as you
   can to the mondorescue mailing list. This problem is believed
   to have been fixed in 1.63 and 1.71.

   10.8.6. Q: I can't nuke-restore my LVM or RAID or LVM-on-RAID
   setup. I have to do it manually. What now?

   A: You said it yourself. You have to do it manually. :) Sorry
   but that's about it. At least you have all the tools to do it.
   I assume you know how. If you don't, look at i-want-my-lvm (a
   script on the ramdisk) if you're using LVM. It should give you
   a few clues. RAID is harder but in general Mondo's RAID support
   is good. After you've prepped and formatted your drives, run
   mondorestore again but say 'no' when asked if you want Mondo to
   prep or format your drives.
     __________________________________________________________

Appendix A. GNU Free Documentation License

   Version 1.1, March 2000

     Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple
     Place, Suite 330, Boston, MA 02111-1307 USA Everyone is
     permitted to copy and distribute verbatim copies of this
     license document, but changing it is not allowed.
     __________________________________________________________

0. PREAMBLE

   The purpose of this License is to make a manual, textbook, or
   other written document "free" in the sense of freedom: to
   assure everyone the effective freedom to copy and redistribute
   it, with or without modifying it, either commercially or
   noncommercially. Secondarily, this License preserves for the
   author and publisher a way to get credit for their work, while
   not being considered responsible for modifications made by
   others.

   This License is a kind of "copyleft", which means that
   derivative works of the document must themselves be free in the
   same sense. It complements the GNU General Public License,
   which is a copyleft license designed for free software.

   We have designed this License in order to use it for manuals
   for free software, because free software needs free
   documentation: a free program should come with manuals
   providing the same freedoms that the software does. But this
   License is not limited to software manuals; it can be used for
   any textual work, regardless of subject matter or whether it is
   published as a printed book. We recommend this License
   principally for works whose purpose is instruction or
   reference.
     __________________________________________________________

1. APPLICABILITY AND DEFINITIONS

   This License applies to any manual or other work that contains
   a notice placed by the copyright holder saying it can be
   distributed under the terms of this License. The "Document",
   below, refers to any such manual or work. Any member of the
   public is a licensee, and is addressed as "you".

   A "Modified Version" of the Document means any work containing
   the Document or a portion of it, either copied verbatim, or
   with modifications and/or translated into another language.

   A "Secondary Section" is a named appendix or a front-matter
   section of the Document that deals exclusively with the
   relationship of the publishers or authors of the Document to
   the Document's overall subject (or to related matters) and
   contains nothing that could fall directly within that overall
   subject. (For example, if the Document is in part a textbook of
   mathematics, a Secondary Section may not explain any
   mathematics.) The relationship could be a matter of historical
   connection with the subject or with related matters, or of
   legal, commercial, philosophical, ethical or political position
   regarding them.

   The "Invariant Sections" are certain Secondary Sections whose
   titles are designated, as being those of Invariant Sections, in
   the notice that says that the Document is released under this
   License.

   The "Cover Texts" are certain short passages of text that are
   listed, as Front-Cover Texts or Back-Cover Texts, in the notice
   that says that the Document is released under this License.

   A "Transparent" copy of the Document means a machine-readable
   copy, represented in a format whose specification is available
   to the general public, whose contents can be viewed and edited
   directly and straightforwardly with generic text editors or
   (for images composed of pixels) generic paint programs or (for
   drawings) some widely available drawing editor, and that is
   suitable for input to text formatters or for automatic
   translation to a variety of formats suitable for input to text
   formatters. A copy made in an otherwise Transparent file format
   whose markup has been designed to thwart or discourage
   subsequent modification by readers is not Transparent. A copy
   that is not "Transparent" is called "Opaque".

   Examples of suitable formats for Transparent copies include
   plain ASCII without markup, Texinfo input format, LaTeX input
   format, SGML or XML using a publicly available DTD, and
   standard-conforming simple HTML designed for human
   modification. Opaque formats include PostScript, PDF,
   proprietary formats that can be read and edited only by
   proprietary word processors, SGML or XML for which the DTD
   and/or processing tools are not generally available, and the
   machine-generated HTML produced by some word processors for
   output purposes only.

   The "Title Page" means, for a printed book, the title page
   itself, plus such following pages as are needed to hold,
   legibly, the material this License requires to appear in the
   title page. For works in formats which do not have any title
   page as such, "Title Page" means the text near the most
   prominent appearance of the work's title, preceding the
   beginning of the body of the text.
     __________________________________________________________

2. VERBATIM COPYING

   You may copy and distribute the Document in any medium, either
   commercially or noncommercially, provided that this License,
   the copyright notices, and the license notice saying this
   License applies to the Document are reproduced in all copies,
   and that you add no other conditions whatsoever to those of
   this License. You may not use technical measures to obstruct or
   control the reading or further copying of the copies you make
   or distribute. However, you may accept compensation in exchange
   for copies. If you distribute a large enough number of copies
   you must also follow the conditions in section 3.

   You may also lend copies, under the same conditions stated
   above, and you may publicly display copies.
     __________________________________________________________

3. COPYING IN QUANTITY

   If you publish printed copies of the Document numbering more
   than 100, and the Document's license notice requires Cover
   Texts, you must enclose the copies in covers that carry,
   clearly and legibly, all these Cover Texts: Front-Cover Texts
   on the front cover, and Back-Cover Texts on the back cover.
   Both covers must also clearly and legibly identify you as the
   publisher of these copies. The front cover must present the
   full title with all words of the title equally prominent and
   visible. You may add other material on the covers in addition.
   Copying with changes limited to the covers, as long as they
   preserve the title of the Document and satisfy these
   conditions, can be treated as verbatim copying in other
   respects.

   If the required texts for either cover are too voluminous to
   fit legibly, you should put the first ones listed (as many as
   fit reasonably) on the actual cover, and continue the rest onto
   adjacent pages.

   If you publish or distribute Opaque copies of the Document
   numbering more than 100, you must either include a
   machine-readable Transparent copy along with each Opaque copy,
   or state in or with each Opaque copy a publicly-accessible
   computer-network location containing a complete Transparent
   copy of the Document, free of added material, which the general
   network-using public has access to download anonymously at no
   charge using public-standard network protocols. If you use the
   latter option, you must take reasonably prudent steps, when you
   begin distribution of Opaque copies in quantity, to ensure that
   this Transparent copy will remain thus accessible at the stated
   location until at least one year after the last time you
   distribute an Opaque copy (directly or through your agents or
   retailers) of that edition to the public.

   It is requested, but not required, that you contact the authors
   of the Document well before redistributing any large number of
   copies, to give them a chance to provide you with an updated
   version of the Document.
     __________________________________________________________

4. MODIFICATIONS

   You may copy and distribute a Modified Version of the Document
   under the conditions of sections 2 and 3 above, provided that
   you release the Modified Version under precisely this License,
   with the Modified Version filling the role of the Document,
   thus licensing distribution and modification of the Modified
   Version to whoever possesses a copy of it. In addition, you
   must do these things in the Modified Version:

    A. Use in the Title Page (and on the covers, if any) a title
       distinct from that of the Document, and from those of
       previous versions (which should, if there were any, be
       listed in the History section of the Document). You may use
       the same title as a previous version if the original
       publisher of that version gives permission.
    B. List on the Title Page, as authors, one or more persons or
       entities responsible for authorship of the modifications in
       the Modified Version, together with at least five of the
       principal authors of the Document (all of its principal
       authors, if it has less than five).
    C. State on the Title page the name of the publisher of the
       Modified Version, as the publisher.
    D. Preserve all the copyright notices of the Document.
    E. Add an appropriate copyright notice for your modifications
       adjacent to the other copyright notices.
    F. Include, immediately after the copyright notices, a license
       notice giving the public permission to use the Modified
       Version under the terms of this License, in the form shown
       in the Addendum below.
    G. Preserve in that license notice the full lists of Invariant
       Sections and required Cover Texts given in the Document's
       license notice.
    H. Include an unaltered copy of this License.
    I. Preserve the section entitled "History", and its title, and
       add to it an item stating at least the title, year, new
       authors, and publisher of the Modified Version as given on
       the Title Page. If there is no section entitled "History"
       in the Document, create one stating the title, year,
       authors, and publisher of the Document as given on its
       Title Page, then add an item describing the Modified
       Version as stated in the previous sentence.
    J. Preserve the network location, if any, given in the
       Document for public access to a Transparent copy of the
       Document, and likewise the network locations given in the
       Document for previous versions it was based on. These may
       be placed in the "History" section. You may omit a network
       location for a work that was published at least four years
       before the Document itself, or if the original publisher of
       the version it refers to gives permission.
    K. In any section entitled "Acknowledgements" or
       "Dedications", preserve the section's title, and preserve
       in the section all the substance and tone of each of the
       contributor acknowledgements and/or dedications given
       therein.
    L. Preserve all the Invariant Sections of the Document,
       unaltered in their text and in their titles. Section
       numbers or the equivalent are not considered part of the
       section titles.
    M. Delete any section entitled "Endorsements". Such a section
       may not be included in the Modified Version.
    N. Do not retitle any existing section as "Endorsements" or to
       conflict in title with any Invariant Section.

   If the Modified Version includes new front-matter sections or
   appendices that qualify as Secondary Sections and contain no
   material copied from the Document, you may at your option
   designate some or all of these sections as invariant. To do
   this, add their titles to the list of Invariant Sections in the
   Modified Version's license notice. These titles must be
   distinct from any other section titles.

   You may add a section entitled "Endorsements", provided it
   contains nothing but endorsements of your Modified Version by
   various parties--for example, statements of peer review or that
   the text has been approved by an organization as the
   authoritative definition of a standard.

   You may add a passage of up to five words as a Front-Cover
   Text, and a passage of up to 25 words as a Back-Cover Text, to
   the end of the list of Cover Texts in the Modified Version.
   Only one passage of Front-Cover Text and one of Back-Cover Text
   may be added by (or through arrangements made by) any one
   entity. If the Document already includes a cover text for the
   same cover, previously added by you or by arrangement made by
   the same entity you are acting on behalf of, you may not add
   another; but you may replace the old one, on explicit
   permission from the previous publisher that added the old one.

   The author(s) and publisher(s) of the Document do not by this
   License give permission to use their names for publicity for or
   to assert or imply endorsement of any Modified Version.
     __________________________________________________________

5. COMBINING DOCUMENTS

   You may combine the Document with other documents released
   under this License, under the terms defined in section 4 above
   for modified versions, provided that you include in the
   combination all of the Invariant Sections of all of the
   original documents, unmodified, and list them all as Invariant
   Sections of your combined work in its license notice.

   The combined work need only contain one copy of this License,
   and multiple identical Invariant Sections may be replaced with
   a single copy. If there are multiple Invariant Sections with
   the same name but different contents, make the title of each
   such section unique by adding at the end of it, in parentheses,
   the name of the original author or publisher of that section if
   known, or else a unique number. Make the same adjustment to the
   section titles in the list of Invariant Sections in the license
   notice of the combined work.

   In the combination, you must combine any sections entitled
   "History" in the various original documents, forming one
   section entitled "History"; likewise combine any sections
   entitled "Acknowledgements", and any sections entitled
   "Dedications". You must delete all sections entitled
   "Endorsements."
     __________________________________________________________

6. COLLECTIONS OF DOCUMENTS

   You may make a collection consisting of the Document and other
   documents released under this License, and replace the
   individual copies of this License in the various documents with
   a single copy that is included in the collection, provided that
   you follow the rules of this License for verbatim copying of
   each of the documents in all other respects.

   You may extract a single document from such a collection, and
   distribute it individually under this License, provided you
   insert a copy of this License into the extracted document, and
   follow this License in all other respects regarding verbatim
   copying of that document.
     __________________________________________________________

7. AGGREGATION WITH INDEPENDENT WORKS

   A compilation of the Document or its derivatives with other
   separate and independent documents or works, in or on a volume
   of a storage or distribution medium, does not as a whole count
   as a Modified Version of the Document, provided no compilation
   copyright is claimed for the compilation. Such a compilation is
   called an "aggregate", and this License does not apply to the
   other self-contained works thus compiled with the Document, on
   account of their being thus compiled, if they are not
   themselves derivative works of the Document.

   If the Cover Text requirement of section 3 is applicable to
   these copies of the Document, then if the Document is less than
   one quarter of the entire aggregate, the Document's Cover Texts
   may be placed on covers that surround only the Document within
   the aggregate. Otherwise they must appear on covers around the
   whole aggregate.
     __________________________________________________________

8. TRANSLATION

   Translation is considered a kind of modification, so you may
   distribute translations of the Document under the terms of
   section 4. Replacing Invariant Sections with translations
   requires special permission from their copyright holders, but
   you may include translations of some or all Invariant Sections
   in addition to the original versions of these Invariant
   Sections. You may include a translation of this License
   provided that you also include the original English version of
   this License. In case of a disagreement between the translation
   and the original English version of this License, the original
   English version will prevail.
     __________________________________________________________

9. TERMINATION

   You may not copy, modify, sublicense, or distribute the
   Document except as expressly provided for under this License.
   Any other attempt to copy, modify, sublicense or distribute the
   Document is void, and will automatically terminate your rights
   under this License. However, parties who have received copies,
   or rights, from you under this License will not have their
   licenses terminated so long as such parties remain in full
   compliance.
     __________________________________________________________

10. FUTURE REVISIONS OF THIS LICENSE

   The Free Software Foundation may publish new, revised versions
   of the GNU Free Documentation License from time to time. Such
   new versions will be similar in spirit to the present version,
   but may differ in detail to address new problems or concerns.
   See http://www.gnu.org/copyleft/.

   Each version of the License is given a distinguishing version
   number. If the Document specifies that a particular numbered
   version of this License "or any later version" applies to it,
   you have the option of following the terms and conditions
   either of that specified version or of any later version that
   has been published (not as a draft) by the Free Software
   Foundation. If the Document does not specify a version number
   of this License, you may choose any version ever published (not
   as a draft) by the Free Software Foundation.
     __________________________________________________________

How to use this License for your documents

   To use this License in a document you have written, include a
   copy of the License in the document and put the following
   copyright and license notices just after the title page:

     Copyright (c) YEAR YOUR NAME. Permission is granted to copy,
     distribute and/or modify this document under the terms of
     the GNU Free Documentation License, Version 1.1 or any later
     version published by the Free Software Foundation; with the
     Invariant Sections being LIST THEIR TITLES, with the
     Front-Cover Texts being LIST, and with the Back-Cover Texts
     being LIST. A copy of the license is included in the section
     entitled "GNU Free Documentation License".

   If you have no Invariant Sections, write "with no Invariant
   Sections" instead of saying which ones are invariant. If you
   have no Front-Cover Texts, write "no Front-Cover Texts" instead
   of "Front-Cover Texts being LIST"; likewise for Back-Cover
   Texts.

   If your document contains nontrivial examples of program code,
   we recommend releasing these examples in parallel under your
   choice of free software license, such as the GNU General Public
   License, to permit their use in free software.
