AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 424208
Accepted
Mephisto
Mephisto
Asked: 2018-02-15 11:41:24 +0800 CST2018-02-15 11:41:24 +0800 CST 2018-02-15 11:41:24 +0800 CST

Como fazer um backup incremental e pesquisável completo de todo o disco rígido e tabela de partições?

  • 772

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?

backup uefi
  • 3 3 respostas
  • 1435 Views

3 respostas

  • Voted
  1. Johan Myréen
    2018-02-15T14:34:31+08:002018-02-15T14:34:31+08:00

    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 sgdiska -bopçã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.

    • 3
  2. Mio Rin
    2018-02-15T12:26:41+08:002018-02-15T12:26:41+08:00

    Costumo usar dd if=/dev/sda of=/my/backup/image.img bs=8Ma 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-utilityfornece uma GUI fácil de usar para lidar com isso.

    • 2
  3. Best Answer
    Mephisto
    2018-02-15T17:47:21+08:002018-02-15T17:47:21+08:00

    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 cego ddé 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

    1. 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/sdamas pode não ser o seu caso.

    2. 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:

      umount /media/[username]...
      mkdir /mnt/USB/  # this is done only this first time
      mount -t auto /dev/sdb1 /mnt/USB -rw
      mkdir /mnt/USB/backup #this is done only this first time
      mkdir /mnt/USB/backup/partition_table #this is done only this first time
      mkdir /mnt/USB/backup/files #this is done only this first time
      
    3. Determine se a tabela de partições é do tipo MBR ou GPT

      parted /dev/sda print
      

      Você vê "Tabela de partição: gpt" ou "Tabela de partição: msdos"

    4. 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:

      dd if=/dev/sda of=/mnt/USB/backup/partition_table/backup-sda.mbr bs=512 count=1
      

      (Mais tarde veremos como restaurar isso)

      Observação: eu prefiro porque ddo sfdiskú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

      sgdisk --backup=/mnt/USB/backup/partition_table/gpt_partition_table.bin /dev/sda
      

      (Mais tarde veremos como restaurar isso)

    5. 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/efie 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).

    6. 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

      fdisk -l
      

      Presumo que o disco rígido do laptop ainda esteja /dev/sdanos 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:

      dd if=/mnt/USB/backup/partition_table/backup-sda.mbr of=/dev/sda
      

      Mas, se a sua fosse uma tabela GPT, seria:

      sgdisk --load-backup=/mnt/USB/backup/partition_table/gpt_partition_table.bin /dev/sda
      

      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:

      rsync -aAXv /mnt/USB/backup/files/* / --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs,/var/tmp/*,/home/*/.cache/*,/root/.cache/*} --delete
      cp /mnt/USB/backup/files/vmlinuz / --preserve=all --remove-destination
      cp /mnt/USB/backup/files/vmlinuz.old / --preserve=all --remove-destination
      cp /mnt/USB/backup/files/initrd.img / --preserve=all --remove-destination
      cp /mnt/USB/backup/files/initrd.img.old / --preserve=all --remove-destination
      

      Observação: As últimas quatro linhas tive que adicioná-las ao rsynccomando 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,

      grub-install /dev/sda
      

    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:

    1. Você está por sua conta e risco e,
    2. Sinta-se à vontade para sugerir edições para melhorar esta resposta.

    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:

        dd if=/dev/sda of=/mnt/USB/backup/partition_table/backup-sda.mbr bs=512 count=1
    
        sfdisk -d /dev/sda > /mnt/USB/backup/partition_table/backup-sda.sfdisk
    

    E restaure o MBR e a tabela de partições desta forma:

        dd if=/mnt/USB/backup/partition_table/backup-sda.mbr of=/dev/sda
    
        sfdisk /dev/sda < /mnt/USB/backup/partition_table/backup-sda.sfdisk
    
    • 2

relate perguntas

  • Red Hat 7.4: Como injetar o arquivo kickstart na mídia USB para o sistema somente UEFI?

  • entradas de variável efi em /sys/firmware/efi/efivars/

  • comando pax para backup incremental com links físicos semelhantes ao rsync

  • Como organizar seu sistema para vários projetos? [fechado]

  • Posso salvar o instantâneo do timeshift na caixa de depósito?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve