# Penna USB corrotta

## Luca89

Mi è stato chiesto di recuperare i dati da una penna USB che ha subito un arresto "brusco", causa black-out di corrente. Era attaccata e montata su un computer con sistema Windows, tutto ad un tratto si stacca la corrente e al successivo riavvio il sistema non riesce più a montare la penna dicendo che il dispositivo non è formattato.

L'ho attaccata al mio sistema Linux ed effettivamente la vede solo come /dev/sda e non c'è più il device /dev/sda1. Come potrei fare per risolvere?

Miei ragionamenti (correggetemi se sono errati) e strade che ho già provato per risolvere (così evitiamo di ripetere):

Prima cosa ho fatto un backup con "dd if=/dev/sda of=penna.img", quindi posso smanettarci come voglio e posso ritornare alla situazione iniziale (corrotta) senza problemi.

Come detto sopra adesso appare solo il device /dev/sda anzichè apparire anche /dev/sda1, quindi ho ipotizzato che sia saltata la tabella delle partizioni. Potrebbe essere questo il problema?

Cercando un po' in giro ho trovato questo documento che tra le altre cose parla di recupero di una tabella di partizioni corrotta, ho provato quindi con gpart a vedere cosa riusciva a recuperare ma non ha funzionato.

La penna non era mai stata formattata manualmente ma è rimasta con la formattazione di fabbrica quindi ho ipotizzato che queste penne dovrebbero avere una tabella delle partizioni standard no? Quindi se provo a copiare un mbr standard preso da un'altra penna della stessa dimensione (1GB) e magari anche della stessa marca (SEITEC) o dello stesso chipset (Ours Technology, Inc. Transcend JetFlash 2.0), posso riuscire a salvare i contenuti? C'è qualcuno che è in grado di passarmi l'mbr standard di una penna usb con queste caratteristiche?

Ho provato anche a creare con fdisk una nuova tabella delle partizioni, creando una partizione che occupi tutto lo spazio disponibile e tipo "b" (ovvero W95 fat) ma non ha funzionato.

Spero di aver spiegato bene la situazione e grazie in anticipo per chi riesce a darmi una risposta.

----------

## cotlod

Non vorrei jettar iella ma mi sa che sarà un'impresa tra l'arduo e l'impossibile.

Io ai tempi quando ero ancora diviso tra linux e windows formattai la mia usb (ma per un'altro motivo) con windows e notai che la partizione non era ne fat ne ntfs ne altro che conoscessi, probab si tratta proprio della 'formattazione di fabbrica', quindi per le poche conoscenze che ho penso che la soluzione dell'mbr che stai prendendo sia l'unica anche se non so se ti possa portare alla soluzione.

Spero di essere stato un minimo d'aiuto, in ogni caso buona fortuna!

Ciao

----------

## randomaze

 *Luca89 wrote:*   

> La penna non era mai stata formattata manualmente ma è rimasta con la formattazione di fabbrica quindi ho ipotizzato che queste penne dovrebbero avere una tabella delle partizioni standard no? Quindi se provo a copiare un mbr standard preso da un'altra penna della stessa dimensione (1GB) e magari anche della stessa marca (SEITEC) o dello stesso chipset (Ours Technology, Inc. Transcend JetFlash 2.0), posso riuscire a salvare i contenuti? C'è qualcuno che è in grado di passarmi l'mbr standard di una penna usb con queste caratteristiche?

 

Perché vuoi l'MBR? Il tuo HD ha smesso di funzionare quando hai messo lilo/grub al posto dell'MBR di fabbrica?

 *Quote:*   

> Ho provato anche a creare con fdisk una nuova tabella delle partizioni, creando una partizione che occupi tutto lo spazio disponibile e tipo "b" (ovvero W95 fat) ma non ha funzionato.

 

...questo é giá piú triste.

Hai provato a fare fsck.vfat su questa partizione?

Perché lavori sulla chiavetta e non su una copia del file che hai ricavato con dd?

----------

## Luca89

 *randomaze wrote:*   

> Perché vuoi l'MBR? Il tuo HD ha smesso di funzionare quando hai messo lilo/grub al posto dell'MBR di fabbrica?

 

Si parla di una penna usb non di un HD. Comunque se non sbaglio la tabella delle partizioni risiede nella prima parte della penna cioè l'mbr no? Quindi copiando lo stesso mbr da un altro che non ha modificato quello di fabbrica teoricamente dovrebbe andare credo, o sbaglio? Inoltre non ho installato nessun grub/lilo, la penna serviva solo per contenere dati.

 *randomaze wrote:*   

> 
> 
> ...questo é giá piú triste.
> 
> Hai provato a fare fsck.vfat su questa partizione?
> ...

 

Lavoro sulla chiavetta perchè altrimenti il kernel non è in grado di riconoscermi le partizioni (non può crearmi i device penna.img penna.img1 etc etc). Con fsck su questa ipotetica partizione (supponevo che di fabbrica facevano una partizione che occupasse tutto lo spazio) mi dava questo errore:

```
Panther ~ # fsck.vfat /dev/sda1

dosfsck 2.11, 12 Mar 2005, FAT32, LFN

Currently, only 1 or 2 FATs are supported, not 255.

Panther ~ #   
```

Inoltre quando apro fdisk su /dev/sda mi da questo messaggio (il partizionamento va a buon fine comunque però):

```
Attenzione: il flag 0x0000 non valido della tabella delle partizioni 4 verrà corretto con w(rite)

```

----------

## randomaze

 *Luca89 wrote:*   

>  *randomaze wrote:*   Perché vuoi l'MBR? Il tuo HD ha smesso di funzionare quando hai messo lilo/grub al posto dell'MBR di fabbrica? 
> 
> Si parla di una penna usb non di un HD.

 

Oibó c'é del vero nel riferimento all'MBR.

Ma in effetti vale anche per gli HD.

 *randomaze wrote:*   

> Lavoro sulla chiavetta perchè altrimenti il kernel non è in grado di riconoscermi le partizioni (non può crearmi i device penna.img penna.img1 etc etc).

 

Si puó... passando gli offest

 *Quote:*   

> Panther ~ # fsck.vfat /dev/sda1
> 
> dosfsck 2.11, 12 Mar 2005, FAT32, LFN
> 
> Currently, only 1 or 2 FATs are supported, not 255.

 

Mi sembra che ci sia un valore sballato da qualche parte. Oppure uno dei precedenti tentativi di recuper ha fatto casino...

 *Quote:*   

> Attenzione: il flag 0x0000 non valido della tabella delle partizioni 4 verrà corretto con w(rite)
> 
> 

 

....il valore sballato potrebbe essere questo, ma lo da ogni volta che avvi fdisk (ovvero non lo corregge con "w(rite)")?

----------

## GiRa

Se  fai:

```
# cp penna.img penna.img.work

# mount -o loop -t auto penna.img.work /mountpoint

```

Cosa succede? A me è capitato varie volte di avere penne che si montassero dal device senza partizioni.

----------

## Luca89

```
Panther dati # mount -o loop -t auto penna.img.old /mnt/usbdisk/

ioctl: LOOP_CLR_FD: Dispositivo o risorsa occupata

mount: si deve specificare il tipo di filesystem

Panther dati # mount -o loop -t vfat penna.img.old /mnt/usbdisk/

mount: wrong fs type, bad option, bad superblock on /dev/loop1,

       missing codepage or other error

       In some cases useful info is found in syslog - try

       dmesg | tail  or so

Panther dati # losetup -a

/dev/loop/0: [034d]:137 (penna.img.old)

Panther dati # mount -o loop=/dev/loop/0 -t vfat penna.img.old /mnt/usbdisk/

ioctl: LOOP_SET_FD: Dispositivo o risorsa occupata

Panther dati #

```

Non va.

----------

## makoomba

con fdisk riesci a ripartizionare la penna ?

----------

## X-Drum

 *GiRa wrote:*   

> A me è capitato varie volte di avere penne che si montassero dal device senza partizioni.

 

essih, alcune penne vengono indentificate in questo modo (una sola partizione chiamata sdX anziche' sdXN)

sono poche ma vi sono...

ricordo che anche la mia era cosi' appena presa, attribuendo la cosa ad un partizionamento

strano o errato, la prima cosa che ho fatto fu appunto ripartizionare la penna ottenendo cosi

sdX1

----------

## Luca89

 *makoomba wrote:*   

> con fdisk riesci a ripartizionare la penna ?

 

si, come ho detto sopra ci riesco. Purtroppo però non so che partizioni creare, infatti ho ipotizzato che di fabbrica creassero una partizione unica primaria di tipo "b" che occupasse tutto lo spazio, ma creando la suddetta partizione non si riesce a montarla e neanche fsck è in grado di riparare il filesystem dando l'errore che ho riportato precedentemente. Prima dell'accaduto ricordo che venivano creati due device: /dev/sda e /dev/sda1, quindi ipotizzo che la penna possedeva una tabella delle partizioni.

----------

## cotlod

Non so se è il tuo caso (posto che la penna che ho io non è ne della marca ne del modello di quella che hai indicato) ma io ho una chiave con 2partizioni:

-la prima di circa 1,4Mb che dovrebbe simulare il floppy e contiene software di sicurezza + manuale

-la seconda 950e rotti Mb(1G, quella che poi ho formattato con fat32) è la partizione dati

con un'altra distribuzione linux e kde mi rilevava praticamente 2 'unità' però ti dico subito che facendo:

```
# fdisk /dev/sda 
```

in gentoo mi vede solo la partizione che ho formattato cioè sda1

quindi probab l'altra partizione sarà su un altro device ma non saprei quale.

PS la formattazione ai tempi l'avevo fatta direttamente da windows e ora noto che l'ha formattata con "W95 FAT32 (LBA)" cioè il tipo 'c'. 

Non so se possa incidere nella tua risoluzione ma questo è tutto.

Ciao

----------

## Luca89

Ti ringrazio per le tue informazioni, potrebbero essere molto utili, ti dispiacerebbe postare l'output di "fdisk -l /dev/sda"? E inoltre se non ti dispiace potresti passarmi l'mbr con dd?

----------

## makoomba

con fdisk crea una singola partizione fat32 e prova app-admin/testdisk

----------

## Luca89

 *makoomba wrote:*   

> con fdisk crea una singola partizione fat32 e prova app-admin/testdisk

 

Ho provato come hai detto e testdisk mi dice che non trova partizioni da recuperare. Ho selezionato /dev/sda, ho detto di analizzarlo e dopo un po' mi spunta una lista di partizioni vuota con la possiblità di aggiungere una partizione manualmente oppure di terminare le operazioni. Terminando le operazioni spunta questo errore:

```
No partition found or selected for recovery
```

----------

## makoomba

 *Luca89 wrote:*   

> Ho provato come hai detto e testdisk mi dice che non trova partizioni da recuperare. Ho selezionato /dev/sda, ho detto di analizzarlo e dopo un po' mi spunta una lista di partizioni vuota con la possiblità di aggiungere una partizione manualmente oppure di terminare le operazioni. 

 

non vede la partizione che hai creato con fdisk ?

----------

## Luca89

 *makoomba wrote:*   

> non vede la partizione che hai creato con fdisk ?

 

Parto dalla penna corrotta ma senza nessun esperimento fatto, ovvero quella che mi sono trovato davanti all'inizio. Lancio fdisk e creo una partizione primaria numero 1 di tipo c (fdisk mi da quel warning che ho postato un po più sopra), e tutto va correttamente. 

Lancio testdisk e mi appare questo:

```
Disk /dev/sda - CHS 1017 33 61 - 999 MB

Check current partition structure

     Partition                  Start        End    Size in sectors

test_FAT : Boot sector doesn't have the endmark 0xAA55

 1 P FAT32 LBA                0   1  1  1016  32 61    2047160

 1 P FAT32 LBA                0   1  1  1016  32 61    2047160

No partition is bootable

```

Premo il tasto Proceed e dopo una analisi dei cilindri ecco cosa mi esce:

```
Disk /dev/sda - CHS 1017 33 61 - 999 MB

     Partition               Start        End    Size in sectors

Structure: Ok.

Keys A: add partition, L: load backup, ENTER: to continue

```

Il tasto A a quanto ho capito serve per creare una partizione dando i parametri manualmente, quindi non è ciò che mi serve, allora do ENTER.

E infine finisce così

```
Disk /dev/sda - CHS 1017 33 61 - 999 MB

     Partition                  Start        End    Size in sectors

No partition found or selected for recovery

```

Potrebbe essere che non aveva tabella delle partizioni? Ma allora è possibile che mi creava anche il device /dev/sda1?

----------

## GiRa

E un 

```
mount -o loop -t vfat penna.img /mountpoint
```

?

----------

## Luca89

 *GiRa wrote:*   

> E un 
> 
> ```
> mount -o loop -t vfat penna.img /mountpoint
> ```
> ...

 

Sempre li:

```
Panther ~ # mount -o ro,loop -t vfat /mnt/dati/penna.img /mnt/usbdisk/

mount: wrong fs type, bad option, bad superblock on /dev/loop1,

       missing codepage or other error

       In some cases useful info is found in syslog - try

       dmesg | tail  or so

Panther ~ #                              
```

EDIT: Nel log di sistema spunta questo:

```
Jan  3 15:18:12 [kernel] FAT: bogus logical sector size 65535

```

----------

## Lestaat

di norma le penne usb sono delle semplici flashmemory e come tali utilizzabili come vi pare.

E' possibile quindi creare partizioni di qualsiasi tipo.

Una delle mie è una gentoo bootabile con una partizione di lavoro in reiser...  :Wink: 

----------

## makoomba

@Luca89

c'è qualcosa che mi sfugge.

ricreando la partizione con fdisk dovresti vedere il device /dev/sda1 e riuscire a leggerlo con testdisk.

dopo il write, se rilanci fdisk, visualizzi la partizione appena creata ?

----------

## cotlod

Allora l'output di fdisk è questo:

```

Disk /dev/sda: 1007 MB, 1007157248 bytes

31 heads, 62 sectors/track, 1023 cylinders

Units = cylinders of 1922 * 512 = 984064 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1        1023      983072    c  W95 FAT32 (LBA)

```

per l'mbr non saprei, il comando dd penso di saperlo usare ma basta fare qualcosa tipo quello che hai fatto tu o c'è altro?

```
dd if=/dev/sda1 of=penna.img
```

----------

## Luca89

Diciamo che ho risolto, un mio amico aveva un programma tale "getdataback" che ha recuperato un po' di files presenti in quella penna. Avrei preferito risolvere in un altro modo però va bene lo stesso così. Ringrazio tutti per l'interessamento.  :Wink: 

P.S: Non so se mettere il tag risolto o meno visto che ho risolto ma non con una "unix way". Cosa ne dite?

----------

## GiRa

Io la lascerei aperta. Magari un giorno qualcuno avrà un problema simile, lo risolverà e posterà la soluzione per tutti (sto ascoltando una ballad strappalacrime).

----------

