Páginas

domingo, 14 de agosto de 2011

Migrar Gentoo a otra maquina

Este script adaptado por BrianW a partir de los creados por fdavid y nianderson lo he encontrado www.foro.ethek.com. Se utiliza para realizar una migración de un sistema Gentoo Linux a otra máquina. He decidido copiar y pegar el script completo, sin cambios.

Antes de realizar el copiado del archivo previamente generado en el pc origen iniciar con un live-cd de gentoo particionar y formatear el disco duro del ordenador al que queremos migrar, montar las particiones hacer un chroot y seguir los pasos para una instalación gentoo.

En principio otro ordenador con otros componentes de hardware necesitará recompilar el kernel, ajustar parámetros en el archivo /etc/make.conf, instalar grub, etc. Esto no es un tutorial, he migrado un sistema gentoo de un disco duro a otro en mi portátil por sustitución de disco, el nuevo es un SSD de 120Gb sata II, en ese caso utilicé fsarchiver para realizar imágenes de las particiones, las puse en un disco duro externo y luego restauré las imágenes con el fsarchiver (aplicación potente y versátil incluida en el system rescue cd de linux).

Especial atención a los directorios y archivos excluidos. Boot está en una partición que se monta automáticamente o no?. Indicar donde está la partición /boot. Caso que se encuentre en /dev/sda1 tendría que modificar mount /boot por  mount /dev/sda1 /boot. La opción para dividir el archivo .tar.bz2 resultante está comentada, con la capacidad de los discos duros actuales practicamente no se utiliza. Fíjese que la partición de arranque es copiada como /bootcpy primero es copiada y luego borrada. Es un script bash al estilo de Linux: sencillo, claro, transparente y fácilmente modificable.

Lo más interesante de todo esto es que los sistemas basados Linux no son temporales ni efímeros. Están hechos para siempre.


#!/bin/bash
    ##  Backup script for Gentoo Linux
    ##  Author: BrianW
    ##  Date: 2004.10.26.
    ##  Adapted from backupHome.sh by fdavid
    ##  Adapted from mkstage4.sh by nianderson

    ##  This is a script to create a custom stage 4 tarball (System and
    ##  boot backup)
    ##  I use this script to make a snapshot of my system. Meant to be 
    ## done weekly in my case

    ##  Please check the options and adjust to your specifics.

    echo -=- Starting the Backup Script...
    echo -=-

    echo -=- Setting the variables...

    ##  The location of the stage 4 tarball.
    ##  Be sure to include a trailing /
    stage4Location=/root/

    ##  The name of the stage 4 tarball.
    archive=$stage4Location$(hostname)-stage4.tar.bz2

    ##  Directories/files that will be exluded from the stage 4 tarball.
    ##
    ##  Add directories that will be recursively excluded, delimited 
    ## by a space.
    ##  Be sure to omit the trailing /
    dir_excludes="/dev /proc /sys /tmp /usr/portage /var/tmp /root /home"
    ##
    ##  Add files that will be excluded, delimited by a space.
    ##  You can use the * wildcard for multiple matches.
    ##  There should always be $archive listed or bad things will happen.
    file_excludes="$archive"
    ##
    ##  Combine the two *-excludes variables into the $excludes variable
    excludes="$(for i in $dir_excludes; do if [ -d $i ]; then echo -n " --exclude=$i
    /*"; fi; done) $(for i in $file_excludes; do echo -n " --exclude=$i"; done)"

    ##  The options for the stage 4 tarball.
    tarOptions="$excludes --create --absolute-names --preserve-permissions --bzip2 -
    -verbose --totals --file"

    echo -=- Done!
    echo -=-

    ##  Mounting the boot partition
    echo -=- Mounting boot partition, then sleeping for 5 seconds...
    mount /boot
    sleep 5
    echo -=- Done!
    echo -=-

    ##  Creating a copy of the boot partition (copy /boot to /bootcpy).
    ##  This will allow the archiving of /boot without /boot needing to
    ##  be mounted.
    ##  This will aid in restoring the system.
    echo -=- Copying /boot to /bootcpy ...
    cp -R /boot /bootcpy
    echo -=- Done!
    echo -=-

    ##  Unmounting /boot
    echo -=- Unmounting /boot then sleeping for 5 seconds...
    umount /boot
    sleep 5
    echo -=- Done!
    echo -=-

    ##  Creating the stage 4 tarball.
    echo -=- Creating custom stage 4 tarball \=\=\> $archive
    echo -=-
    echo -=- Running the following command:
    echo -=- tar ${tarOptions} ${archive} /
    tar ${tarOptions} ${archive} /;
    echo -=- Done!

    ##  Split the stage 4 tarball in cd size tar files.
    ##  To combine the tar files after copying them to your
    ##  chroot do the following: "cat *.tar.bz2 >> stage4.tar.bz2".
    ##  Uncomment the following lines to enable this feature.
    #echo -=- Splitting the stage 4 tarball into CD size tar files...
    #split --bytes=700000000 ${archive} ${archive}.
    #echo -=- Done!

    ##  Removing the directory /bootcpy.
    ##  You may safely uncomment this if you wish to keep /bootcpy.
    echo -=- Removing the directory /bootcpy ...
    rm -rf /bootcpy
    echo -=- Done!
    echo -=-

    ##  This is the end of the line.
    echo -=- The Backup Script has completed!



Linux es genial!.

No hay comentarios:

Publicar un comentario