Di seguito sono indicate le istruzioni per recuperare manualmente una tabella delle partizioni cancellata. Ci sono utilità quali gpart o TestDisk che possono rendere questo compito considerevolmente più facile. Se tuttavia si sta leggendo questo documento perché si è stati sfortunati, questo è ciò che si deve fare:
Creare una partizione che sia grande almeno quando lo era la prima partizione. La si può creare più grande, di un valore qualsiasi, della partizione originale. Se si sottostima il valore, ci sarà solo dolore e stridore di denti.
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-23361, default 1): <RETURN> Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-22800, default 22800): 13032 Command (m for help): w
Eseguire dumpe2fs sulla prima partizione e con grep estrarre il conteggio dei blocchi.
Esempio:
% dumpe2fs /dev/sda1 | grep "Block count:" Block count: 41270953Se non si è sicuri di questo valore, ripetere il passo 1 con una dimensione di partizione maggiore. Se il conteggio dei blocchi cambia, allora si era sottostimata la dimensione della partizione originale. Ripetere il passo 1 fino a che non si ottiene un conteggio dei blocchi costante.
Rimuovere la partizione che si è appena creata
Command (m for help): d Partition number (1-4): 1
Creare una nuova partizione con esattamente la dimensione che si è ottenuta dal conteggio dei blocchi. Dato che non si può inserire la dimensione in blocchi in fdisk, è necessario calcolare quanti cilindri indicare. Ecco la formula:
(numero di cilindri necessari) = (numero dei blocchi) / (dimensione dei blocchi) (dimensione dei blocchi) = (dimensione dell'unità) / 1024 (dimensione dell'unità) = (numero delle testine) * (numero dei settori/cilindro) * (numero di byte/settore)
Si consideri l'esempio seguente, in cui un disco fisso è stato partizionato in quattro partizioni primarie di 1, 2, 4 e 8 cilindri.
disk /dev/sda: 16 heads, 63 sectors, 23361 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Start End Blocks Id System /dev/sda1 1 2 976+ 83 Linux /dev/sda2 3 5 1512 83 Linux /dev/sda3 6 10 2520 83 Linux /dev/sda4 11 19 4536 83 Linuxfdisk fornisce nella testata del suo output le informazioni sulla configurazione di cui si ha bisogno. La dimensione dell'unità è 516096 (16 testine * 63 settori/cil * 512 byte/settore). La dimensione dei blocchi è 504 (516096 / 1024). Il numero dei cilindri necessari per la seconda partizione è pertanto 3 (1512 blocchi / 504). La tabella delle partizioni mostra che è proprio così: il primo cilindro è il 3, il secondo il 4 e l'ultimo è il 5, per un totale di tre cilindri. Il numero dei cilindri necessari per la terza partizione è calcolato in modo simile: 2520 blocchi / 504 = 5, il che corrisponde ai cilindri 6,7,8,9,10. Si noti che questo calcolo non funziona per la prima partizione, perché il conteggio dei blocchi è sbagliato (976 invece di 1008). Il segno più indica che non tutti i blocchi sono inclusi nel valore di fdisk. Quando si tenta di fare il calcolo (976 / 504) si ottiene 1.937. Sapendo che il numero dei cilindri deve essere un intero, si può semplicemente arrotondare per eccesso.
Eseguire e2fsck su di essa per verificare che sia possibile leggere la nuova partizione.
Ripetere i passi da 1 a 5 per le partizioni restanti.
Il merito va a: Mike Vevea, jedi sys admin, per aver fornito la strategia di base.