Pour ma part, j'ai écrit un petit script (ghost) qui fait des paquets compressés de chaque partie logique (bin.tgz usrbin.tgz usrx11.tgz etc.) et qui permet de réinstaller ces paquets soit en relatif (par ex /tmp/bin pour bidouiller) ou en place /bin) à partir d'un menu.

Cela m'a déjà bien servi (sauvetage de l'installation d'origine pour référence en cas de doute de hacking, migration ...).

3 phases :
1- list : création de la liste des fichiers et établissement du contenu de chaque paquet
2- build : sauvetage des paquets
2bis- gavure d'un CD ou DVD (archive)
3- restore : choix du paquet à récupérer, en absolu ou relatif



REM: en général je ne gère pas les backups de /home de cette manière car c'est un autre problème (beaucoup plus dynamique que le système); je lance ghost après une installation ou juste avant de faire une migration importante.


Tu peux toujours monter en NFS la machine de référence et copier directement de /home à /home

Il y a aussi des produits plus élaborés (mais qui prennent plus de 7KB...) comme mkCDrec.

        Bon amusement ;-)

        Alain


Fabian Vilers wrote:
Bonjour à tous,

J'aimerais déplacé un système d'une machine vers une autre. Quel pourrais etre 
la meilleure technique? Je sais que ce genre de question à déjà été débattue 
mais je ne retrouve plus le mail.

A savoir, les disques n'ont pas la même géométrie et il me sera impossible de 
déplacer physiquement les disques d'une machine  l'autre.

Merci pour vos conseils avisés,
Fabian
_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux
Archives: http://www.mail-archive.com/linux@lists.unixtech.be
IRC: chat.unixtech.be:6667 - #unixtech
NNTP: news.gname.org - gmane.org.user-groups.linux.unixtech



-- ------------------------------------------------------------ Dr Alain EMPAIN <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> Bioinformatics, Molecular Genetics, Fac. Med. Vet., University of LIEGEe, Belgium Bd de Colonster, B43 B-4000 LIEGEe (Sart-Tilman) WORK: +32 4 366 4159 FAX: +32 4 366 4122 HOME: rue des Martyrs,7 B- 4550 Nandrin +32 85 51 2341 GSM: +32 497 70 1764 ------------------------------------------------------------------------------- What's your favorite Linux program? That's like asking a poet what his favorite word is; it's all in how they go together. (Michael Stutz, author of The Linux Cookbook) -------------------------------------------------------------------------------
#!/bin/sh
# $Version$
################################### A.EMPAIN'1999-2000 ########
#   GHOST : build seperate pack of every main directories
#            /var /home /usr /usr/X11R6 /opt...
#   WARNING : Take every dir, even mounted, 
#             except on /mnt and /alt (usual target for ghost tgz)
#              so umount what you don't want ...
#   VERSION=1.0 2002-06-06
# #############################################################
# TITLE="GHOST v1.0                                         A.Empain'2002"
# TITLE="GHOST v1.1  20030527                                 A.Empain'2003"
TITLE="GHOST v1.2  20030714                                 A.Empain'2003"

LOC=/etc/flists

if [ ! -d $LOC ]
then mkdir $LOC
fi

TM=`date +%y%m%d`
NAME=`hostname`
BASE="$LOC/$NAME"
ALL=${BASE}_ALL

CONF=${BASE}_CONF  # fixed list of config files (hand edited)

WORK=/tmp/work_ghost
TMP=/tmp/tmp_ghost

# -------------------------------------------------------------
function filterlist()  {
    ID=$1
    LIST="$LIST $ID"  # add it the the list
    echo "..$ID"
    PATT=$2
    egrep "$PATT" < $WORK > ${BASE}_${ID} # extract
    egrep -v "$PATT" < $WORK > $TMP;      # remain
    mv $TMP $WORK  # ready for the next selection
}

