[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