Quiero hacer una copia de seguridad de toda la partición diseño de un disco duro, incluidas las unidades lógicas, para poder restaurar ese diseño en otro disco. Yo no desea copiar el contenido de las particiones, solo el diseño. Para las particiones primaria y extendida, 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 principal problema es encontrar las compensaciones de las ubicaciones de los EBR, porque con eso, dd
hará el resto. Tenga en cuenta que necesito poder volver a colocar todo en un disco (posiblemente) en blanco y, por lo tanto, restaurar el mismo diseño. Usar herramientas de partición como fdisk
o parted
está bien, pero debo poder automatizar su uso (secuencias de comandos) 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 aceptada:
Puede usar sfdisk para esta tarea incluso en discos particionados GPT*.
Guardar:
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
desde util-linux 2.26 o posterior. Fue reescrito desde cero sobre libfdisk.
**:por defecto sfdisk
copiará los ID de disco y partición sin cambios, en lugar de generar otros 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/
de Linux Sin embargo, 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 ID de las particiones (, uuid=...
) y la referencia al id del disco (label-id: ...
) del basurero .