No linux, como faço para criar / restaurar um instantâneo de imagem de toda a minha unidade?

14

Sou muito mimado pelos utilitários do Windows que tiram um instantâneo digital de toda a sua unidade, da qual você pode restaurar no caso de uma falha na unidade. (por exemplo, como o Time Machine para Mac OS X).

Existe uma maneira semelhante de fazer isso no Linux?

user35997
fonte
1
Suponho que você seja mimado no Windows da mesma maneira que os usuários do Linux são mimados por ter utilitários de sistema. :)

Respostas:

13

A ferramenta que você deseja (que mais se parece com o Time Machine) é chamada rsnapshot . Ao contrário das ferramentas de backup normais, ele copia apenas as coisas que mudaram e permite que você viaje facilmente para muitos pontos no tempo. Você pode dizer quanto espaço em disco é permitido e ajusta o número de capturas instantâneas mantidas para permanecer dentro desse limite. Uma ferramenta muito legal.

Norman Ramsey
fonte
6

PartImage é executado na linha de comando ou como uma GUI de texto. Tem uma vantagem importante sobre o dd:

O Partimage copiará apenas os dados das partes usadas da partição. Para velocidade e eficiência, blocos livres não são gravados no arquivo de imagem. Isso é diferente do comando 'dd', que também copia blocos vazios.

StuffMaster
fonte
6

Você pode simplesmente " dd if=/dev/sda of=/path/to/target/backup" fazer se souber que tem a sala onde está tentando colocá-la. Você também pode " dd if=/dev/sda | bzip2 > /path/to/target/backup" fazer a compactação on-the-fly. Isso pode levar algum tempo, no entanto.

Ou você pode " tar --preserve-permissions -cjf backup.tar.bz2 /what/to/backup" ser um usuário com todas as permissões de leitura necessárias. Faça sua escolha.

Adendo: comprei recentemente um laptop novo, pré-instalado com o Vista. Eu imaginei que queria preservar o Vista em algum lugar, caso quisesse experimentá-lo em algum momento, então a primeira vez que inicializei o computador (com um linux livecd), fiz o seguinte:

dd if=/dev/sda | ssh 10.0.0.1 "bzip2 > ~/vistadrive.bz2"

Era uma rede local rápida, é claro. Caso contrário, teria sido mais prudente comprimir antes da transmissão:

dd if=/dev/sda | bzip2 | ssh 10.0.0.1 "cat > ~/vistadrive.bz2"

Espero que você ache isso útil.

Editar: Opa. Alterado bbpara dd...

Pianossauro
fonte
1
Isso também não incluiria o setor de inicialização? Isso sempre me atrapalhava ao usar o partimage para fazer backup de uma unidade do Windows.
greg, incluiria tudo, incluindo qualquer tabela de partição e mbr
Johannes Schaub - litb
4

Eu uso uma estratégia dupla: o número 1 é instantâneos do LVM e o número dois é o rsnapshot , que eu uso para fazer backups pontuais em um disco rígido externo dedicado. A unidade de disco rígido externa é colocada para que eu possa arrancá-la facilmente quando sair alguma coisa ruim. Ainda não utilizo um mecanismo externo que não seja gravar periodicamente um instantâneo em uma série de discos de DVD criptografados e enviá-los para o local de um amigo em outra cidade para armazenamento.

Eu recomendo o rsnapshot por causa da maneira como faz os instantâneos, usando links físicos para coisas que não mudaram. Se o diretório inicial ficar maluco, você pode simplesmente pegar uma cópia do rsnapshot e encerrar ou sincronizá-lo novamente com a nova partição pessoal após reinstalar ou recuperar a falha da unidade.

Michael Trausch
fonte
3

De várias. Existe o antiquado dd (1) , que é meio misterioso; há despejo (8) e restauração (8) ; existem vários produtos de código aberto, como Amanda ; e, se desejar, você pode instalar o ZFS e usar um script cron para obter instantâneos periódicos, oferecendo algo efetivamente idêntico ao Time Machine (consulte o blog de Tim Foster).

A Wikipedia possui um artigo com uma lista de muitas opções .

Charlie Martin
fonte
2

Se você deseja um backup em nível de arquivo como o time machine, recomendo o rsnapshot, como sugeriu Norman .

Se você deseja uma solução completa de backup e restauração de imagens, como o Norton Ghost, achei o CloneZilla funcionando muito bem. Inicializo o CD ao vivo e, em seguida, uso outra máquina como servidor SSH para fazer backup / restaurar as imagens de / para.

