Como eu faço um backup do meu Master Boot Record (MBR) e Partition Table (PT)?

2

Eu gostaria de saber como:

  1. faça um backup
  2. faça uma restauração

de todos os MBRs e todos os PTs de todos os meus discos em um arquivo, para que eu possa fazer o backup facilmente usando rsync ou um programa semelhante.

    
por Fabby 20.09.2017 / 22:36

2 respostas

4

Hah, isso é muito fácil:

  1. crie um diretório /sysbackup :

    mkdir /sysbackup
    
  2. copie o seguinte script em um editor:

    #!/bin/bash
    #
    # This script saves the well-known (last good) partition table entries to a text file 
    # and the MBR to a binary file for all live disks on the system.
    #
    # Copyright (c) Fabby 2017
    #
    # This program is free software: you can redistribute it and/or modify it under 
    # the terms of the GNU General Public License as published by the Free Software 
    # Foundation, either version 3 of the License, or (at your option) any later 
    # version.
    #
    # This program is distributed in the hope that it will be useful, 
    # but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
    # or FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
    # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 
    # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
    # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 
    # THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
    # See the GNU General Public License for more details.
    #
    # You DID NOT receive a copy of the GNU General Public License along with 
    # this program as the license is bigger then this program.
    # Therefore, see http://www.gnu.org/licenses/ for more details.
    #
    # This script should be run at the /etc/rc.local or systemd equivalent point in time
    #
    for szDisk in /dev/?d?; 
    do
      sfdisk --dump "$szDisk" > /sysbackup/PartBackup-"$(hostname)-${szDisk//\//-}""$(date +"%F-%H%M%S%N")"".txt"
      dd if="$szDisk" of=/sysbackup/MBRBackup-"$(hostname)-${szDisk//\//-}""$(date +"%F-%H%M%S%N")"".bck" bs=512 count=1
    done;
    
  3. salve em /usr/local/bin (Por exemplo, como mbr-pt-bck )

  4. chmod +x /usr/local/bin/mbr-pt-bck
  5. executá-lo usando sudo mbr-pt-bck
  6. Certifique-se de que /sysbackup/ esteja incluído no comando rsync (ou comparável).

Alternativamente,

  • coloque o script acima em /etc/rc.local ou equivalente systemd e execute-o automaticamente a cada inicialização.
  • inclua-o no seu script de pré-backup
por Fabby 20.09.2017 / 22:36
0

Para restaurar qualquer um dos itens acima, também é muito fácil:

MBR:

dd if=/sysbackup/MBRBackup-szHostName-dev-sda.bck of=/dev/sda  bs=512 count=1

PT:

Primeiro para um cat /sysbackup/PartBackup-szHostName-dev-sda.txt

Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031   8056.032  primary   ext3

Depois é só fazer um:

parted /dev/sda rescue 

e você receberá o prompt de resgate parted, onde você preenche os dados do cat

acima
Start? 0
End? 8056
Information: A ext3 primary partition was found at 0.031MB ->
8056.030MB.  Do you want to add it to the partition table?
Yes/No/Cancel? y
    
por Fabby 29.09.2017 / 23:50