MondoMindi

Revision 17 as of 2006-02-14 17:18:15

Clear message

This document contains a step-by-step proceedure for setting up mondo/mindi backup and recovery on an Ubuntu Breezy box.

What is mondo/mindi?

From the mondo/mindi website (http://www.mondorescue.org) HowTo:

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-R/RW media, tape, NFS, ... and Mindi Linux provides the bootable emergency restore CD/floppy set which Mondo uses at boot-time.

Description of this solution

The mondo/mindi configuration described herein comes curtesy of Nick Wheeler, who uses a similar proceedure to backup servers at work. I'm going to first describe the roll your own solution, building everything from source, and then hopefully Nick will help me refine and simplify the process so that x86 Ubuntu Breezy boxes can be setup with a single install script.

The "Roll Your Own" Solution

Prerequisits

Make sure you have the following packages installed:

  1. gcc
  2. make
  3. libnewt-dev
  4. buffer
  5. gawk
  6. syslinux
  7. afio
  8. cdrecord

Installation Proceedure

  1. sudo su -
  2. mkdir /usr/local/mondoiso
  3. cd /usr/local/src
  4. download each of the following (note: there may be newer versions of each of these by the time you read this, but I plan only to test this procedure every 6 months - with each Ubuntu release - and to put a version know to work in a safe place):
  5. Now uncompress the archives:
    • tar xvjf mondo-2.06-r266.tar.bz2
    • tar xvjf mindi-1.06-r266.tar.bz2
    • tar xvzf mindi-kernel-1.0.tgz
  6. Build and install the pieces:
    • cd mondo-2.06
    • ./configure
    • make
    • make install
    • cd ../mindi-1.06 (note: CHANGES and chown warnings may be safely ignored)
    • ./install.sh
    • cd ../mindi-kernel-1.0
    • ./install.sh
    • mv /usr/local/share/mindi/* /usr/local/lib/mindi
    • cd ..
    • dpkg -i kernel-image-2.6.14.2-baseline-4.2_10.00.Custom_i386.deb
  7. Create the mondobackup script:
    • cd /usr/local/bin/
    • put the following in a file named mondobackup:

           mondoarchive -Oi -d /usr/local/mondoiso -9 -F -E "/usr/local/mondoiso /usr/local/mondo" -k FAILSAFE
           #
           # -Oi tells mondo to back up the system, and to back it up to ISO files.
           # -d is the destination for the ISO files to be put
           # -9 is the compression level
           # -F tells mondo not to offer to write boot+data floppy disk images.
           # -E is the exclusion directory, anything listed in that is excluded.
           # -k FAILSAFE tells mondo to use the FAILSAFE kernel, because your kernel has cramfs in it.
  8. chmod +x mondobackup

Using Mondo/Mindi

You now have mondo/mindi installed on your system. To make cdimages which can be used to backup and restore your system on the same or another machine do the following:

  1. boot from the kernel 2.6.14.2-baseline-4.2. This is necessary because the Ubuntu kernels have cramfs in them, which doesn't work with mondo/mindi.

  2. as root run mondobackup.

That's it! mondobackup will call mondo and mindi to make iso images of your system in /usr/local/mondoiso. Burn each image onto a cd, then boot the target machine from the first cd to begin the restoration process.


Warning /!\ Edit conflict - other version:


Mondo Mindi Wheeler Script

I do not know the formating rules here! could you all meet me on #schooltool?

Flint

#
# 02/14/2006 12:16:07 PM 
# (c) Nick Wheeler, Jeff Elkner & Paul Flint
# This is offered under the GPL ?? add gpl stuff here ??
#
# This code installs mondo-mindi using the Wheeler method...
#
# this is a prototype of the check for stuff...
# make $package the name of the thing you are looking for:
# e.g. 
stat=$(dpkg-query --show --showformat='${Status}\n' $package)
if [ "${stat##* }" = "installed" ]; then
  echo ok
fi
#      download each of the following (note: there may be newer versions of each of these by the time you read this, but I plan only to test this procedure every 6 months - with each Ubuntu release - and to put a version know to work in a safe place):
#          *
#            [WWW] http://ibiblio.org/jelkner/mondo_mindi/kernel-image-2.6.14.2-baseline-4.2_10.00.Custom_i386.deb
#          *
curl http://ibiblio.org/jelkner/mondo_mindi/kernel-image-2.6.14.2-baseline-4.2_10.00.Custom_i386.deb > /usr/local/src/kernel-image-2.6.14.2-baseline-4.2_10.00.Custom_i386.deb
echo "Download 1 of 4 completed"
#
#            [WWW] http://ibiblio.org/jelkner/mondo_mindi/mondo-2.06-r266.tar.bz2
#          *
curl http://ibiblio.org/jelkner/mondo_mindi/mondo-2.06-r266.tar.bz2 > /usr/local/src/mondo-2.06-r266.tar.bz2
echo "Download 2 of 4 completed"
#
#            [WWW] http://ibiblio.org/jelkner/mondo_mindi/mindi-1.06-r266.tar.bz2
#          *
curl http://ibiblio.org/jelkner/mondo_mindi/mindi-1.06-r266.tar.bz2 > /usr/local/src/mindi-1.06-r266.tar.bz2
echo "Download 3 of 4 completed"
#
#            [WWW] http://ibiblio.org/jelkner/mondo_mindi/mindi-kernel-1.0.tgz
#          *
curl http://ibiblio.org/jelkner/mondo_mindi/mindi-kernel-1.0.tgz >  /usr/local/src/mindi-kernel-1.0.tgz
echo "Download 4 of 4 completed"
#


Warning /!\ Edit conflict - your version:


Mondo Mindi Wheeler Script

I do not know the formating rules here! maybe go to gobby!!!

Flint

#! /bin/bash # # 02/14/2006 12:16:07 PM # (c) Nick Wheeler, Jeff Elkner & Paul Flint # This is offered under the GPL ?? add gpl stuff here ?? # # This code installs mondo-mindi using the Wheeler method... # # this is a prototype of the check for stuff... # make $package the name of the thing you are looking for: # e.g. stat=$(dpkg-query --show --showformat='${Status}\n' $package) if [ "${stat##* }" = "installed" ]; then

  • echo ok

fi # download each of the following (note: there may be newer versions of each of these by the time you read this, but I plan only to test this procedure every 6 months - with each Ubuntu release - and to put a version know to work in a safe place): # * # [WWW] http://ibiblio.org/jelkner/mondo_mindi/kernel-image-2.6.14.2-baseline-4.2_10.00.Custom_i386.deb # * curl http://ibiblio.org/jelkner/mondo_mindi/kernel-image-2.6.14.2-baseline-4.2_10.00.Custom_i386.deb > /usr/local/src/kernel-image-2.6.14.2-baseline-4.2_10.00.Custom_i386.deb echo "Download 1 of 4 completed" # # [WWW] http://ibiblio.org/jelkner/mondo_mindi/mondo-2.06-r266.tar.bz2 # * curl http://ibiblio.org/jelkner/mondo_mindi/mondo-2.06-r266.tar.bz2 > /usr/local/src/mondo-2.06-r266.tar.bz2 echo "Download 2 of 4 completed" # # [WWW] http://ibiblio.org/jelkner/mondo_mindi/mindi-1.06-r266.tar.bz2 # * curl http://ibiblio.org/jelkner/mondo_mindi/mindi-1.06-r266.tar.bz2 > /usr/local/src/mindi-1.06-r266.tar.bz2 echo "Download 3 of 4 completed" # # [WWW] http://ibiblio.org/jelkner/mondo_mindi/mindi-kernel-1.0.tgz # * curl http://ibiblio.org/jelkner/mondo_mindi/mindi-kernel-1.0.tgz > /usr/local/src/mindi-kernel-1.0.tgz echo "Download 4 of 4 completed" #


Warning /!\ End of edit conflict