3. Risolvere il problema

Per piacere, fai attenzione! Seguire le spiegazioni date qui ti riporterà a un sistema precedente, e perderai tutto quello che hai installato più di recente, se ce n'è! Devi scegliere...

3.1. Il caso più semplice

E' tutto facile se hai a portata di mano:

E' sufficiente

  1. avviare Linux;

  2. avviare fdisk /dev/hda (o qualunque sia il disco da ripristinare);

  3. usare fdisk per cancellare (opzione d) tutte le partizioni esistenti sul disco danneggiato;

  4. usare fdisk per creare tutte le partizioni primarie (1-4) riportate nei listati;

  5. dar loro l'etichetta appropriata (o tag, opzione t): 82 è per lo swap di Linux, 83 per una partizione di Linux (L dà la lista completa), 5 è per una partizione estesa e deve essere fatto prima di creare le partizioni logiche, c è Windows FAT 32 e f è Windows estesa, mentre 6 è Windows FAT 16;

  6. creare le partizioni logiche.

Sulla mia installazione di SuSE e ogni volta che ho dovuto farlo per altri, questo procedimento ha dato buoni risultati.

Comunque mi è stato riferito che alcuni fdisk segnerebbero le partizioni basandosi sui settori, non sui cilindri. Per questo motivo avete annotato la versione fdisk -u -l del listato.

Per usare il listato di fdisk -u -l bisogna avviare fdisk -u :-). Secondo me, usare i settori è un'idea molto brutta, ma potrebbe avere un uso pratico di cui non sono a conoscenza. Il problema è che col limite ai cilindri è facile capire lo schema anche se non si hanno i listati. Con quello ai settori, ci sono molte più possibilità...

Fdisk è un programma piccolo e molto intelligente. Ce ne sono molte altre versioni, ma io preferisco sempre quella nuda e cruda (parlo di quelle per Linux, naturalmente, non delle altre...).

Sappi che fdisk non scrive nulla sul disco se non digiti w e Invio. Se temi di aver commesso un errore, digita q (quit) o Ctrl C (^C) per abbandonare in tutta sicurezza.

Quando la tua nuova tabella delle partizioni è stata scritta, avvia Linux. C'è la possibilità che tu non possa farlo come al solito: può essere che anche lilo sia stato danneggiato, e ti servirà un floppy di boot o fare il boot da un CD (scegli l'opzione “booting the installed partition”).

Se sei solito fare il boot con lilo, non appena accedi come root digita “lilo” e premi Invio per reinstallare il tuo boot loader preferito.

Il tuo Linux dovrebbe essere tutto lì, provalo. Prova anche ad avviare Windows, se è il caso. Se non puoi, c'è una (molto scarsa) possibilità che tu possa leggere i dati da Linux, magari con una lettura settore per settore. Se puoi identificare i settori del disco su cui risiedono i tuoi dati, puoi copiarli su un file usando dd. Questo è saggio solo per il testo. Questo tipo di ripristino NON è lo scopo di questo mini-HOWTO.

3.2. Un caso non tanto semplice

3.2.2. Le informazioni di Linux e altri trucchi

3.2.3. gpart

C'è però una strada migliore se puoi ancora accedere alla rete o hai a portata di mano “gpart”. gpart è disponibile nella maggior parte delle distribuzioni, su freshmeat.net o direttamente a http://www.stud.uni-hannover.de/user/76201/gpart.

“Gpart - guess PC-type hard disk partitions” (indovina le partizioni del disco fisso di tipo PC). Questa è la prima riga (tradotta) della pagina man di gpart (man gpart).

“Gpart prova a capire quali partizioni sono su un hard disk. Se la tabella delle partizioni primaria è andata perduta, sovrascritta o distrutta, le partizioni esistono ancora sul disco ma il sistema operativo non può accedervi.” Questo è esattamente quello che ci serve.

Gpart è uno strumento molto buono.

Il problema è il seguente: il primo blocco di ogni partizione è contrassegnato. Però non viene mai “de-contrassegnato” se non quando viene sovrascritto. Perciò su un disco vecchio esistono molti “primi blocchi di partizione”, e gpart prova a fare il meglio che può per indovinare qual'è quello giusto. In effetti non è troppo difficile provare, perché gpart non scrive nulla sul disco.

Qui c'è il risultato di gpart sul disco hdb che abbiamo visto prima:

root@charles:/home/jdd > gpart /dev/hdb
Begin scan... 
Possible partition(Linux ext2), size(1200Mb), offset(0Mb) 
Possible partition(Windows NTFS), size(1200Mb), offset(1200Mb) 
Possible partition(Linux ext2), size(1004Mb), offset(2402Mb) 
Possible partition(Windows NTFS), size(1600Mb), offset(4102Mb) 
End scan.
Checking partitions...
* Warning: partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX) ends beyond disk end . 
Partition(Linux ext2 filesystem): primary 
Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): primary 
Partition(Linux ext2 filesystem): primary 
Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): invalid primary 
Ok.
Guessed primary partition table:
Primary partition(1) 
type: 131(0x83)(Linux ext2 filesystem) 
size: 1200mb #s(2457880) s(63-2457942) 
chs: (0/1/1)-(152/254/61)d (0/1/1)-(152/254/61)r 
Primary partition(2) 
type: 007(0x07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX) 
size: 1200mb #s(2457880) s(2457944-4915823) 
chs: (152/254/63)-(305/253/60)d (152/254/63)-(305/253/60)r 
Primary partition(3) 
type: 131(0x83)(Linux ext2 filesystem) 
size: 1004mb #s(2056256) s(4919781-6976036) 
chs: (306/61/49)-(434/60/47)d (306/61/49)-(434/60/47)r 
Primary partition(4) 
type: 000(0x00)(unused) size: 0mb #s(0) s(0-0) chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r 
    

Come vedi, la partizione primaria può essere ripristinata, ma per quelle estese c'è ancora del lavoro da fare.

Le partizioni Dos sono marcate “windows NTFS” perché sono state create quando ho provato ad installare Windows 2000 (un'esperienza davvero terribile!). Quella “invalid” è, nei fatti, la partizione estesa.

Con questo, si può usare fdisk e provare a ri-creare la tabella delle partizioni (ricorda, questo non comporta rischi perché tanto quella originale è già andata perduta).

Gpart è aggiornato settimanalmente :-) e perciò le nuove versioni possono essere più potenti di quanto io sappia.

3.3. Un caso da ricconi

Partition Magic è un prodotto commerciale, e neppure così economico (circa un centinaio di euro) visto anche il poco uso che uno ne deve fare, ma con una grossa reputazione qui in giro. Comunque non l'ho mai usato, perciò non darò giudizi. Si dice che può far di tutto con le partizioni, compreso riprstinarle.

Il partition-rescue mini HOWTO originale di Ralf era basato essenzialmente sull'uso di Partition Magic, perciò suppongo che sia un'ottima soluzione se hai dati preziosi sulla tua partizione Linux e scarse capacità in Linux. Comunque ci sono ora versioni molto più recenti di Partition magic, e penso sia meglio che tu ne legga il manuale.