Probé el TestDisk, pero no conseguí que funcionara. Creo que tuvo algo que ver con que las particiones estuvieran montadas, y no quería arriesgarme a reiniciar el equipo. Afortunadamente pude recrear la tabla de particiones, gracias a la info que encontré en
esta página. Posteo cómo lo hice por si a alguien (yo incluido

) le pasa algo parecido alguna vez.
Resumiendo, como no había reiniciado, la información de la tabla aún estaba disponible:
#cat /proc/partitions
major minor #blocks name
8 0 97685784 sda
8 1 16779861 sda1
8 2 1 sda2
8 5 16779861 sda5
8 6 8385898 sda6
8 7 1574338 sda7
8 8 37383223 sda8
8 9 16779861 sda9
#hdparm -g /dev/sda*
/dev/sda:
geometry = 12161/255/63, sectors = 195371568, start = 0
/dev/sda1:
geometry = 12161/255/63, sectors = 33559722, start = 63
/dev/sda2:
geometry = 12161/255/63, sectors = 2, start = 33559785
/dev/sda5:
geometry = 12161/255/63, sectors = 33559722, start = 33559848
/dev/sda6:
geometry = 12161/255/63, sectors = 16771797, start = 67119633
/dev/sda7:
geometry = 12161/255/63, sectors = 3148677, start = 83891493
/dev/sda8:
geometry = 12161/255/63, sectors = 74766447, start = 87040233
/dev/sda9:
geometry = 12161/255/63, sectors = 33559722, start = 161806743
Con estos datos y los del fichero /etc/fstab, tengo dónde empieza y termina cada partición, así que pude ejecutar fdisk y recrearlas una a una. Por defecto, fdisk muestra las unidades en cilindros, tuve que utilizar la opción "u" para que las mostrara en sectores.
En mi caso, la primera partición, /dev/sda1, es primaria, empieza en el sector 63, y tiene un tamaño de 33559722 sectores, por tanto con fdisk creé una nueva partición en la que el primer sector es el 63 y el último es +33559721 (ojo que aquí hay que restar 1 al tamaño y poner un + delante, si nos equivocamos aquí, al intentar crear la siguiente partición fdisk no nos dejará que comience en el primer sector correcto):
# fdisk /dev/sda
Command (m for help): u
Changing display/entry units to sectors
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-xxxxxxx, default 63): 63
Last sector or +size or +sizeM or +sizeK (63-xxxxxxx, default xxxxxxx): +33559721
La siguiente partición /dev/sda2 se crea igual, salvo que es extendida y no primaria, y que ocupa todo el resto del disco, no sólo 2 sectores.
El resto de las particiones /dev/sda5 hasta /dev/sda9 las creé igual que la primera; son unidades lógicas dentro de la partición extendida /dev/sda2.
Luego cambié el tipo de cada partición (fat32, linux o swap) para que quedaran igual que en el fichero /etc/fstab, establecí las particiones 1 y 6 (win-sys y linux /) como activas (bootable flag) y salvé los cambios.
El resultado:
Command (m for help): p
Disk /dev/sda: 100.0 GB, 100030242816 bytes
255 heads, 63 sectors/track, 12161 cylinders, total 195371568 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 63 33559784 16779861 b W95 FAT32
/dev/sda2 33559785 195371567 80905891+ 5 Extended
/dev/sda5 33559848 67119569 16779861 b W95 FAT32
/dev/sda6 * 67119633 83891429 8385898+ 83 Linux
/dev/sda7 83891493 87040169 1574338+ 82 Linux swap / Solaris
/dev/sda8 87040233 161806679 37383223+ 83 Linux
/dev/sda9 161806743 195366464 16779861 83 Linux
Uf!
![toma [tomaaa]](/images/smilies/nuevos2/tomaa.gif)
Solucionado, menos mal