[FUGSPBR] Copia de HD

Rafael Mentz Aquino fugspbr em bsdserver.com.br
Sex Abr 25 14:28:37 BRT 2003


Oi pessoal,

Devido a alguns pedidos tb em private, aqui vai pra lista
o script para duplicar HD. Antes de utilizarem deem uma
boa olhada para ver se concordam com tudo (ex. tamanho
das particoes, para qual hd ele vai copiar).

E nao esquecam tb de que o script apaga o que tem no hd,
so be carefull... :-))

A minha utilizacao para este script eh backup integral,
ou seja, depois eh soh bootar pelo outro hd que funciona
como se fosse o original.



--
#!/bin/sh
#Adaptacao do script do LiveCD de Edson Brando - livecd.sourceforge.net
#Rafael Mentz Aquino

export PATH=.:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
# Inicia disco inteiro

TITLE="Auto-Instalacao"

#DISCO DE DESTINO
disc=ad2

#APAGA O CONTEUDO DO HD
dd count=128 < /dev/zero > /dev/${disc}

dialog --title "$TITLE" --infobox "Inicializando o disco..." 5 50

fdisk -I $disc > /dev/null 2> /dev/null

sleep 2

# Inicializa o disco

disklabel -rw ${disc}s1 auto > /dev/null 2> /dev/null

sleep 2

# Cria as particoes no disco

dialog --title "$TITLE" --infobox "Criando particoes ..." 5 50

disklabel -r ${disc}s1 > /var/modelo 2> /dev/null

# Define numero de setores do disco:

setores=`disklabel -r ${disc}s1 | tr -s ' ' | \
   sed 's/^ //g' | grep '^c: ' | \
  cut -f2 -d' '`

b_raiz=`expr 300 \* 1024 \* 2`
b_swap=`expr 600 \* 1024 \* 2`
b_var=`expr 2000 \* 1024 \* 2`
b_usr=`expr 5000 \* 1024 \* 2`
b_home=`expr $setores \- $b_raiz \- $b_swap \- $b_var \- $b_usr`

off_var=`expr $b_raiz \+ $b_swap`
off_usr=`expr $b_raiz \+ $b_swap \+ $b_var`
off_home=`expr $b_raiz \+ $b_swap \+ $b_var \+ $b_usr`
cat <<% >> /var/modelo
a: $b_raiz 0 4.2BSD 0 0 0
b: $b_swap $b_raiz swap
e: $b_var $off_var 4.2BSD 0 0 0
f: $b_usr $off_usr 4.2BSD 0 0 0
g: $b_home $off_home 4.2BSD 0 0 0
%

# Cria as particoes no disco e seta o mesmo como bootavel

disklabel -R -B ${disc}s1 /var/modelo > /dev/null 2> /dev/null

sleep 2

# Gera os sistemas de arquivos...

dialog --title "$TITLE" --infobox "Preparando para formatacao ..." 5 50

sleep 2

newfs /dev/${disc}a
newfs /dev/${disc}e
newfs /dev/${disc}f
newfs /dev/${disc}g

tunefs -n enable /dev/${disc}s1e
tunefs -n enable /dev/${disc}s1f
tunefs -n enable /dev/${disc}s1g

# Monta o disco

mkdir /tmp/root
mkdir /tmp/var
mkdir /tmp/usr

mount /dev/${disc}a /tmp/root
mount /dev/${disc}e /tmp/var
mount /dev/${disc}f /tmp/usr

cd /
for i in `ls | grep -v var | grep -v usr | grep -v dev | grep -v tmp |
grep -v proc | grep -v home`
do
   cp -Rpv $i /tmp/root
done
mkdir /tmp/root/usr
mkdir /tmp/root/var
mkdir /tmp/root/dev
mkdir /tmp/root/tmp
mkdir /tmp/root/proc
mkdir /tmp/root/home
chmod -R 777 /tmp/root/tmp
chmod +t /tmp/root/tmp
chmod 755 /tmp/root/usr
chmod 755 /tmp/root/var
chmod 755 /tmp/root/dev
chmod 755 /tmp/root/home
chmod 555 /tmp/root/proc
cp -Rpv /dev/MAKEDEV /tmp/root/dev/
cd /var
cp -Rpv * /tmp/var
cd /usr
cp -Rpv * /tmp/usr

dialog --title "$TITLE" --infobox "Recriando os devices no /dev ..." 5 50
cd /tmp/root/dev
./MAKEDEV all

if ! [ -c ad0s1a ]
then
   ./MAKEDEV ad0s1a
fi
if ! [ -c ad0s1b ]
then
   ./MAKEDEV ad0s1b
fi
if ! [ -c ad0s1e ]
then
   ./MAKEDEV ad0s1e
fi
if ! [ -c ad0s1f ]
then
   ./MAKEDEV ad0s1f
fi
if ! [ -c ad0s1g ]
then
   ./MAKEDEV ad0s1g
fi


chflags schg /tmp/root/kernel


dialog --title "$TITLE" --msgbox "Instalacao concluida!" 5 50
---

Rafael Mentz Aquino
www.bsdserver.com.br
fugspbr em bsdserver.com.br
-------------- Próxima Parte ----------
_______________________________________________________________
Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/


Mais detalhes sobre a lista de discussão freebsd