divendres, 30 d’abril del 2010

Gestor de restauració de particions amb Ubuntu

En aquesta entrada s'explica com crear un un sistema gestor de còpies de seguretat (salvaguarda/restauració) de particions. Aquest gestor es carrega durant l'arranc d'Ubuntu en mode de restauració (kernel = ... ro single).

En aquest exemple es gestionen les còpies de seguretat de la partició "/dev/sda1" on es troba instal·lat Windows XP.

Instal·lar paquets necessaris:

$ sudo apt-get install partimage parted


Crear/Editar el fitxer de creació de còpies de seguretat:

$ sudo nano /usr/share/recovery-mode/options/backup

Contingut del fitxer:

#!/bin/sh

. /usr/share/recovery-mode/l10n.sh

if [ "$1" = "test" ]; then
  echo $(eval_gettext "Fer una còpia de seguretat de WindowsXP")
  exit 0
fi
PARTITION="/media/WindowsXP"
DISP_PARTITION="/dev/sda1″

# La variable PARTITION conté la ruta de la partició on es troba Windows XP
# La variable DISP_PARTITION conté el dispositiu de la partició on es troba Windows XP

umount ${PARTITION}
rm -f /root/WindowsXP.partimg.gz*
partimage -z1 -o -f2 -d -b save ${DISP_PARTITION} /root/WindowsXP.partimg.gz

# Paràmetres de partimage:
# -z1: compress using gzip: fast and small image file (default)
# -o: Overwrite the existing image file without confirmation
# -f2: reboot (restart the computer)
# -d: Don’t ask any description for the image file.
# -b: batch mode: the GUI won't wait for an user action.

exit 0



Ho desem, sortim i li donem permisos d'execució:

$ sudo chmod +x /usr/share/recovery-mode/options/backup


Crear/Editar el fitxer de restauració de còpies de seguretat:

$ sudo nano /usr/share/recovery-mode/options/restore

Contingut del fitxer:

#!/bin/sh

. /usr/share/recovery-mode/l10n.sh

if [ "$1" = "test" ]; then
  echo $(eval_gettext "Restaurar imatge de Windows XP")
  exit 0
fi
PARTITION="/media/WindowsXP"
DISP_PARTITION="/dev/sda1″

# La variable PARTITION conté la ruta de la partició on es troba Windows XP
# La variable DISP_PARTITION conté el dispositiu de la partició on es troba Windows XP

umount ${PARTITION}
partimage -b -f2 restore ${DISP_PARTITION} /root/WindowsXP.partimg.gz.000

# Paràmetres de partimage:
# -b: batch mode: the GUI won't wait for an user action.
# -f2: reboot (restart the computer)

exit 0


Ho desem, sortim i li donem permisos d'execució:

$ sudo chmod +x /usr/share/recovery-mode/options/restore

Si voleu, també podeu limitar l'accés a les opcions del menú de restauració, per a fer-ho només heu de treure els permisos d'execució d'allò que vulgueu que no es mostri al menú, per exemple:

$ cd /usr/share/recovery-mode/options
sudo chmod -x clean

També si voleu, podeu forçar reiniciar el sistema al sortir del menú de restauració, per a fer-ho editeu el fitxer :

$ sudo nano /usr/share/recovery-mode/recovery-menu

i substituïu tots els "exit 0" i "exit" per reboot. al final d'aquest fitxer també heu d'afegir un reboot:

#!/bin/bash

# include gettext stuff
. /usr/share/recovery-mode/l10n.sh

# main
menu_text=$(eval_gettext "Menú de restauració")

while true; do
  unset items

  items[c++]="sortir"
  items[c++]=$(eval_gettext "   Sortir del menú")

  for i in /usr/share/recovery-mode/options/*; do
    if [ -x "$i" ]; then
      name="`"$i" test`"
      if [ $? -eq 0 ]; then
        items[c++]="`basename "$i"`"
        items[c++]="   $name"
      fi
    fi
  done

  choice="$(/usr/bin/whiptail --menu "$menu_text" 15 70 6 \
                             "${items[@]}" \
                             3>&1 1>&2 2>&3 3>&-)"

  if [ $? -ne 0 ]; then
    reboot
  fi

  if [ "$choice" = "sortir" ]; then
    reboot
  fi

  "/usr/share/recovery-mode/options/$choice"

  if [ "$?" -eq 42 ]; then
    reboot
  fi
done
reboot

Referència: http://www.noticiasubuntu.com/

Sign by Danasoft - Myspace Layouts and Signs