# -------------------------------------------------------------
function help()  {

        echo "# 
--------------------------------------------------------------A.Empain'2003"
        echo
        echo "GHOST : save the system as well defined compressed packages"
        echo
        echo "0: be sure to umount remote servers etc. ;-) "
        echo "1: build the collection of file lists /etc/flist/*  : BUILD-LIST"
    echo "2: create compressed cpio packs of any sublist"
        echo "   ALL is particular : every packs except HOME (system backup)"
        echo "   HOME : user's DATA backup, better done with on-the-fly file 
list & tar..."
    echo "3: list the 'table of content' of one compressed pack"
    echo "4: extract localy one CPZ pack"
        echo "5: extract in place (absolute path) one CPZ pack"
        echo 
"-----------------------------------------------------------------------------"
        echo  
}
# -------------------------------------------------------------
function  buildlist()  {
        
        echo "First, building the main list $ALL "      
        TM0=`date +%s`
        ## find / -mount | egrep -v "^/proc/" | egrep -v "^/mnt/" |
        find /           | egrep -v "^/proc/" | egrep -v "^/mnt/" |
                egrep -v "^/tmp/" | grep -v "/.cache/ | grep -v /log/ " > $ALL
         echo "ALL: `wc -l $ALL` lines"  
        TM1=`date +%s`
        echo "ALL: `expr $TM1 - $TM0` sec"
        echo "--------------------------------------"
        echo "Now, filtering it into sublists HOME, USR, OPT..."
        echo "  ALL: `wc -l $ALL` lines"  
        
        cp $ALL $WORK  # will be parsed to produce the many sub lists

        TM1=`date +%s`
        
        # -----------------------------------------
        filterlist OPT      "^/opt/"
        filterlist X11      "^/usr/X11R6/"
        filterlist BIN      "^/bin|^/sbin|^/usr/sbin"
        filterlist LIB      "^/lib|^/usr/lib"
        filterlist DOC      "^/usr/share/doc|^/usr/doc"
        filterlist SHARE    "^/usr/share"
        filterlist LOCAL    "^/usr/local"
        filterlist USR      "^/usr"
        filterlist MYSQL    "^/var/lib/mysql"
        filterlist VAR      "^/var" 
        filterlist BOOT     "^/boot"
        filterlist ROOT     "^/root"
        filterlist HOME     "^/home"
        filterlist EXP      "^/export"
        filterlist DBS      "^/dbs"
        filterlist DEV      "^/dev"
        # last step, discard the /alt/ refs from the remaining items
        grep -v "^/alt/" $WORK > ${BASE}_BASE
        rm $WORK
}

# -------------------------------------------------
function   makeimages() {
        echo $BAR$BAR
        echo "The images will be rebuilt (cpio + gzip)"
        echo ""
        echo "=========== ALL = everything EXCEPTED the /home =============" 
        cd $LOC
        LIST=`ls -1 $NAME_* | cut -d_ -f2 `  # palm_VAR .. VAR
        select CHOICE in $LIST 
        do      
                break
        done

        if [ $CHOICE = "ALL" ]
        then CHOICE=`echo  $LIST | sed 's/HOME//' | sed 's/ALL//' `
        fi
        echo "..CHOICE is set to $CHOICE"
        sleep 3

        echo ----------------------
        echo Disk free :
        echo ----------------------
        df
        echo ----------------------
        echo -n "Enter the destination path [/tmp] : "
        read PTH
        if [ -z $PTH ] 
        then PTH=/tmp
        fi
        header
        echo "..path set to $PTH, choice to $CHOICE"
        echo
        echo "                 REM: the next steps will take a while ;-)"
        echo 
        # --------------------
        for ITEM in $CHOICE
        do
           FILE=`ls /etc/flists/*$ITEM`
           DEST=$PTH/${NAME}_${TM}_${ITEM}
           echo "Creating $DEST ($FILE) (" `date` ")"
           cat $FILE | cpio -o 2>> /tmp/cpz.log | gzip > $DEST.cpz
        done
        date
}

# -------------------------------------------------------------
function header()  {
        clear
        BAR="======================================="
        echo $BAR$BAR
        echo $TITLE
        echo
        mount
}

# -------------------------------------------------------------
function selcpz() {
        LIST=`ls -1 *cpz`  
        if [ -z "$LIST" ]
        then
                echo "<E> no CPZ files in the current directory"
                echo "Please move to the correct ghost repository [/alt] and 
try again"
                help
                exit
        fi
        select CPZ in $LIST 
        do      
                break
        done
}
# ==========================================================
#       MAIN
#===========================================================

header
echo "---------------------------------------------------------------------"
echo "Select the main mode (based on lists of file systems) : "
select MODE in HELP BUILD_LIST MAKE_IMAGES TABLE LOCAL-EXTRACT ROOT-EXTRACT
do      echo "..mode is set to $MODE"
        break
done

# -----------------------------------------
if [ $MODE = HELP ]
then    
        help
        exit
fi

# -----------------------------------------
if [ $MODE = BUILD_LIST ]
then    
        header
        buildlist
        exit
fi

# -----------------------------------------
if [ $MODE = MAKE_IMAGES ]
then 
        header
        makeimages
fi
# -----------------------------------------
if [ $MODE = TABLE ]
then    
        selcpz
        zcat $CPZ | cpio -itv | less
        exit
fi

# -----------------------------------------
if [ $MODE = LOCAL-EXTRACT ]
then
        selcpz
        zcat $CPZ | 
                cpio -iv --make-directories --unconditional 
--no-absolute-filenames   
        exit
fi

# -----------------------------------------
if [ $MODE = ROOT-EXTRACT ]
then    
        selcpz
        zcat $CPZ | 
                cpio -iv --make-directories --unconditional  
        exit
fi





_______________________________________________________
Linux Mailing List - http://www.unixtech.be
Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux
Archives: http://www.mail-archive.com/linux@lists.unixtech.be
IRC: chat.unixtech.be:6667 - #unixtech
NNTP: news.gname.org - gmane.org.user-groups.linux.unixtech

Reply via email to