# MondoRescue HOWTO

## Utilisation and Configuration of Mondo and Mindi under Linux (Version 2.2.1-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 Invarian t 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 alr eady copyrighted is released under the GPL.

# 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/mondo-archive.log`; and `/var/log/miindi.log` or at `/var/log/mondo-restore.log`

This document was originaly written by native english speakers, but is maintained by a non-native english speaker so help me correct mistaques 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 and restore as another .

- You can restructure your partitions, e.g. shrink/enlarge, reassign devices, add hard drives, etc, before you partition and 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, ... a lot! 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 tested thousands of times on various computers. It 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/ manually. Then, call mondorestore, select Interactive Mode, and say 'no' when asked if you want Mondo to partition or 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 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 developpers 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, 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. 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

# 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 enregistrements 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 Sep 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-data-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. Recommandations

- 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.

- 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 wich 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 prrocesses 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" 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=01\;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:\*.png=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/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin; export PATH
    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 carefull 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 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/ 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/ 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 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 is:

<device> <partition> <> <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 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 is proving to be useful to you.

# Chapter 10. FAQ

## 10.1. Overview

Are the errors from Mindi or Mondo? Look at /var/log/mondo-archive.log, /var/log/mindi.log or the mondo.err.xxxxx.tgz log indicated by the screen message. 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

- Your Linux distro's name and version

- Whether your kernel supports initrd and loopfs; it should!

- What sort of PC you are using, including hard disk configurations

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, Debian 3.0, 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/mondo-archive.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 asit's 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 you're 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 you're 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 you're 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 you're 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 supportto see what you're 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 'mt'. 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.

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 showind 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

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/mondo-archive.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 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 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:

1. 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.

2. 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).

3. State on the Title page the name of the publisher of the Modified Version, as the publisher.

4. Preserve all the copyright notices of the Document.

5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

6. 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.

7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.

8. Include an unaltered copy of this License.

9. 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.

10. 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.

11. 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.

12. 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.

13. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.

14. 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.