Estas configurações foram criadas, no intuito de desenvolver um sistema de Backup e Recovery 100% automatizado, de uma instalação do Windows 7.
(versão Debian) para backup e restauração de partições. Também, variáveis como data e hora diretamente no
Está funcionando perfeitamente para minhas necessidades: foi testado apenas em um HD interno.
Para fazer uma instalação semelhante a esta, siga os passos, supondo que a partição de Recovery será
1. Dê boot na máquina com um live-CD que possua o GRUB na versão 2.0 (eu utilizei Ubuntu 13.10).
2. Use o GParted, caso precise redimensionar ou criar partições.
3. Monte a partição e navegue pelo terminal até a raiz da partição e crie as pastas necessárias, com os comandos:
4. Baixe os links citados acima (Clonezilla e SystemRescueCD), com os comandos:
5. Instale o GRUB2, com o comando:
6. Copie este arquivo
7. Edite o arquivo
e ajuste o necessário como IP e senha do root e VNC (ambas utilizadas no boot do SystemRescueCD).
8. Reinicie a máquina e use.
Screenshot (obviamente, neste screenshot, o GRUB2 está utilizando um tema Blue, que é baseado no tema Zorin (padrão no Zorin OS 8):
#=============================================================================
# Arquivo de configuração para grub2
#=============================================================================
#
# Desenvolvido por: João Sales (joaosalless at gmail dot com)
#
# Estas configurações foram criadas no intuito de desenvolver um sistema de Backup e Recovery 100%
# automatizado de uma instalação do Windows 7.
#
# Utiliza-se o Clonezilla (versão debian) para backup e restauração de partições
# Utiliza-se variáveis como data e hora diretamente no grub.cfg para automatizar o nome dos backups.
# Está funcionando perfeitamente com algumas resalvas: Foi testado apenas em um HD interno.
#
# O HD testado tinha as seguintes partições:
# /dev/sda1 100M NTFS (Reservado pelo sistema)
# /dev/sda2 49G NTFS (Windows)
# /dev/sda3 68G ext3 (Recovery)
# /dev/sda4 42G NTFS (Documentos) Todos os perfis de usuarios ficam nesta partição. Nenhum documento é perdido quando o Windows é restaurado.
#
# Nesta instalação utilizei:
# Clonezilla: http://colocrossing.dl.sourceforge.net/project/clonezilla/clonezilla_live_stable/2.2.2-32/clonezilla-live-2.2.2-32-i686-pae.zip
# SystemRescueCD: http://ufpr.dl.sourceforge.net/project/systemrescuecd/sysresccd-x86/4.1.0/systemrescuecd-x86-4.1.0.iso
#
# Para fazer uma instalação semelhante a esta, siga os passos supondo que a partição de Recovery será /dev/sda3:
#
# 1 - Dê boot na máquina com um LiveCD que possua o grub na versão 2.0 (eu utilizei Ubuntu 13.10)
# 2 - Use o Gparted caso precise redimensionar ou criar partições
# 3 - Monte a partição e navegue pelo terminal até a raiz da partição e crie as pastas necessárias com os comandos:
# $ sudo mkdir -p /mnt/Recovery
# $ sudo mount /dev/sda3 /mnt/Recovery
# $ sudo mkdir -p {tmp,Recovery/{isos,images/{OEM,backups}}}
# $ sudo chmod -R 770 Recovery tmp
#
# 4 - Baixe os links citados acima (Clonezilla e SystemRescueCD) com os comandos:
# $ cd tmp
# $ wget http://colocrossing.dl.sourceforge.net/project/clonezilla/clonezilla_live_stable/2.2.2-32/clonezilla-live-2.2.2-32-i686-pae.zip
# $ unzip clonezilla-live-2.2.2-32-i686-pae.zip
# $ cp -rf live/* ../Recovery/
#
# $ wget http://ufpr.dl.sourceforge.net/project/systemrescuecd/sysresccd-x86/4.1.0/systemrescuecd-x86-4.1.0.iso
# cp systemrescuecd-x86-4.1.0.iso ../Recovery/isos
#
# 5 - Instale o grub2 com o comando:
# $ sudo grub-install --boot-directory=/mnt/Recovery/Recovery
#
# 6 - Copie este arquivo "grub.cfg" para /mnt/Recovery/Recovery/grub/grub.cfg
#
# 7 - Reinicie a máquina e use.
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
set default=0
set timeout=20
set SYSRCD_IP=192.168.0.200
set SYSRCD_DNS=208.67.222.222,208.67.220.220
set SYSRCD_GATEWAY=192.168.0.1
set SYSRCD_HOSTNAME=sysrcd
set ROOT_PASSWD=sysrcd
set VNC_PASSWD=sysrcd
set RECOVERY_ROOT_DIR=Recovery
export RECOVERY_ROOT_DIR
export SYSRCD_IP
export SYSRCD_DNS
export SYSRCD_GATEWAY
export SYSRCD_HOSTNAME
export ROOT_PASSWD
export VNC_PASSWD
set IMG_DIRECTORY=${RECOVERY_ROOT_DIR}/images/backups
set AUTO_RECOVERY_IMG=AUTO-RECOVERY
set OEMIMG_DIRECTORY=${RECOVERY_ROOT_DIR}/images/OEM
set OEM_RECOVERY_IMG=OEM-RECOVERY
set ISO_DIRECTORY=${RECOVERY_ROOT_DIR}/isos
export RECOVERY_ROOT_DIR
export AUTO_RECOVERY_IMG
export IMG_DIRECTORY
export ISO_DIRECTORY
export OEMIMG_DIRECTORY
insmod datehook
set BKP_DATETIME=$YEAR-$MONTH-$DAY-$HOUR-$MINUTE
export BKP_DATETIME
if loadfont /${RECOVERY_ROOT_DIR}/grub/fonts/unicode.pf2 ; then
insmod png
set gfxmode=1024x768
insmod gfxterm
insmod vbe
terminal_output gfxterm
load_video
set locale_dir=$prefix/locale
set lang=pt_BR
insmod gettext
fi
if [ -f /${RECOVERY_ROOT_DIR}/grub/themes/blue/theme.txt ] ; then
set theme=/${RECOVERY_ROOT_DIR}/grub/themes/blue/theme.txt
export theme
else
set menu_color_normal=white/black
set menu_color_highlight=black/yellow
export menu_color_normal
export menu_color_highlight
fi
# Localiza a partição que contém o windows instalado
if [ -f (hd0,1)/Windows/explorer.exe ]; then
set WIN_PARTITION=sda1
export WIN_PARTITION
elif [ -f (hd0,2)/Windows/explorer.exe ]; then
set WIN_PARTITION=sda2
export WIN_PARTITION
elif [ -f (hd0,3)/Windows/explorer.exe ]; then
set WIN_PARTITION=sda3
export WIN_PARTITION
elif [ -f (hd0,4)/Windows/explorer.exe ]; then
set WIN_PARTITION=sda4
export WIN_PARTITION
fi
# Localiza a partição de Backups (arquivos de boot do Clonezilla e a pasta usada para salvar e restaurar imagens)
if [ -f (hd0,1)/${RECOVERY_ROOT_DIR}/initrd.img ]; then
set BKP_PARTITION=sda1
set BKP_HDNUM=(hd0,1)
export BKP_PARTITION
export BKP_HDNUM
elif [ -f (hd0,2)/${RECOVERY_ROOT_DIR}/initrd.img ]; then
set BKP_PARTITION=sda2
set BKP_HDNUM=(hd0,2)
export BKP_PARTITION
export BKP_HDNUM
elif [ -f (hd0,3)/${RECOVERY_ROOT_DIR}/initrd.img ]; then
set BKP_PARTITION=sda3
set BKP_HDNUM=(hd0,3)
export BKP_PARTITION
export BKP_HDNUM
elif [ -f (hd0,4)/${RECOVERY_ROOT_DIR}/initrd.img ]; then
set BKP_PARTITION=sda4
set BKP_HDNUM=(hd0,4)
export BKP_PARTITION
export BKP_HDNUM
fi
if [ -f (hd1,1)/${RECOVERY_ROOT_DIR}/initrd.img ]; then
set BKP_PARTITION=sdb1
set BKP_HDNUM=(hd1,1)
export BKP_PARTITION
export BKP_HDNUM
elif [ -f (hd1,2)/${RECOVERY_ROOT_DIR}/initrd.img ]; then
set BKP_PARTITION=sdb2
set BKP_HDNUM=(hd1,2)
export BKP_PARTITION
export BKP_HDNUM
elif [ -f (hd1,3)/${RECOVERY_ROOT_DIR}/initrd.img ]; then
set BKP_PARTITION=sdb3
set BKP_HDNUM=(hd1,3)
export BKP_PARTITION
export BKP_HDNUM
elif [ -f (hd1,4)/${RECOVERY_ROOT_DIR}/initrd.img ]; then
set BKP_PARTITION=sdb4
set BKP_HDNUM=(hd1,4)
export BKP_PARTITION
export BKP_HDNUM
fi
menuentry "Microsoft Windows 7" {
insmod ntfs
search --set=root --file /bootmgr
chainloader +1
}
submenu 'Backup e Restauração Automatizada do Sistema Operacional' --class backup {
submenu 'Fazer Backup do Sistema Operacional' --class backup {
menuentry "Criar backup do sistema operacional 100% Automatizado" {
search --set=root --file /${RECOVERY_ROOT_DIR}/initrd.img
set ocs_prerun0="mount /dev/${BKP_PARTITION} /mnt"
set ocs_prerun1="mount --bind /mnt/${IMG_DIRECTORY} /home/partimag/"
set ocs_live_run_custom="ocs-sr -sc -g auto -e1 auto -rm-win-swap-hib -e2 -r --batch -i 2000 -p reboot saveparts ${AUTO_RECOVERY_IMG} ${WIN_PARTITION}"
set BOOT_OPTIONS="live-media-path=${RECOVERY_ROOT_DIR} boot=live config keyboard-model=abnt2 keyboard-layouts=br locales=pt_BR.UTF-8 noswap edd=on"
linux /${RECOVERY_ROOT_DIR}/vmlinuz ${BOOT_OPTIONS} ocs_prerun=\"${ocs_prerun0}\" ocs_prerun1=\"${ocs_prerun1}\" ocs_live_run=\"${ocs_live_run_custom}\" nosplash toram=filesystem.squashfs
initrd /${RECOVERY_ROOT_DIR}/initrd.img
}
menuentry "Criar backup do sistema operacional (com o nome ${BKP_DATETIME})" {
search --set=root --file /${RECOVERY_ROOT_DIR}/initrd.img
set ocs_prerun0="mount /dev/${BKP_PARTITION} /mnt"
set ocs_prerun1="mount --bind /mnt/${IMG_DIRECTORY} /home/partimag/"
set ocs_live_run_custom="ocs-sr -sc -g auto -e1 auto -rm-win-swap-hib -e2 -r --batch -i 2000 -p reboot saveparts ${BKP_DATETIME} ${WIN_PARTITION}"
set BOOT_OPTIONS="live-media-path=${RECOVERY_ROOT_DIR} boot=live config keyboard-model=abnt2 keyboard-layouts=br locales=pt_BR.UTF-8 noswap edd=on"
linux /${RECOVERY_ROOT_DIR}/vmlinuz ${BOOT_OPTIONS} ocs_prerun=\"${ocs_prerun0}\" ocs_prerun1=\"${ocs_prerun1}\" ocs_live_run=\"${ocs_live_run_custom}\" nosplash toram=filesystem.squashfs
initrd /${RECOVERY_ROOT_DIR}/initrd.img
}
menuentry "Criar backup do sistema operacional (você define o nome do backup)" {
search --set=root --file /${RECOVERY_ROOT_DIR}/initrd.img
set ocs_prerun0="mount /dev/${BKP_PARTITION} /mnt"
set ocs_prerun1="mount --bind /mnt/${IMG_DIRECTORY} /home/partimag/"
set ocs_live_run_custom="ocs-sr -sc -g auto -e1 auto -rm-win-swap-hib -e2 -r --batch -i 2000 -p reboot saveparts ask_user ${WIN_PARTITION}"
set BOOT_OPTIONS="live-media-path=${RECOVERY_ROOT_DIR} boot=live config keyboard-model=abnt2 keyboard-layouts=br locales=pt_BR.UTF-8 noswap edd=on"
linux /${RECOVERY_ROOT_DIR}/vmlinuz ${BOOT_OPTIONS} ocs_prerun=\"${ocs_prerun0}\" ocs_prerun1=\"${ocs_prerun1}\" ocs_live_run=\"${ocs_live_run_custom}\" nosplash toram=filesystem.squashfs
initrd /${RECOVERY_ROOT_DIR}/initrd.img
}
if [ ! -f ${BKP_HDNUM}/${OEMIMG_DIRECTORY}/${OEM_RECOVERY_IMG}/clonezilla-img ]; then
menuentry "Criar imagem do sistema operacional em modo OEM (Estado de Fábrica)" {
search --set=root --file /${RECOVERY_ROOT_DIR}/initrd.img
set ocs_prerun0="mount /dev/${BKP_PARTITION} /mnt"
set ocs_prerun1="mount --bind /mnt/${OEMIMG_DIRECTORY} /home/partimag/"
set ocs_live_run_custom="ocs-sr -sc -g auto -e1 auto -rm-win-swap-hib -e2 -r --batch -i 2000 -p reboot saveparts ${OEM_RECOVERY_IMG} ${WIN_PARTITION}"
set BOOT_OPTIONS="live-media-path=${RECOVERY_ROOT_DIR} boot=live config keyboard-model=abnt2 keyboard-layouts=br locales=pt_BR.UTF-8 noswap edd=on"
linux /${RECOVERY_ROOT_DIR}/vmlinuz ${BOOT_OPTIONS} ocs_prerun=\"${ocs_prerun0}\" ocs_prerun1=\"${ocs_prerun1}\" ocs_live_run=\"${ocs_live_run_custom}\" nosplash toram=filesystem.squashfs
initrd /${RECOVERY_ROOT_DIR}/initrd.img
}
fi
}
submenu 'Restaurar o Sistema Operacional' --class recovery {
if [ -f ${BKP_HDNUM}/${IMG_DIRECTORY}/${AUTO_RECOVERY_IMG}/clonezilla-img ]; then
menuentry "Restaurar o sistema operacional (100% Automatizado)" {
search --set=root --file /${RECOVERY_ROOT_DIR}/initrd.img
set ocs_prerun0="mount /dev/${BKP_PARTITION} /mnt"
set ocs_prerun1="mount --bind /mnt/${IMG_DIRECTORY} /home/partimag/"
set ocs_live_run_custom="ocs-sr -g auto -e1 auto -e2 --batch -k -r -p reboot restoreparts ${AUTO_RECOVERY_IMG} ${WIN_PARTITION}"
set BOOT_OPTIONS="live-media-path=${RECOVERY_ROOT_DIR} boot=live config keyboard-model=abnt2 keyboard-layouts=br locales=pt_BR.UTF-8 noswap edd=on"
linux /${RECOVERY_ROOT_DIR}/vmlinuz ${BOOT_OPTIONS} ocs_prerun=\"${ocs_prerun0}\" ocs_prerun1=\"${ocs_prerun1}\" ocs_live_run=\"${ocs_live_run_custom}\" nosplash toram=filesystem.squashfs
initrd /${RECOVERY_ROOT_DIR}/initrd.img
}
fi
menuentry "Restaurar o sistema através de um backup (Escolha o Backup)" {
search --set=root --file /${RECOVERY_ROOT_DIR}/initrd.img
set ocs_prerun0="mount /dev/${BKP_PARTITION} /mnt"
set ocs_prerun1="mount --bind /mnt/${IMG_DIRECTORY} /home/partimag/"
set ocs_live_run_custom="ocs-sr -g auto -e1 auto -e2 -k --batch -r -p reboot restoreparts ask_user ${WIN_PARTITION}"
set BOOT_OPTIONS="live-media-path=${RECOVERY_ROOT_DIR} boot=live config keyboard-model=abnt2 keyboard-layouts=br locales=pt_BR.UTF-8 noswap edd=on"
linux /${RECOVERY_ROOT_DIR}/vmlinuz ${BOOT_OPTIONS} ocs_prerun=\"${ocs_prerun0}\" ocs_prerun1=\"${ocs_prerun1}\" ocs_live_run=\"${ocs_live_run_custom}\" nosplash toram=filesystem.squashfs
initrd /${RECOVERY_ROOT_DIR}/initrd.img
}
if [ -f ${BKP_HDNUM}/${OEMIMG_DIRECTORY}/${OEM_RECOVERY_IMG}/clonezilla-img ]; then
menuentry "Restaurar o sistema para estado de fábrica - (OEM Recovery)" {
search --set=root --file /${RECOVERY_ROOT_DIR}/initrd.img
set ocs_prerun0="mount /dev/${BKP_PARTITION} /mnt"
set ocs_prerun1="mount --bind /mnt/${OEMIMG_DIRECTORY} /home/partimag/"
set ocs_live_run_custom="ocs-sr -g auto -e1 auto -e2 --batch -k -r -p reboot restoreparts ${OEM_RECOVERY_IMG} ${WIN_PARTITION}"
set BOOT_OPTIONS="live-media-path=${RECOVERY_ROOT_DIR} boot=live config keyboard-model=abnt2 keyboard-layouts=br locales=pt_BR.UTF-8 noswap edd=on"
linux /${RECOVERY_ROOT_DIR}/vmlinuz ${BOOT_OPTIONS} ocs_prerun=\"${ocs_prerun0}\" ocs_prerun1=\"${ocs_prerun1}\" ocs_live_run=\"${ocs_live_run_custom}\" nosplash toram=filesystem.squashfs
initrd /${RECOVERY_ROOT_DIR}/initrd.img
}
fi
}
menuentry "Manutenção Remota de Backups - VNC: ${SYSRCD_IP}:5901" {
set isofile="/${ISO_DIRECTORY}/systemrescuecd-x86-4.1.0.iso"
export ${isofile}
loopback loop ${isofile}
set root=(loop)
linux /isolinux/altker32 docache setkmap=br-a dostartx isoloop=${isofile} ethx=${SYSRCD_IP}/24 dns=${SYSRCD_DNS} gateway=${SYSRCD_GATEWAY} dhcphostname=${SYSRCD_HOSTNAME} rootpass=${ROOT_PASSWD} vncserver=1:${VNC_PASSWD}
initrd /isolinux/initram.igz
}
}
submenu "Iniciar
Linux (Apartir de Live ISOs)" --class gnu-linux {
menuentry 'Ubuntu 13.10 32bit - Live' --class ubuntu {
set isofile="/${ISO_DIRECTORY}/ubuntu-13.10-desktop-i386.iso"
set seedfile='/cdrom/preseed/ubuntu.seed'
loopback loop ${isofile}
linux (loop)/casper/vmlinuz iso-scan/filename=${isofile} boot=casper file=${seedfile} debian-installer/language=pt keyboard-configuration/layoutcode=br noprompt quiet splash --
initrd (loop)/casper/initrd.lz
}
menuentry 'Kubuntu 13.10 64bit - Live' --class kubuntu {
set isofile="/${ISO_DIRECTORY}/kubuntu-13.10-desktop-amd64.iso"
set seedfile='/cdrom/preseed/ubuntu.seed'
loopback loop ${isofile}
linux (loop)/casper/vmlinuz.efi iso-scan/filename=${isofile} boot=casper file=${seedfile} maybe-ubiquity quiet splash --
initrd (loop)/casper/initrd.lz
}
menuentry "Manutenção Remota de Backups - VNC: ${SYSRCD_IP}:5901" {
set isofile="/${ISO_DIRECTORY}/systemrescuecd-x86-4.1.0.iso"
export ${isofile}
loopback loop ${isofile}
set root=(loop)
linux /isolinux/altker32 docache setkmap=br-a dostartx isoloop=${isofile} ethx=${SYSRCD_IP}/24 dns=${SYSRCD_DNS} gateway=${SYSRCD_GATEWAY} dhcphostname=${SYSRCD_HOSTNAME} rootpass=${ROOT_PASSWD} vncserver=1:${VNC_PASSWD}
initrd /isolinux/initram.igz
}
}
menuentry 'Reiniciar o Computador' {
reboot
}
menuentry 'Desligar o Computador' {
halt
}