Isso costumava ser fácil antes dessa coisa UEFI. Você acabou de usar dd para fazer backup dos primeiros 63 setores e, em seguida, rsync para manter uma cópia de tudo em sua partição /.
Existe alguma maneira fácil de fazer o mesmo agora, onde há aquela partição efi montada como /boot/efi e, em seguida, a partição ext4 principal com o ponto de montagem / e a troca?
Use o rsync para fazer backup dos arquivos na partição raiz e no ESP (EFI System Partition). Se você também deseja uma cópia da tabela de partição, pode usar
sgdisk
a-b
opção (backup) de para salvar um backup da tabela de partição em um arquivo. Use-l
(carregar) para restaurar. A página de manual do sgdisk o aconselha a restaurar apenas o backup para o mesmo disco, porque o tamanho pode diferir ligeiramente mesmo em um disco nominalmente do mesmo tamanho. Você pode estar melhor se apenas recriar as partições manualmente de qualquer maneira.Acho que fazer backup de um disco é ainda mais fácil com UEFI, porque tudo, exceto a tabela de partições, está em arquivos, e não em setores msgic fora da partição, como os primeiros estágios do GRUB.
Costumo usar
dd if=/dev/sda of=/my/backup/image.img bs=8M
a imagem de todo o dispositivo em um arquivo de imagem quando preciso que o EFI esteja intacto em uma unidade que faço backup.Pode ser um pouco exagerado (e demorado), mas é a maneira mais simples que conheço.
Se necessário, você pode montar a imagem como um dispositivo de loop e navegar/gerenciar os arquivos lá.
gnome-disk-utility
fornece uma GUI fácil de usar para lidar com isso.Este backup fará uma cópia da tabela de partições e, em seguida, um backup incremental do conteúdo das partições com extensão
rsync
. A vantagem sobre um backup completo e cegodd
é que você pode atualizar rapidamente o backup com muita frequência e apenas as informações que foram alteradas serão atualizadas, e também que você tem todos os arquivos facilmente acessíveis na cópia e pode modificá-los antes restaurar o backup, ou resgatar apenas alguns deles.Estou usando o Debian Stretch (os comandos podem ter nomes diferentes, por exemplo, RedHat)
Tudo aqui feito como root, então cuidado!:
su
Veja qual disco rígido é identificado como sda, sdb, etc.
fdisk -l
Vejo que o disco rígido do laptop que desejo fazer backup é chamado
/dev/sda
(sda1, sda2... são as partições).Aviso: NÃO copie linhas às cegas. Presumo que o disco rígido que desejo fazer backup é,
/dev/sda
mas pode não ser o seu caso.Monte o disco rígido externo onde queremos armazenar a cópia de backup:
Ao fazer novamente
fdisk -l
, posso ver que seu nome é agora/dev/sdb
. O Debian Stretch o monta,/media/[username]/[whatever]
mas eu prefiro montá-lo como root em/mnt/USB/
, portanto:Determine se a tabela de partições é do tipo MBR ou GPT
Você vê "Tabela de partição: gpt" ou "Tabela de partição: msdos"
Faça backup da tabela de partições em um arquivo no disco rígido externo
Caso você tenha uma tabela MBR (tabela de partição: msdos):
Podemos fazer um backup binário completo de todos os setores onde a tabela de partições está armazenada:
(Mais tarde veremos como restaurar isso)
Observação: eu prefiro porque
dd
osfdisk
último pede para você confirmar se deseja gravar algumas alterações na tabela de partições e, durante minhas tentativas, apertei "Y" acidentalmente, por isso é fácil errar.Caso você tenha uma tabela GPT
(Mais tarde veremos como restaurar isso)
Backup incremental de todos os arquivos para a unidade externa:
Isso pressupõe que você, como eu, tenha uma única distribuição Linux instalada no disco rígido e que toda a árvore de informações esteja pendurada
/
( por favor, pessoal conhecedor do Linux, reescreva isso de uma maneira mais técnica ). No meu caso, fazer backup de tudo/
resolve o problema, porque a partição efi está montada/boot/efi
e seu conteúdo também será incluído no backup:rsync -aAXv /* /mnt/USB/backup_of_laptop_hd/files --exclude={/dev/ ,/proc/ ,/sys/ ,/tmp/ ,/run/ ,/mnt/ ,/media/ ,/lost+found ,/home/ /.gvfs,/var/tmp/ ,/home/ /.cache/ ,/home/ /.thumbnails/ / ,/root/.thumbnails/ / ,/root/.cache/ ,/home/ / .config/VirtualBox/*} --delete
Observação 1: Este é um backup incremental , ou seja, da próxima vez que você fizer isso, não precisará copiar tudo novamente, mas apenas os arquivos que foram alterados serão atualizados automaticamente (e os excluídos, serão excluídos da cópia também ).
Observação 2: Todas as opções entre {} são coisas que não fazem sentido em um backup (por exemplo, coisas temporárias) e também as máquinas virtuais (prefiro manter um arquivo .ova encapsulado com cada máquina).
Como restaurar tudo isso:
Primeiro, o pior cenário em que você estragou o disco rígido para sempre. Você primeiro restauraria a tabela de partições (ignore isso se sua tabela de partições ainda estiver ativa) e inicialize a partir de um USB ativo:
Abra um terminal na distribuição ao vivo e verifique o nome do disco rígido
Presumo que o disco rígido do laptop ainda esteja
/dev/sda
nos exemplos (aviso, desta vez pode ser/dev/sdb
).Se a sua era uma tabela MBR, monte o disco rígido externo com o backup como fizemos acima e depois:
Mas, se a sua fosse uma tabela GPT, seria:
Se você já fez isso, ou se não precisou fazer porque as partições estavam intactas, é hora de restaurar todos os arquivos. Isso também pode ser usado com bastante segurança a partir de um sistema funcionando normalmente para restaurá-lo para o último backup:
Observação: As últimas quatro linhas tive que adicioná-las ao
rsync
comando porque, por algum motivo, os arquivos que estão diretamente na raiz da árvore não são restaurados. Além disso, quando uma pasta está ligada / diretamente e é apagada no computador, ela não será apagada no backup. Isso não causa nenhum problema (os arquivos e bibliotecas correspondentes não estão mais lá, então ninguém os vincula ou exige), mas é feio. Alguém pode me ajudar a corrigir a sintaxe do rsync aqui?Finalmente,
Observação 1: Embora eu tenha restaurado o sistema para um estado anterior com a sintaxe rsync acima com bastante frequência, nunca precisei restaurar a tabela de partições, então:
Observação 2: Para simplificar, no caso de partições MBR, incluí apenas como fazer backup das partições primárias com
dd
. Se você tiver partições estendidas, faça o backup desta maneira:E restaure o MBR e a tabela de partições desta forma: