ubuntu - particionamiento - ¿Cómo hago una copia de seguridad de mi registro de arranque maestro (MBR) y mi tabla de particiones

CorePress2023-09-17  1

Me gustaría saber cómo:

  1. hacer una copia de seguridad
  2. hacer una restauración

de todos los MBR y todos los PT de todos mis discos en un archivo para poder hacer una copia de seguridad fácilmente usando rsync o un programa comparable.

  • 1 No creo en hacer una copia de seguridad de MBR ya que es muy fácil reinstalar el gestor de arranque. Y si cambia la tabla de particiones, parte del MBR no será válida. Puedes hacer una copia de seguridad de MBR según la publicación de Fabby. Pero 512 incluye la parte principal de la tabla de particiones. Si usa 446, entonces esa es la parte del código del cargador de arranque sin MBR. Prefiero ejecutar el informe de Boot-Repair o bootinfoscript que ejecuto como parte de la copia rsync para documentar toda la configuración. La bifurcación actualizada ya que el bootinfoscript original no parece mantenerse github.com/arvidjaar/bootinfoscript y tengo una unidad flash con Ubuntu para restaurar MBR. -oldfred 21 de septiembre de 2017 a las 0:24
  • 1 Excepcionalmente, no estoy de acuerdo con Oldfred en este caso. He visto muchas publicaciones de personas que han perdido particiones debido a que sobrescribieron accidentalmente los primeros sectores de un disco duro o porque manipularon con torpeza un comando que involucraba una herramienta de partición. Tener una copia de seguridad de la tabla de particiones en tal caso permitirá restaurar fácilmente las particiones que no hayan sido dañadas. Sin una copia de seguridad, te quedarás usando TestDisk. Aunque TestDisk es una herramienta útil, no es 100% confiable; Prefiero tener una copia de seguridad que tener que depender de TestDisk. - Rod Smith 21 de septiembre de 2017 a las 14:19
  • @oldfred Yo personalmente hago copias de seguridad completas del sistema, incluido el MBR, pero no las hago con suficiente frecuencia y hace unas semanas tuve un error de superbloque. No es gran cosa, ya que Parted Rescue lo resolvió, pero ahora tengo una copia del MBR y PT de todos mis discos en los otros discos... (¡aunque se siente bien que un genio como el Sr. rEFInd esté de acuerdo conmigo!) I& #39;m :-) :-) :-) - Fabby 22 de septiembre de 2017 a las 18:02
  • 2Solo para analizar mi respuesta, con suerte, un poco más claramente. MBR es un código de arranque de dos partes y un código de arranque. tabla de particiones. En el pasado hice una copia de seguridad de la tabla de particiones y confié más en la salida de texto de bootinfoscripts de la tabla de particiones para poder reconstruirla por completo. Pero según la recomendación de Rod Smith en 2010, ahora estoy totalmente convertido a gpt. Todavía tengo salida de texto, pero gpt tiene una tabla de particiones de respaldo que es un poco más confiable que la antigua tabla de particiones MBR (msdos). Para la parte de arranque de MBR, es más fácil reinstalar grub. Y si UEFI realiza una copia de seguridad de ESP, partición del sistema efi. Entonces sí, tabla de particiones de respaldo. -oldfred 22 de septiembre de 2017 a las 18:29


------------Respuesta------------

Ja, eso es bastante fácil:

  1. crea un directorio /sysbackup:

    mkdir /sysbackup
    
  2. copia el siguiente script en un 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. guárdalo en /usr/local/bin (por ejemplo, como mbr-pt-bck)

  4. chmod +x /usr/local/bin/mbr-pt-bck
  5. ejecútelo usando sudo mbr-pt-bck
  6. Asegúrese de que /sysbackup/ esté incluido en su comando rsync (o similar).

Como alternativa,

  • puInstale el script anterior en /etc/rc.local o systemd equivalente y ejecútelo automáticamente en cada arranque.
  • inclúyalo en su script previo a la copia de seguridad

  • 2 Los discos más rápidos no usan /dev/sdX sino /dev/nvme.... Sigue siendo +1 por 10 veces más comentarios que las cinco líneas de código :D -WinEunuuchs2Unix 15 de noviembre de 2017 a las 12:35
  • md es un alias de mkdir, ¿eh? -wjandrea 20 de diciembre de 2017 a las 2:33
  • @Fabby - t¡gracias! He guardado el archivo de script sin extensión. ¿Pero cómo lo ejecuto? Escribí el nombre del script en la terminal (después de navegar al directorio correcto) pero todavía no se ejecuta - BenKoshy 27 de julio de 2018 a las 7:06
  • ./script @BKSpurgeon (Sobrery, me perdí tu pregunta de julio) - Fabby 31 de diciembre de 2018 a las 1:32


------------Respuesta------------

Restaurar cualquiera de los elementos anteriores también es bastante fácil:

MBR:

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

PT:

Primero en un gato /sysbackup/PartBackup-szHostName-dev-sda.txt

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

Entonces simplemente haz:

parted /dev/sda rescue 

y obtendrás el mensaje de rescate separado, donde deberás completar los datos del gato anterior

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