IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Passos a seguir

  • Crear un directori de treball a la home:
$ mkdir ~/GhostPC
$ cd GhostPC
  • Obtenir la ISO:
wget http://ftp.caliu.cat/pub/distribucions/xarnoppix/GhostPC-2.1.iso
$ mkdir mnt
$ sudo mount -o loop GhostPC-2.1.iso mnt
$ mkdir extract-cd
$ rsync --exclude=mnt/GhostPC-2.1.squashfs -a mnt/ extract-cd/ 
$ mkdir squahsfs
$ sudo mount -t squashfs -o loop mnt/GhostPC-2.1.squashfs squashfs
$ mkdir edit
$ sudo cp -va squashfs/* edit/

Ara ja tenim una carpeta (edit) on fer les modificacions del GhostPC.

Personalització del GhostPC:

He trobat a faltar algunes coses i tenim alguns error a la nostra xarxa amb els scripts de la GhostPC:

  • No es formaten les particions swap
  • No ens crea de forma correcta la partició extesa
  • NO funciona el DHCP
  • Per alguna raó no funciona el GRUB i s'ha d'instal·lar amb grub-install
  • Decidim fer un CD per tipus d'imatge i que els alumnes no hagin d'escollir.
  • Personalitzar el fonts d'escriptori

Anem per pams...

Personalització dels scripts:

Sembla ser que els scripts a mida de la GhostPC estan a la carpeta /usr/local/sbin (edit/usr/local/sbin):

$ ls
autolog      genmenu  ghostserver  partimage   repositori  usbinstall  xconf
gen_iso_usb  ghostpc  gparted      partimaged  udpcast     xarxaconf

Canviar el fons de pantalla:

Aconseguir connexió a internet:

$ sudo cp /etc/resolv.conf edit/etc/ ; sudo cp /etc/hosts edit/etc/

Executar chroot:

$ sudo chroot edit

Instal·lar alguna aplicació com feh per poder mostrar les imatges al fons de pantalla

$ sudo apt-get install feh

Sortir de la "gàbia"

$ exit

Ara copiem el fons de pantalla que tinguem (suposem que es diu backgorund.png) a la carpeta .fluxbox de l'usuari del CD:

$ cp background.png edit/home/usuari/.fluxbox/backgrounds

I canviem el fitxer edit/home/usuari/.fluxbox/init per mostrar el fons de pantalla:

$ sudo nano edit/home/usuari/.fluxbox/init

I afegim al final la línia:

session.screen0.rootCommand:    fbsetbg -f /home/usuari/.fluxbox/backgrounds/background.png

Podeu trobar més info sobre els fons de pantalla a fluxbox a:

Reconstrucció LIVE CD:

Ens assegurem que no hi hagi fitxer squash a extract-cd:

$ sudo rm extract-cd/GhostPC-2.1.squashfs 
rm: no s'ha pogut eliminar «extract-cd/GhostPC-2.1.squashfs»: No such file or directory

Generem el fitxer squash:

$ sudo mksquashfs edit extract-cd/GhostPC-2.1.squashfs

I generem la ISO:

$ cd extract-cd

$ sudo mkisofs -r -V "GhostPCIESNIcolauCopernic" -cache-inodes -J -l -b boot/grub/stage2_eltorito -c boot.catalog  -no-emul-boot -boot-load-size 4 -boot-info-table -o ../GhostPCIESNicolauCopernicSeguretat.iso .

La imatge es pot provar amb alguna màquina virtual de VMWare.

Notes

GhostPC treballa amb la versió estàtica de Partimaged. El partimage és una mica capgròs i per evitar problemes sempre és millor assegurar-se d'utilitzar la mateixa versió de servidor que de client. Podeu obtenir la versió al sourceforge de partimage:

$ wget http://heanet.dl.sourceforge.net/sourceforge/partimage/partimage-static-i386-0.7.1.tar.bz2

La versió estàtica treballa sense usuaris ni SSL.

GhostPC a mida de l'IES Nicolau Copèrnic

Podeu trobar exemples d'imatges GhostPC a mida a la web:

http://www.iescopernic.com/~sergi/GhostCD

Per exemple les imatges dels PCs de l'aula 1.

Comandes a mida per al centre

Menu a mida

El fitxer que determina el menu de fluxbos esta a>

/home/usuari/.fluxbox/menu

El contingut del fitxer:

[begin] (Fluxbox)
[exec] (Genera Menu GhostPC ) { xterm -iconic -e sudo /usr/local/sbin/genmenu} <>
[exec] (Terminal) { xterm -geometry 100x40 -T "Terminal" -e /bin/bash --login} <>
[exec] (Configurar CD) { xterm -iconic -e sudo /usr/local/sbin/configurarcd} <>
[exec] (Configuració Xarxa) { xterm -iconic -e sudo /usr/local/sbin/xarxaconf} <>
[exec] (Configuració Xorg) { xterm -iconic -e sudo /usr/local/sbin/xconf} <>
[exec] (GhostPC Server) { xterm -iconic -e sudo /usr/local/sbin/ghostserver} <>
[exec] (UDPCast Server) { xterm -iconic -e sudo /usr/local/sbin/udpcast} <>
[exec] (Particionador) { xterm -iconic -e sudo /usr/local/sbin/gparted} <>
[exec] (Generació USB GhostPC) { xterm -iconic -e sudo /usr/local/sbin/usbinstall} <>
[exec] (Generació Micro Iso USB Boot) { xterm -iconic -e /usr/local/sbin/gen_iso_usb} <>
[exec] (Instal·lació GhostPC a Disc Dur) { xterm -iconic -e sudo kmdr-executor "$HOME/install.kmdr"} <>
[exec] (Navegador Web) { xterm -iconic -e /usr/bin/iceweasel &} <>
[exec] (Navegador Samba) { xterm -iconic -e sudo /usr/bin/xsmbrowser &} <>
[exec] (Gestor fitxers i FTP) { xterm -iconic -e /usr/bin/filerunner &} <>
[exec] (Cerca Mines) { xterm -iconic -e  /usr/games/xdemineur &} <>
[exec] (Ús de la memòria) { xterm -iconic -e /usr/bin/gmemusage & } <>
[exec] (Xkill (Compte !!!\)) { xterm -iconic -e  /usr/bin/xkill} <>
[exec] (Apagar) { xterm -iconic -e sudo /sbin/halt} <> 
[exec] (Reiniciar) { xterm -iconic -e sudo /sbin/reboot} <>
[end]

Comandes /usr/local/sbin

$# cat /usr/local/sbin/configurarcd 
#!/bin/bash

HOME=/home/usuari 

FITXER_SERVER=$HOME/server
FITXER_DATA=$HOME/data
FITXER_DISC=$HOME/disc
FITXER_PARTICIOLINUX=$HOME/particiolinux
FITXER_DESCRIPCIO=$HOME/descripcio 

server=`cat $FITXER_SERVER`
disc=`cat $FITXER_DISC`
particiolinux=`cat $FITXER_PARTICIOLINUX`
descripcio=`cat $FITXER_DESCRIPCIO`
data=`cat $FITXER_DATA` 

Xdialog --title "Servidor partimage i Rsync" --inputbox "Entra la adreça IP del servidor partimage/rsync:" 20 50 "$server" 2> /tmp/server
Xdialog --title "Introdueix la data" --inputbox "Introdueix la data:" 20 50 "$data" 2> /tmp/data
Xdialog --title "Selecciona el disc" --inputbox "Selecciona el disc del que es vol fer imatge:" 20 50 "$disc" 2> /tmp/disc
Xdialog --title "Selecciona la partició Linux" --inputbox "Selecciona la partició Linux on esta Grub:" 20 50 "$particiolinux" 2> /tmp/particiolinux
Xdialog --title "Selecciona la descripció" --inputbox "Escull una descripció per a la imatge" 20 50 "$descripcio" 2> /tmp/descripcio


# cat genmenu 
#!/bin/sh -e

CASA=/home/usuari

#Buidem el menu del fluxbox
if [ ! -f $CASA/.fluxbox/menu.orig ]; then
cp -a $CASA/.fluxbox/menu $CASA/.fluxbox/menu.orig
fi

:> $CASA/.fluxbox/menu

#Arrel sistema live
arrel=`mount | egrep -w /.dirs/dev | cut -d " " -f 1 | cut -c1-8 | cut -d "/" -f 3`

if [ "$arrel" = "" ]; then
arrel="ram"
fi

#Modificat per Sergi Tur: Res de configuració de xarxa


#Res de detecció de Partimage ni Servidor Rsync. S'indiquen explicitament

server=`cat /home/usuari/server`

Xdialog --title "Generacio Menu" --infobox "Utilitzant el servidor partimage: $server" 14 56 5000

sleep 2

ippartimaged=`cat /home/usuari/server`

echo "$ippartimaged" > /tmp/ippart

Xdialog --title "Generacio Menu" --infobox "Utilitzant Repositori de configuracions: $ippartimaged" 14 56 5000

sleep 2


particions_menu ()
{

fdisk -ul | egrep "^/dev" | egrep -v " 5 " | egrep -v " f  " | egrep -v " 82 " | egrep -v "$arrel" | cut -d "/" -f 3 | cut -d " " -f 1 | while read  part;do

tipus=`cat /proc/mounts | egrep -w $part | cut -d " " -f 3`

mida=`df -h | egrep -w $part | tr -s [:blank:] | cut -d " " -f 3`

if [ ! -z "$tipus" ]
then

echo "$part-$tipus $mida"

fi

done

}

discs_menu ()
{ 

disc=`cat /proc/partitions | egrep -v "$arrel" | egrep -w [sh]d[abcdefghijk] | tr -s [:blank:] | cut -d " " -f 5`

echo "$disc"

}

# Genero un menu per al Fluxbox
echo "[begin] (Fluxbox)" > $CASA/.fluxbox/menu
echo "[submenu] (GhostPC) {}
[submenu] (Partició a imatge) {}" >> $CASA/.fluxbox/menu

particions_menu | while read dades; do

part_tipus=`echo $dades | cut -d " " -f 1`
 
echo "[exec] (Salva $dades al servidor $server ) { xterm -geometry 100x40 -T \"Particio $part_tipus\" -fg white -bg blue -e sudo /usr/local/sbin/ghostpc  -s $part_tipus $server } <>" >> $CASA/.fluxbox/menu

done

echo "[end]" >> $CASA/.fluxbox/menu  

echo "[submenu] (Imatge a partició) {}" >> $CASA/.fluxbox/menu

particions_menu | while read dades; do

part_tipus=`echo $dades | cut -d " " -f 1`

echo "[exec] (Restaura $dades desde el servidor $server ) { xterm -geometry 100x40 -T \"Particio $part_tipus\" -fg white -bg blue -e sudo  /usr/local/sbin/ghostpc -r $part_tipus $server } <>" >> $CASA/.fluxbox/menu

done

echo "[end]" >> $CASA/.fluxbox/menu

echo "[submenu] (Disc a imatge) {}" >> $CASA/.fluxbox/menu

discs_menu | while read dades; do

echo "[exec] (Salva $dades al servidor $server ) { xterm -geometry 100x40 -T \"Disc $dades\" -fg white -bg blue -e sudo /usr/local/sbin/ghostpc -S $dades  $server } <>" >> $CASA/.fluxbox/menu 

done

echo "[end]" >> $CASA/.fluxbox/menu

echo "[submenu] (Imatge a disc) {}" >> $CASA/.fluxbox/menu

discs_menu | while read dades; do 

echo "[exec] (Restaura $dades desde el servido r $server ) { xterm -geometry 100x40 -T \"Disc $dades\" -fg white -bg blue -e sudo /usr/local/sbin/ghostpc  -R $dades $server } <>" >> $CASA/.fluxbox/menu 
done

echo "[end]
[end]" >> $CASA/.fluxbox/menu
echo "[exec] (Genera Menu GhostPC ) { xterm -iconic -e sudo /usr/local/sbin/genmenu} <>" >> $CASA/.fluxbox/menu
if [ ! -z $ippartimaged ]; then
echo "[exec] (Salva les Configuracions al servidor $ippartimaged) {xterm -iconic -e sudo /usr/local/sbin/repositori -s $ippartimaged} <>
[exec] (Recupera les Configuracions desde el servidor $ippartimaged) {xterm -iconic -e sudo /usr/local/sbin/repositori -r $ippartimaged} <>" >>   $CASA/.fluxbox/menu
fi
discs_menu | while read dades; do 

echo "[exec] (Genera Configuracio $dades ) { xterm -iconic -e sudo /usr/local/sbin/ghostpc -G $dades } <>" >> $CASA/.fluxbox/menu

done
echo "[exec] (Terminal) { xterm -geometry 100x40 -T \"Terminal\" -fg white -bg blue -e /bin/bash --login} <>
[exec] (Configurar CD) { xterm -iconic -e sudo /usr/local/sbin/configurarcd} <>
[exec] (GhostPC Server) { xterm -iconic -e sudo /usr/local/sbin/ghostserver} <>
[exec] (UDPCast Server) { xterm -iconic -e sudo /usr/local/sbin/udpcast} <>
[exec] (Particionador) { xterm -iconic -e sudo /usr/local/sbin/gparted} <>
[exec] (Generació USB GhostPC) { xterm -iconic -e sudo /usr/local/sbin/usbinstall} <>
[exec] (Generació Micro Iso USB Boot) { xterm -iconic -e /usr/local/sbin/gen_iso_usb} <>
[exec] (Instal·lació GhostPC a Disc Dur) { xterm -iconic -e sudo kmdr-executor "$HOME/install.kmdr"} <>
[exec] (Navegador Web) { xterm -iconic -e /usr/bin/iceweasel &} <>
[exec] (Navegador Samba) { xterm -iconic -e sudo /usr/bin/xsmbrowser &} <>
[exec] (Gestor fitxers i FTP) { xterm -iconic -e /usr/bin/filerunner &} <>
[exec] (Cerca Mines) { xterm -iconic -e  /usr/games/xdemineur &} <>
[exec] (Xkill (Compte !!!\)) { xterm -iconic -e  /usr/bin/xkill} <>
[exec] (Ús de la memòria) { xterm -iconic -e /usr/bin/gmemusage &} <>
[exec] (Apagar) { xterm -iconic -e sudo /sbin/halt} <>
[exec] (Reiniciar) { xterm -iconic -e sudo /sbin/reboot} <>
[end]" >> $CASA/.fluxbox/menu


cat /tmp/server > $FITXER_SERVER
cat /tmp/data > $FITXER_DATA
cat /tmp/disc > $FITXER_DISC
cat /tmp/particiolinux > $FITXER_PARTICIOLINUX
cat /tmp/descripcio > $FITXER_DESCRIPCIO 

rm -rf /tmp/server
rm -rf /tmp/data
rm -rf /tmp/disc
rm -rf /tmp/particiolinux
rm -rf /tmp/descripcio




# cat ghostpc 
#!/bin/sh
#ghostpc
 
data=`cat /home/usuari/data`

#Arrel sistema live
arrel=`mount | egrep -w /.dirs/dev | cut -d " " -f 1 | cut -c1-8 | cut -d "/" -f 3` 

if [ "$arrel" = "" ]; then
arrel="ram"
fi
  
#Funcions accesòries
desmunta_particio () 

{

# Desmuntem la partició 
particio=$1

umount $particio &> /dev/null

# Comprova si encara està muntada

cat /proc/mounts | egrep -w "$particio"  &> /dev/null

while [ $? = 0 ]; do

fuser -m -k $particio  &> /dev/null

umount $particio  &> /dev/null

cat /proc/mounts | grep $particio  &> /dev/null

done

}
desmunta_tot ()
  
{
  
# Desmuntem la SWAP per que es pugui canviar la taula de particions
while [ -n "`swapon -s | grep dev`" ]; do
  
swapoff -a
  
done
 
# Desmuntem totes les particions trobades
for i in `fdisk -ul | egrep "^/dev" | egrep -v " 5 " | egrep -v " 82 " | cut -d " " -f 1 | egrep -v $arrel`; do
  
desmunta_particio $i
  
done
  
}

particions_menu ()
{
  
fdisk -ul | egrep "$1" | egrep "^/dev" | egrep -v " 5 " | egrep -v " 82 " | cut -d "/" -f 3 | cut -d " " -f 1 | while read part;do
  
tipus=`cat /proc/mounts | egrep -w $part | cut -d " " -f 3`
  
#mida=`df -h | egrep -w $part | tr -s [:blank:] | cut -d " " -f 3`
  
if [ -n "$tipus" ] && [ -n "$part" ]
then
  
#echo "$part-$tipus $mida"
 
echo "$part-$tipus"
 
 fi
  
done
  
}
 
discs_menu ()
{
  
disc=`cat /proc/partitions | egrep -w [sh]d[abcdefghijk] |  tr -s [:blank:] | cut -d " " -f 5`
  
echo "$disc"
  
}
 
llista_swap()
{
#Modificat per Sergi Tur. És swap en Angles i no pas Intercanvi  
#fdisk -ul | grep Intercanvi | cut -d "/" -f 3 | cut -d " " -f 1
fdisk -ul | grep swap | cut -d "/" -f 3 | cut -d " " -f 1
  
}
  
gen_config()
{
#Canviat per Sergi Tur. El disc haurà de ser sempre el mateix
disc=`cat /home/usuari/disc`

#Modificat per Sergi Tur
#La descripció és fixa. Un CD per aula i tipus de màquina
#Descripcions Possibles:
#Aula1:
#Aula1HP80G
#Aula1Siemens80G
#Aula480G
#S'extableix al fitxer /home/usuari/descripcio 

descripcio=`cat /home/usuari/descripcio | sed s/\ /_/g`

#Xdialog --title "Generant Configuracio" --inputbox "Escriu una descripció de la configuració:" 14 56 2> /tmp/descripcio
  
#descripcio=`cat /tmp/descripcio | sed s/\ /_/g`

if [ -d /home/usuari/ghosting/$disc-$data-$descripcio ] 

then

Xdialog --title "Generant Configuracio" --yesno "Una configuració prèvia amb el mateix nom ja existeix localment. Vols sobreescriure-la:?" 14 56
if [ $? = 1 ]; then 

Xdialog --title "ERROR" --infobox "Operació abortada" 14 56 5000

return 1

fi

rm -rf /home/usuari/ghosting/$disc-$data-$descripcio
fi

mkdir -p /home/usuari/ghosting/$disc-$data-$descripcio
 

particions_menu $disc > /home/usuari/ghosting/$disc-$data-$descripcio/config

Xdialog --title "Generant Configuracio" --infobox "Particions detectades: \n\n `cat  /home/usuari/ghosting/$disc-$data-$descripcio/config`" 14 56 5000

sleep 5

#Backup del MBR
dd if=/dev/$disc of=/home/usuari/ghosting/$disc-$data-$descripcio/backup.mbr count=1 bs=512  
   
#Backup de la taula de particions
sfdisk -d /dev/$disc > /home/usuari/ghosting/$disc-$data-$descripcio/taula_part.sfdisk
  

chown -R usuari.usuari /home/usuari/ghosting

echo "$disc-$data-$descripcio" > /tmp/genconfig
Xdialog --title "Generant Configuracio" --infobox "Guardant MBR i Taula de particions" 14 56 5000

sleep 5
  
}
  
#Creació de la imatge de tot el disc dur
disc_a_imatge ()
{
#Habitualment el disc dur estarà a /dev/hda o /dev/sda
disc=`cat /home/usuari/disc`

#Servidor per defecte ns1 o bé la ip, server=192.168.0.1
server=$2

#IP Repo
repo=`cat /tmp/ippart`

gen_config $disc

/usr/local/sbin/repositori -s $repo
  
#Desmuntem les particions muntades
desmunta_tot

proof="/home/usuari/ghosting/$(cat /tmp/genconfig)/config"

cat `echo $proof` | while read dades; do  

part=`echo $dades | cut -d "-" -f 1` 

#Afegit per Sergi Tur
# Afegir la descripcio a la imatge per que sino pot esborrar altre imatges del servidor partimage?
# La descripció s'estableix al fitxer /home/usuari/descripcio durant la crida a gen_config()

descripcio=`cat /home/usuari/descripcio`
  
partimage -bdocM -z1 -s$server save /dev/$part $dades-$descripcio
if [ $? = 1 ]; then

Xdialog --title "ERROR" --infobox "Error al executar partimage: \n\n partimage -bdocM -z1 -s$server save /dev/$part $dades-$descripcio" 14 65 5000

Xdialog --title "ERROR" --infobox "Operació abortada" 14 56 5000

return 1

fi


Xdialog --title "Disc $disc a Imatge" --infobox "Partició /dev/$part salvada al server $server" 14 56 5000
  
sleep 5
  
done
  
Xdialog --title "Disc $disc a Imatge" --infobox "Operacions Finalitzades !!!" 14 56 5000

sleep 5

mount -a
  
}
  
  
#Restauració de la imatge de tot el disc dur
imatge_a_disc ()
  
{
  
#Habitualment el disc dur estarà a /dev/hda o/dev/sda
disc=`cat /home/usuari/disc`

#ip Servidor per defecte
server=$2

#IP Repo
repo=`cat /tmp/ippart`

#Desmuntem les particions muntades
desmunta_tot

/usr/local/sbin/repositori -r $repo

#Modificat per Sergi Tur.
#No demanar quina imatge s'ha de restaurar. Sempre és la mateixa= 1 CD per AULA i tipus de màquina

#Xdialog --title "Imatge a disc $disc" --fselect "/home/usuari/ghosting/" 14 56 2> /tmp/selconf

#conf=`cat /tmp/selconf | cut -d "/" -f 5`

#Modificat per Sergi Tur
#La descripció és fixa. Un CD per aula i tipus de màquina
#S'extableix al fitxer /home/usuari/descripcio

disc=`cat /home/usuari/disc`
descripcio=`cat /home/usuari/descripcio | sed s/\ /_/g`

conf=$disc-$data-$descripcio

Xdialog --title "Restauració d'una imatge" --infobox "Restaurant la imatge: $conf" 14 56 6000

particionsimatge=`cat /home/usuari/ghosting/$conf/config`

Xdialog --title "Particions de la imatge" --infobox "Pariticions de la imatge: \n\n $particionsimatge " 14 56 5000

if [ -f /home/usuari/ghosting/$conf/taula_part.sfdisk ]
then

echo "El fitxer /home/usuari/ghosting/$conf/taula_part.sfdisk existeix:" 

cat /home/usuari/ghosting/$conf/taula_part.sfdisk
 
else

Xdialog --title "Error" --infobox "NO existeix el fitxer: \n\n /home/usuari/ghosting/$conf/taula_part.sfdisk" 14 56 5000
Xdialog --title "ERROR" --infobox "Operació abortada" 14 56 5000

return 1

fi


#Creem una taula de particions nova
parted -s /dev/$disc mklabel msdos

#Forçem la restauració de la taula de particions
sfdisk -f /dev/$disc < /home/usuari/ghosting/$conf/taula_part.sfdisk
  
#Forçem la relectura de la taula de particions per part del nucli
sfdisk -f -R /dev/$disc

Xdialog --title "Restaurada la taula de particions" --infobox "Restaurada la taula de particions" 14 56 5000
  
llista_swap | while read SWAP; do

mkswap /dev/$SWAP 

Xdialog --title "Partició SWAP: $SWAP" --infobox "Creada la partició swap: $SWAP" 14 56 5000
  
#swapon /dev/$SWAP
   
done

if [ -f /home/usuari/ghosting/$conf/config ]
then

echo "El fitxer /home/usuari/ghosting/$conf/config existeix:"

cat /home/usuari/ghosting/$conf/config
 
else

Xdialog --title "Error" --infobox "NO existeix el fitxer: \n\n /home/usuari/ghosting/$conf/config" 14 56 5000

Xdialog --title "ERROR" --infobox "Operació abortada" 14 56 5000

return 1

fi
cat /home/usuari/ghosting/$conf/config | while read dades; do
  
part=`echo $dades | cut -d "-" -f 1`
 
partimage -b -f3 -s$server restore /dev/$part $dades-$descripcio.000

if [ $? = 1 ]; then 

Xdialog --title "ERROR" --infobox "Error al executar partimage: \n\n partimage -b -f3 -s$server restore /dev/$part $dades-$descripcio.000" 14 65 5000 

Xdialog --title "ERROR" --infobox "Operació abortada" 14 56 5000

return 1

fi

Xdialog --title "Imatge a disc $disc" --infobox "Restaurada la partició /dev/$part desde el servidor $server" 14 56 5000
   
sleep 5
   
done
  
#Restauració del MBR del original

dd if=/home/usuari/ghosting/$conf/backup.mbr of=/dev/$disc bs=512 count=1 

Xdialog --title "Restauració del MBR" --infobox "Restaurat el MBR" 14 56 5000

sleep 5

mount -a

#Reinstal·lació de Grub

mkdir /home/usuari/p

#Modificat per Sergi Tur Badenas
#Instal·lació de Grub
#OJO HDDx on x la partició on estigui la Ubuntu
particiolinux=`cat /home/usuari/particiolinux`

mount /dev/$particiolinux /home/usuari/p 

echo "(hd0)   /dev/$disc" > /home/usuari/p/boot/grub/device.map

grub-install --root-directory=/home/usuari/p /dev/$disc

echo "(hd0)   /dev/sda" > /home/usuari/p/boot/grub/device.map

Xdialog --title "Restauració del Grub" --infobox "Grup restaurat a /dev/$disc" 14 56 5000

Xdialog --title "Imatge a disc $disc" --infobox "Operacions Finalitzades !!!" 14 56 5000

sleep 50
  
}
 
 
  1. Creació de la imatge d'una partició

particio_a_imatge () {

  1. ip Servidor

imatge=$1 server=$2

part=`echo $imatge | cut -d "-" -f 1`

  1. Desmuntem les particions muntades

desmunta_particio /dev/$part

partimage -bdocM -z1 -s$server save /dev/$part $imatge

if [ $? = 1 ]; then

Xdialog --title "ERROR" --infobox "Error al executar partimage: \n\n partimage -bdocM -z1 -s$server save /dev/$part $imatge" 14 65 5000

Xdialog --title "ERROR" --infobox "Operació abortada" 14 56 5000

return 1

fi

Xdialog --title "Particio /dev/$part a imatge $imatge" --infobox "Operacions Finalitzades !!!" 14 56 5000

sleep 5

mount -a

}


  1. Restauració de la imatge d'una partició

imatge_a_particio () {

  1. ip Servidor

imatge=$1 server=$2

part=`echo $imatge | cut -d "-" -f 1`

  1. Desmuntem les particions muntades

desmunta_particio /dev/$part

partimage -b -f3 -s$server restore /dev/$part $imatge.000

if [ $? = 1 ]; then

Xdialog --title "ERROR" --infobox "Error al executar partimage: \n\n partimage -b -f3 -s$server restore /dev/$part $imatge.000" 14 65 5000

Xdialog --title "ERROR" --infobox "Operació abortada" 14 56 5000

return 1

fi

Xdialog --title "Imatge a particio /dev/$part" --infobox "Operació Finalitzada !!!" 14 56 5000

sleep 5

mount -a

}

inici () {

accio=$1 entitat=$2 server=$3

case "$accio" in

-S) disc_a_imatge $entitat $server


-R) imatge_a_disc $entitat $server

-s) particio_a_imatge $entitat $server


-r) imatge_a_particio $entitat $server

-G) gen_config $entitat

--help)

echo "S'utilitza com:

ghostpc -R disc servidor

ghostpc -S disc servidor

ghostpc -r partició servidor

ghostpc -s partició servidor

ghostpc -G disc

"

esac

}

  1. Crida principal del programa

inici $1 $2 $3

Recursos