command-line – Cómo copiar el diseño de la partición de un disco completo usando herramientas estándar

Pregunta:

Quiero realizar una copia de seguridad de todo el diseño de la partición de un disco duro, incluidas las unidades lógicas, para poder restaurar ese diseño en otro disco. No quiero copiar el contenido de las particiones, sólo el diseño. Para las particiones primarias y extendidas, es fácil:

dd if=/dev/sda of=partitiontable.bin bs=1 skip=446 count=64 # backup
dd if=partitiontable.bin of=/dev/sda bs=1 seek=446 count=64 # restore

Pero cuando se trata del diseño de las particiones lógicas, me pregunto si existe entre las herramientas estándar una forma similar de guardar el diseño. Supongo que el problema principal es encontrar las compensaciones a las ubicaciones de las EBR, porque con eso, dd hará el resto. Tenga en cuenta que necesito poder volver a poner todo en un disco (posiblemente) en blanco y, por lo tanto, restaurar el mismo diseño. Usar herramientas de particionamiento como fdisk o parted está bien, pero debo poder automatizar su uso (scripting) y no deberían depender de ningún paquete relacionado con X, solo línea de comando.

Mi plan de respaldo lo está haciendo manualmente en un pequeño script de Python usando el módulo struct, pero esperaba que hubiera una manera más fácil.

Respuesta:

Puede usar sfdisk para esta tarea incluso en discos particionados GPT *.

Ahorrar:

sfdisk -d /dev/sdX > part_table

Restaurar manteniendo los mismos ID de disco y partición **:

sfdisk /dev/sdX < part_table

Restaurar generando nuevos ID de disco y partición **:

grep -v ^label-id part_table | sed -e 's/, *uuid=[0-9A-F-]*//' | sfdisk /dev/sdY

Notas

*: Para tablas de particiones GPT , esto requiere sfdisk de util-linux 2.26 o posterior. Fue reescrito desde cero sobre libfdisk .

**: de forma predeterminada, sfdisk copiará los ID de disco y partición sin cambios, en lugar de generar nuevos. Entonces, el nuevo disco será un clon del original, no solo otro disco con el mismo diseño. Tenga en cuenta que /dev/disk/by-uuid/ Linux mira los UUID del sistema de archivos, no los UUID en la tabla de particiones. sfdisk generará nuevos UUID si elimina las referencias a los ids de las particiones ( , uuid=... ) y la referencia al ID del disco ( label-id: ... ) del volcado.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım