Após alguns breves testes e somente com TestDisk e sfdisk em um ambiente virtual (não posso confirmar que criar uma nova tabela de partição em algo como fdisk ou gparted a deixaria intacta) estou inclinado a dizer não, escrevendo uma tabela de partições não afetará nada além dos primeiros 512 bytes.
Abaixo estão as etapas do teste ...
Eu criei um disco rígido de 100MB e particionei da seguinte forma:
Eu então montei e adicionei arquivos para cada uma das partições antes de limpar os primeiros 512 bytes
sudo dd if=/dev/zero bs=1 count=512 conv=notrunc of=/dev/sdb
Uma verificação rápida com o fdisk mostrou que isso foi apagado
richard@mint14 ~/Disktests $ sudo fdisk -lu /dev/sdb
Disk /dev/sdb: 104 MB, 104857600 bytes
255 heads, 63 sectors/track, 12 cylinders, total 204800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
Então, rodei o TestDisk contra ele, que encontrou as partições com sucesso, examinando a unidade e as gravei no disco.
Depois disso, eu despejei a tabela de partições usando o sfdisk
richard@mint14 ~/Disktests $ sudo sfdisk -d /dev/sdb > sdb_partitions.out
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
richard@mint14 ~/Disktests $ cat sdb_partitions.out
# partition table of /dev/sdb
unit: sectors
/dev/sdb1 : start= 2048, size= 20480, Id=83, bootable
/dev/sdb2 : start= 22528, size= 61440, Id=83
/dev/sdb3 : start= 83968, size= 61440, Id= 5
/dev/sdb4 : start= 145408, size= 59392, Id= 7
/dev/sdb5 : start= 86016, size= 59392, Id=83
Eu fiz uma cópia deste arquivo e o editei manualmente para criar uma única partição de 20MB, para que ela sobreponha a segunda partição e, em seguida, grave de volta na unidade
richard@mint14 ~/Disktests $ sudo sfdisk /dev/sdb < sdb_partitions.out_modified
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 12 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an MSDOS signature
/dev/sdb: unrecognised partition table type
Old situation:
No partitions found
New situation:
Warning: The partition table looks like it was made
for C/H/S=*/173/42 (instead of 12/255/63).
For this listing I'll assume that geometry.
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 2048 43007 40960 83 Linux
start: (c,h,s) expected (0,48,33) found (0,32,33)
end: (c,h,s) expected (5,158,42) found (2,172,42)
/dev/sdb2 0 - 0 0 Empty
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
Warning: partition 1 does not end at a cylinder boundary
Successfully wrote the new partition table
Re-reading the partition table ...
Outra verificação rápida com o fdisk mostra que ele gravou com êxito essa tabela de partições no disco
richard@mint14 ~/Disktests $ sudo fdisk -lu /dev/sdb
Disk /dev/sdb: 104 MB, 104857600 bytes
173 heads, 42 sectors/track, 28 cylinders, total 204800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 43007 20480 83 Linux
Finalmente, usando o sfdisk para substituir a tabela de partições original
richard@mint14 ~/Disktests $ sudo sfdisk --force /dev/sdb < sdb_partitions.out
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 12 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an MSDOS signature
/dev/sdb: unrecognised partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 2048 22527 20480 83 Linux
/dev/sdb2 22528 83967 61440 83 Linux
/dev/sdb3 83968 145407 61440 5 Extended
/dev/sdb4 145408 204799 59392 7 HPFS/NTFS/exFAT
/dev/sdb5 86016 145407 59392 83 Linux
Eu então montei cada um deles novamente e verifiquei que os arquivos estavam lá e intactos.