(Até consegui que a versão ao vivo funcionasse via inicialização PXE para um laptop tablet antigo que eu tinha sem unidade de CD e sem inicializar por USB, mas era muito complicado.)

E você também pode usá-lo para máquinas Windows.

Evan
fonte
1

Eu sempre me preocupei em usar o dd quando as unidades tinham tamanhos diferentes. Ou tinha números diferentes de cabeças / setores / faixas / etc.

O dd é muito útil ao capturar e fazer reflash na mesma unidade. Especialmente unidades USB ou partições do Windows. Mas, ao passar de uma unidade de 500Meg para uma unidade de 1500Meg, fico preocupado.

Além disso, quando minha unidade falha, eu gosto de poder usá-la como uma desculpa para atualizar para um sistema operacional mais recente.


Tudo isso dito, o bom e velho tar faz um bom trabalho! O GNU-tar inclui opções diff-tar-contra-arquivos , somente arquivos de atualização que foram alterados e apenas arquivos-archive-mais recentes que a data .

(Devo mencionar: eu encontrei um bug alguns anos atrás, que exigia que eu baixasse e instalasse uma versão mais recente do GNU-tar . (Algo a ver com nomes de caminho muito longos e vários volumes.) Não é grande coisa. Fique atento. isso é sempre uma opção.)

Você provavelmente deve excluir / proc , / sys e talvez / var / log / lastlog ou / mnt . (Normalmente, eu faço backup em uma unidade externa montada em / mnt . Fazer backup do backup - não é tão bom!)

Incluindo / dev pode valer a pena. O gnu-tar manipulará os dispositivos corretamente ( mknod ). Embora você provavelmente não use o backup / dev durante uma restauração. (Ocasionalmente, é bom ver quais permissões ou links você configurou antes.)

Além disso, você pode querer despejar o fdisk & rpm informações antes de fazer o backup. Por exemplo

/sbin/sfdisk -l /dev/sda > /....../info_sda
rpm -qa | sort > /...../info_rpms
rpm -qa --qf "%{ARCH} \t %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -k2,2 > /........./info_rpms_arch

Além de montar qualquer "opcional" sistema de arquivos montado pelo usuário .


fonte
1

Aqui estão as etapas completas para outro método, que funciona para passar de um disco rígido para outro e até clonar uma máquina se o hardware for semelhante.

Primeiro, crie uma imagem de um bom sistema de trabalho. Faça isso como root.

# cd / 
# tar cpzf hostname.tgz / --exclude=hostname.tgz --exclude=proc --exclude=lost+found --exclude=mnt --exclude=sys --exclude=home --exclude=usr/src

Faça backup das imagens do kernel

# mount /boot
# cd /boot
# tar cpzf boot.tgz *

Inicialize a máquina na qual deseja que a imagem seja implantada com um live cd / gentoo cd. Monte esse disco rígido e particione-o adequadamente:

# fdisk /dev/hda
/dev/hda1  /boot
/dev/hda2  swap
/dev/hda3  /tmp
/dev/hda4  /

Adicionar sistemas de arquivos

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4

Montar unidades:

# mount /dev/hda4 /mnt/new_root
# mkdir /mnt/new_root/tmp
# mkdir /mnt/new_root/boot
# mkdir /mnt/new_root/proc
# mkdir /mnt/new_root/sys
# mount /dev/hda3 /mnt/new_root/tmp
# mount /dev/hda1 /mnt/new_root/boot
# swapon /dev/hda2
# mount -t proc proc /mnt/new_root/proc

Copie o arquivo hostname.tgz nesta máquina.

Extraia-o na raiz da nova máquina / mnt / new_root

# tar -xzf hostname.tgz

Chroot para o novo ambiente.

# chroot /mnt/new_root /bin/bash
# env-update && source /etc/profile

Verifique /boot/grub/grub.conf e / etc / fstab

Configure o grub no disco rígido:

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install /dev/hda

Sair e desmontar unidades, reinicie a máquina.

deepwell
fonte
0

Você pode obter capturas instantâneas no Linux usando o LVM, o gerenciador de volume lógico.


fonte
1
Se você estiver usando LVM, não necessariamente o caso. Se sim, então sim, isso seria uma boa opção howtoforge.com/linux_lvm_snapshots
Gavin H