  Partition Rescue mini HOWTO
  Jean-Daniel Dodin
  27 luglio 2000

  Wow! Il mio disco rigido  vuoto! Il mio Linux  scomparso! Se hai o
  temi di avere un giorno o l'altro un problema del genere, leggi
  questo...

  1.  Cosa c' dentro

  Questo mini-HOWTO tratta solo i problemi di "perdita della tabella
  delle partizioni". Questi possono verificarsi se:


    non riesci pi ad avviare il tuo computer e si visualizza il
     messaggio "no operating system" ("nessun sistema operativo"),

    hai installato un nuovo sistema (ad es. Windows) e non "vedi" pi
     Linux, e Windows occupa tutta la capacit del disco.

  Qui imparerai che se conosci la via giusta e la segui, Linux emerge
  integro da queste situazioni. Anche Windows pu, ma ci vuole pi
  fortuna.

  Vedremo per prima cosa cosa puoi fare prima che il problema si
  presenti per facilitare il recupero in futuro, e cosa devi fare dopo
  per riparare il danno. C' poco da fare per prevenire la cancellazione
  di un disco; di solito succede per colpa di programmi automatici di
  installazione di Windows o Linux che si comportano male, o di errori
  dell'utente - non si pu far nulla per prevenire, se non fare
  attenzione; ma stai gi attento, no?

  Pu anche accadere a causa dell'uso dell'fdisk di MSDOS/Windows.
  Evitalo pi che puoi, ma probabilmente non puoi.

  Ho seguito questo metodo molte volte sul mio computer e su quelli di
  altre persone, e ho ripristinato Linux la maggior parte delle volte ed
  alcune volte Windows. Buona fortuna!

  2.  Cosa fare adesso?

  Se stai leggendo per curiosit o solo per informazioni e sei su un
  sistema Linux funzionante, fai immediatamente quanto segue:


    apri un terminale di root o un xterm,

    digita "/sbin/fdisk -l" (l'ultimo carattere  la l di Lima).

  sarai premiato con una lista di tutte le partizioni correnti su tutti
  i dischi presenti sul tuo computer.


    Copiala su carta (o dai "/sbin/fdisk -l | lpr" per stamparla) e
     conservala in un luogo sicuro, per il futuro.

  Se non sei l'amministratore del sistema, il problema non dovrebbe
  riguardarti e puoi fare a meno di continuare a leggere.

  3.  Robe legali

  Questo mini-HOWTO  Copyright (c) 2000 di Jean-Daniel Dodin. Tutti i
  diritti riservati. Puoi farne (quasi) tutto ci che vuoi. Non mi
  interessa. Solo, assicurati di mantenere intatto il mio nome. Spero
  solo che esso sia utile a qualcuno, nella comunit Linux.

  Non sono responsabile di alcun danno su qualsiasi computer come
  risultato della lettura da parte di chicchessia di questo HOWTO. Se
  provochi qualche danno, _ colpa TUA, NON MIA!_ Stai attento quando
  partizioni i dischi, e non fare alcun errore, perch potrebbe essere
  fatale! Fai un backup di tutti i tuoi dati importanti e controlla che
  tutto ci che fai sia corretto! Ci che  descritto qui ha funzionato
  sul mio computer, ma sul tuo pu valere come no. Anche se dovrebbe
  funzionare per tutti, non posso garantire nulla. Questo  l'ultimo
  avvertimento: _FAI IL BACKUP DEI DATI IMPORTANTI!_ O, in poche parole:
  utilizza a tuo rischio e pericolo!

  4.  Cosa devo sapere ora?


  Devi sapere che in caso di qualsivoglia grave problema col tuo disco
  rigido, devi smettere cmpletamente di usarlo in scrittura, almeno per
  il tempo necessario a capire che succede. Le informazioni, l, sono
  molto evanescenti...

  Se per caso una mattina, svegliandosi, il tuo computer dice "non posso
  caricare, nessun sistema installato", non devi cominciare a
  reinstallare tutto.

  Se hai Windows installato, non posso promettere che potrai recuperare
  i tuoi dati, ma  probabile che recupererai tutto ci che riguarda
  Linux, ammesso che non sia posto troppo in basso nella struttura del
  disco. Questo perch alcuni virus di Windows cancellano proprio il
  primo cilindro del disco, qualunque cosa ci sia sopra. Comunque non ho
  mai sperimentato tali virus e non saprei dire per certo. Prova lo
  stesso.

  Devi anche sapere che tutte queste informazioni son proprio solo per
  questo scopo - d'informazione. N io n chiunque altro che te stesso
  possiamo esser ritenuti responsabili per problemi che i tuoi dati
  possono avere dall'utilizzo di queste. Ci sono troppi sistemi diversi
  nel mondo perch qualcuno possa promettere qualcosa. Posso solo
  augurarti buona fortuna e sperare che tu, come me, sia felice, avendo
  recuperato i tuoi dati.

  5.  Dischi

  Un disco rigido  fatto di settori numerati da 0 al massimo.

  dmesg d, ad esempio :

  hdb: ST34321A, 4103MB w/128kB Cache, CHS=523/255/63

  CHS vuol dire Cylinders, Heads, Sectors (Cilindri, Testine, Settori).

  523*255*63=8401995 settori di 512 byte, da qui i 4103 Mbyte. Questa 
  solo una mappa logica, non  necessario ci che  scritto
  sull'etichetta del disco (tranne che per la dimensione totale).

  La vera dimensione dei settori non  di alcun interesse per noi dato
  che non vogliamo modificare alcunch, ma ripristinare uno stato
  precedente. Ai nostri fini, la dimensione predefinita data da fdisk va
  bene.

  La dimensione vista dal sistema dipende direttamente dal funzionamento
  del BIOS (Basic Input/Output System - la ROM del PC). La modalit
  (mode) in cui opera il disco rigido indicata dal BIOS  essenziale. Su
  un nuovo disco,  meglio avviare il riconoscimento automatico del
  disco rigido nel BIOS e dare "yes". Comunque, ogni modifica a questo
  livello pu distruggere tutti i dati del disco, perci non
  giocherellare con questa impostazione se non per ragioni particolari.

  Questo valore  probabilmente quello che il disco usa, per cui non
  temere.

  6.  Partizioni

  I dischi ora sono molto grandi, 13 Gb non son rari, perci non  molto
  comodo avere tutta questa roba impacchettata in una sola parte. Solo
  Windows lo fa, e se usi Linux forse  perch sei conscio di quanto
  inefficiente  l'altro.

  Perci un disco rigido viene di solito diviso in alcuni pezzi chiamati
  "partizioni" (vedi il "partition mini HOWTO" per maggiori dettagli, e
  leggi anche il file /usr/doc/package/util/README.fdisk).

  Diamo un'occhiata a (una parte di) ci che risulta da fdisk -l nel mio
  caso:

  Disk /dev/hdb: 255 heads, 63 sectors, 523 cylinders Units = cylinders
  of 16065 * 512 bytes

  Device Boot Start End Blocks Id System

  /dev/hdb1 1 153 1228941 83 Linux

  /dev/hdb2 154 166 104422+ 82 Linux swap

  /dev/hdb3 * 167 291 1004062+ 83 Linux

  /dev/hdb4 295 523 1839442+ 5 Extended

  /dev/hdb5 295 422 1028128+ 83 Linux

  /dev/hdb6 423 523 811251 6 FAT16

  Questo  il mio secondo hard disk, che riflette varie prove e
  tentativi (il primo  troppo semplice per essere interessante).

  /dev/hdb  il mio secondo disco ide (slave sull'interfaccia primary),

  /dev/hdb1  la prima partizione primaria (primary partition), che va
  dal primo blocco (1) al blocco 153.

  Ci possono esser quattro di queste partizioni primarie. Se se ne
  vogliono pi di 4, una di esse deve essere "extended" ("estesa", non
  necessariamente la quarta) e tutte le altre partizioni saranno dette
  "logical" ("logiche") e sono poste dentro quella estesa. Nota che la
  partizione numero 5 e la numero 4 hanno lo stesso inizio. La numero
  cinque  logica, la numero 4 estesa. Le partizioni logiche cominciano
  sempre alla 5, anche se non ce ne sono 4 primarie.

  7.  Dove sorge il problema ?

  Il problema  che tutti i sistemi operativi installati devono
  dividersi il disco e poich all'avvio il BIOS legge solo il primo, ci
  deve essere una cosiddetta "partition table" (tabella delle
  partizioni) all'inizio di questo disco. Questa tabella delle
  partizioni  posta nel Master Boot Record (MBR),fianco a fianco col
  boot loader.

  Qualunque uso sbagliato dell'MBR da parte di qualcuno dei sistemi
  operativi porta a problemi. Quando provi ad installare qualche
  sistema, la risposta affermativa a domande tipo "partizionamento
  automatico?" probabilmente creer guai... Questo  particolarmente
  vero con Windows, specialmente per le installazioni personalizzate
  fatte da speciali costruttori di PC (quando non  fornito nessun CD di
  Windows vero e proprio). Ma vale anche per i nuovi programmi di
  installazione "intelligenti" (mica tanto!) di Linux forniti con le
  distribuzioni pi recenti.

  8.  Risolvere il problema

  Per favore, stai attento! Seguire le spiegazioni date qui ti porter a
  tornare a un sistema precedente, perdendo tutti quelli che hai
  installato pi di recente, se ce ne sono! Devi scegliere...

  8.1.  Il caso pi semplice

  Tutto  semplice se hai a portata di mano:


    un disco (floppy o CD) capace di caricare Linux da s stesso, e in
     modo che fdisk sia disponibile - la maggior parte dei rescue disk
     di qualsiasi distribuzione pu farlo,

    un foglio con il risultato di fdisk -l.

   sufficiente


  1. avviare Linux,

  2. avviare fdisk /dev/hda (o qualunque sia il disco da riparare),

  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) elencate
     sul foglio,

  5. dargli il tag appropriato (opzione t): 82  per una partizione swap
     di Linux, 83 per una partizione principale di Linux (L fornisce una
     lista), 5 per una partizione estesa, e deve essere fatta prima di
     creare partizioni logiche.

  6. creare le partizioni logiche.

  fdisk  un programma piccolo e molto intelligente. Ce ne sono molti
  altre versioni, ma preferisco sempre quello nudo e crudo (parlo
  ovviamente di quelli per Linux, non degli altri...).

  Sappi che fdisk non scrive nulla sul disco prima che tu digiti w e
  return. Se temi di aver sbagliato, digita q (quit) o Ctrl C (\^{ }C)
  per uscire in tutta sicurezza.

  Quando la tua nuova tabella delle partizioni  scritta, avvia Linux.
  C' la possibilit che tu non possa farlo come al solito: LILO pu
  esser stato danneggiato, e avrai bisogno di un dischetto di boot o di
  avviare da un CD (scegli l'opzione "avvio di una partizione
  installata").

  Se di solito avvii con LILO, appena sei entrato nel sistema come root,
  digita "lilo" e premi return per reinstallare il tuo boot loader
  preferito.

  Il tuo Linux dovrebbe essere tutto di nuovo qui; provalo. Prova anche
  ad avviare Windows, nel caso. Se non puoi, c' una (molto scarsa)
  possibilit che tu possa leggere i tuoi dati da Linux, magari con una
  lettura settore per settore, a basso livello. Se riesci ad
  identificare i settori del disco su cui sono i tuoi dati, usando dd
  puoi copiarli su un file. Questo  saggio solo per il testo. Questo
  tipo di recupero NON  l'ambito di questo mini-HOWTO.

  8.2.  Un caso non cos semplice

  8.2.1.  A mano

  Questo metodo spiega come fare quando il caso precedente non 
  applicabile, per mancanza del foglio di fdisk o se non funziona perch
  se ne usa uno obsoleto.

  Per prima cosa, sappi che finch non scrivi sul disco (con altri
  programmi che fdisk), non rischi di cancellare i tuoi dati, perci
  puoi provare blocco per blocco. Il che vuol dire che hai bisogno di
  sapere l'inizio della partizione, tanto per cominciare. Se, diciamo,
  un 153 non calza, prova un 154, e cos via.

  Questo pu essere noioso, ma se ti ricordi approssimativamente la
  dimensione della partizione Linux, c' una possibilit di riuscire.

  8.2.2.  gpart

  Ma c' un modo migliore se puoi ancora accedere alla rete o hai a
  disposizione "gpart".

  "gpart - guess PC-type hard disk partitions" ("gpart - indovina le
  partizioni in stile PC di un disco rigido")  la prima riga della
  pagina man di gpart (man gpart).

  "gpart prova ad indovinare che partizioni ci sono sul disco rigido. 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 ci di cui abbiamo
  bisogno.

  gpart  ancora in beta, ma  gi uno strumento davvero buono.

  La questione  la seguente: il primo blocco di ogni partizione 
  etichettato. Ma non viene mai "dis-etichettato" se non  sovrascritto.
  Perci su un disco usato sono presenti molti "blocchi di inizio
  partizione", e gpart prova a fare del suo meglio per indovinare qual'
  quello buono. In effetti non  troppo difficile provare, nulla viene
  scritto sul disco da gpart.

  Qui c' il risultato di gpart sul disco hdb visto in precedenza:

  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 recuperata, mentre per
  quelle estese c' ancora strada da fare.

  Le partizioni Dos sono etichettate "windows NTFS" perch sono state
  create provando ad installare Windows 2000 (un'esperienza proprio
  terribile!). Quella "invalid" , nei fatti, la partizione estesa.

  Detto ci, si pu usare fdisk e tentare di ri-creare la tabella delle
  partizioni (ricorda, questo non comporta rischi, l'originale  gi
  persa).

  8.3.  Il caso del riccone

  Partition Magic  un prodotto commerciale, non cos economico se
  rapportato alle poche occasioni in cui se ne deve far uso
  (approssimativamente centocinquantamila lire), ma con una reputazione
  molto elevata. Comunque, non l'ho mai usato e non ne dar giudizi. Se
  ne dice che  in grado di fare tutto con le partizioni, compreso
  recuperarle.

  L'originale partition-rescue mini HOWTO di Ralf era essenzialmente
  basato sull'uso di Partition Magic, per cui presumo sia una soluzione
  molto buona se hai dati preziosi sulla tua partizione Linux, e poche
  possibilit riguardo a Linux. Comunque ci sono versioni molto recenti
  di Partition Magic e penso sia meglio consultare il manuale.




  9.  Autori

  L'autore di questo HOWTO  Jean-Daniel Dodin. Posso essere raggiunto a
  jdanield@dodin.net o a jdanield@linux-france.org.

  Il mio sito web  a http://www.dodin.net. Le pagine su Linux, che son
  quelle che ti posson interessare, sono a www.linux-
  france.fr/article/jdanield.

  La traduzione italiana  opera di Germano Rizzo, reperibile a
  manomano@ciaoweb.it.

  Vorrei ringraziare Rolf Klausen (E-mail: rolfk@romsdal.vgs.no
  http://www2.romsdal.vgs.no/~rolfk/) che ha scritto il precedente
  partition-rescue mini HOWTO;anche se l'ho riscritto quasi del tutto,
  ha avuto lui per primo la buona idea.

  Ogni altro membro della comunit Linux e tutti coloro che supportano
  Linux e scrivono documentazioni e programmi per Linux e tutti gli
  autori dell'LDP e virtualmente ogni persona coinvolta in qualunque
  cosa abbia a che fare con Linux. In particolare Linus B. Torvalds - 
  _Il Re_!!!

  Vorrei anche ringraziare Michail Brzitwa <mb@ichabod.han.de> per aver
  scritto gpart!

  10.  Versioni aggiornate

  La versione pi aggiornata di questo mini-HOWTO  reperibile sul mio
  sito web di Linux, a www.linux-france/article/jdanield/




































