Recuperare files HD esterno

Ciao a tutti/e voi del forum,
ho fatto un pasticcio… col comando ‘dd’, dovevo trasferire l’immagine .img per la mia RaspberryPi sulla SD, ma non essendomi accorto che avevo ancora collegato al mio notebook l’HD esterno, dove avevo tutti i miei files e backup… dirorrando, ahimè, su quest’ultimo e non sulla SD l’immagine .img
Capite benissimo che ora, ho perso la mia partizione che avevo prima con tutti i files…
Ho provato con TestDisk e con Photorec, utilizzando un livecd di DeftLinux 7 ma non ho avuto nessun beneficio…
Domandone: come posso risolvere ?

Grazie per avermi letto e spero di ricevere Vs preziosi consigli in merito

I dati che sono stati sovrascritti sono persi. Vediamo di capire quanti dati sono persi.
Puoi postare l’esatto intero comando che hai dato con dd, nonché link per l’esatto file img che hai copiato? Anche

# parted -l

con il disco esterno collegato.

Ciao Tempus, ti posto il tutto.

Questo è il comando dato con dd:

# dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdb bs=1M

L’immagine ‘2013-02-09-wheezy-raspbian.img’ è una disto Raspbian, basata su Debian e plasmata per i microprocessori ARM.
Per Fedora, mi occorreva una SD più capiente, quindi la mia scelta è caduta su Raspbian :wink:

[code]# parted -l /dev/sdb
Modello: ATA SAMSUNG HM321HI (scsi)
Disco /dev/sda: 320GB
Dimensione del settore (logica/fisica): 512B/512B
Tabella delle partizioni: msdos
Flag del disco:

Numero Inizio Fine Dimensione Tipo File system Flag
1 1049kB 525MB 524MB primary ext4 avvio
2 525MB 317GB 317GB primary lvm

Modello: WD 6400AAC External (scsi)
Disco /dev/sdb: 640GB
Dimensione del settore (logica/fisica): 512B/512B
Tabella delle partizioni: msdos
Flag del disco:

Numero Inizio Fine Dimensione Tipo File system Flag
1 4194kB 62,9MB 58,7MB primary fat16 avvio
2 62,9MB 1940MB 1877MB primary ext4
3 299GB 301GB 1877MB primary ext4

Modello: Device-mapper Linux (linear) (dm)
Disco /dev/mapper/fedora-home: 262GB
Dimensione del settore (logica/fisica): 512B/512B
Tabella delle partizioni: loop
Flag del disco:

Numero Inizio Fine Dimensione File system Flag
1 0,00B 262GB 262GB ext4

Modello: Device-mapper Linux (linear) (dm)
Disco /dev/mapper/fedora-swap: 1049MB
Dimensione del settore (logica/fisica): 512B/512B
Tabella delle partizioni: loop
Flag del disco:

Numero Inizio Fine Dimensione File system Flag
1 0,00B 1049MB 1049MB linux-swap(v1)

Modello: Device-mapper Linux (linear) (dm)
Disco /dev/mapper/fedora-root: 53,7GB
Dimensione del settore (logica/fisica): 512B/512B
Tabella delle partizioni: loop
Flag del disco:

Numero Inizio Fine Dimensione File system Flag
1 0,00B 53,7GB 53,7GB ext4
[/code]

Grazie per il supporto…

altre domande :

  1. quanto era grande la iso che hai trascritto ?
  2. ci fai vedere pure :
# fdisk -l /dev/sdb

se sdb è il disco incriminato.
3. hai per caso un vecchio fdisk di quel disco magari che hai postato in questo forum ?

L’immagine .img è di 1,9GB.
Non ho dei vecchi output della tabella di partizionamento dell’ HD incriminato… :wink:

[code]# fdisk -l /dev/sdb

Disk /dev/sdb: 640.1 GB, 640135028736 bytes, 1250263728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x00014d34

Dispositivo Boot Start End Blocks Id System
/dev/sdb1 * 8192 122879 57344 6 FAT16
/dev/sdb2 122880 3788799 1832960 83 Linux
/dev/sdb3 584833024 588498943 1832960 83 Linux
[/code]

altre domande:

  1. ti ricordi come era formattato il disco ?
    cioè quante partizioni aveva e quali filesystem ?

  2. il disco conteneva dati ? quanti ?

Scusami per il ritardo con cui ti rispondo.
L’HD aveva un unica partizione, essendo grande 640 GB (Disk /dev/sdb: 640.1 GB), presumo che avesse un filesystem FAT32 .
L’utilizzavo solo per i backup e per raccogliere files importanti… quindi dall’acquisto non l’ho mai partizionato.

Iniziamo magari a ottenere l’output (e a fare un backup) della tabella delle partizioni attuale:

# sfdisk -d /dev/sdb | tee /home/WD_6400AAC.dump

ho già postato la mia tabella delle partizioni dell’HD esterno… quest’ultimo non aveva nessuna distribuzione Gnu/Linux installata, ma fungeva solamente da storage usb esterno…
quindi, non essendo stato partizionato, aveva solamente il suo filesystem nativo, FAT16, non ricordo…
Non stò cercando di ripristinare la sua tabella di partizionamento ma vorrei fare solo dei tentativi affinchè Io possa recuperare i miei files perduti dalla mia distrazione…
In base alla Vs esperienza, vale la pena tentare di recuparare i miei files oppure, ahimè, mi tocca formattare l’HD ?

Grazie per il supporto :wink:

[code]# fdisk -l /dev/sdb

Disk /dev/sdb: 640.1 GB, 640135028736 bytes, 1250263728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x00014d34

Dispositivo Boot Start End Blocks Id System
/dev/sdb1 * 8192 122879 57344 6 FAT16
/dev/sdb2 122880 3788799 1832960 83 Linux
/dev/sdb3 584833024 588498943 1832960 83 Linux
[/code]

l’idea è sovrascrivere la tabella delle partizioni e recuperare il recuperabile, si intende che quei 2 GB che hai sovrascritti sono definitivamente persi.

  1. quanti dati in MB erano presenti a tua memoria ?
  2. rispondi al comando proposto da Tempus.

Il (tentativo di) ripristino di detta tabella era inteso per (tentare di) ripristinare l’accesso ai file “non sovrascritti”. L’intenzione è partire dalla tabella attuale come letta da sfdisk (ma non è l’unica via).
Con sfdisk personalmente sono riuscito a recuperare al 100% un disco (di sistema) che aveva ricevuto una tabella errata, anche se non era stato sovrascritto in questo modo.
EDIT: battuto sul tempo

Scusate l’intromissione…
io ho un hdd 120gb e per un salto di corrente si è danneggiata la tabella della partizione (unica) fat32.
poi ad aggravare tutto c’è stato anche quel maledetto scandisk di wincesso che penso abbia compromesso quanche dato… io vedo i dati con programmi a pagamento ma non posso recuperarli
c’è la possibilità di fare un’immagine iso del disco per poi tentare di ricostruire la tabella delle partizioni?

grazie e scusate se serve apro un altro topic :slight_smile:

fai un clone con dd del disco e poi prova con testdisk.

conviene però aprire discussione dedicata al problema, se mischiamo le discussioni rischiamo di confonderci.

[quote=virus]fai un clone con dd del disco e poi prova con testdisk.

conviene però aprire discussione dedicata al problema, se mischiamo le discussioni rischiamo di confonderci.[/quote]

ok grazie ora mi diverto un po’ con il terminale e in caso apro un topic :wink:

Ciao a tutti voi,

posto l’output del comando suggerito da ‘tempus’:

[code]# sfdisk -d /dev/sdb | tee /home/WD_6400AAC.dump

partition table of /dev/sdb

unit: sectors

/dev/sdb1 : start= 8192, size= 114688, Id= 6, bootable
/dev/sdb2 : start= 122880, size= 3665920, Id=83
/dev/sdb3 : start=584833024, size= 3665920, Id=83
/dev/sdb4 : start= 0, size= 0, Id= 0
[/code]

Per quanto riguarda i miei dati, ne avevo di moltissimi e tutti utili… ma non saprei quantizzarne il peso totale.
Ma sarei cmq felice se potessi recuperarne anche una parte di essi :wink:

Bene, adesso ti devo fare due domande io (come se non bastasse, penserai):

  1. L’immagine in questione, con il comando dd in questione, genera /dev/sdb1 e /dev/sdb2. /dev/sdb3, che è l’apparente clone di /dev/sdb2, è stato generato da un tuo pregresso tentativo con testdisk?
  2. Hai provato testdisk; hai provato anche photorec, e non ha trovato alcun file?

Stasera, alla luce delle tue risposte, penso a un attacco consono.

Ciao Tempus,
si, penso che il clone della partizione /dev/sdb2 è stato generato da TestDisk, nel mio tentativo di recuperare i files persi… anche perché prima del mio ‘folle gesto’ l’HD esterno non era stato mai partizionato…
Si, ho tentato con Photorec ma non mi ha recuperato niente di chè…Stasera, incrociando le dita, utilizzerò Scalpel, penso che sia più efficace di Foremost.

Ti farò sapere…

ok.
proviamo, da root, useremo l’utility fdsik per modificare la tabella delle partizioni, mi raccomando fai grande attenzione:

# fdisk /dev/sdb

ora dovrai dare dei comandi alle sue richieste,
toccando dei tasti che ti indico seguiti da invio che segnalo col simbolo [inv]:
qui cancelli le tre partizioni:

d [inv] 3 [inv] d [inv] 2 [inv] d [inv] 1 [inv]
qui ne crei una nuova:

 n [inv] p [inv] 1[inv]

ora ti chiederà primo settore, tu rispondi [inv]
ora ti chiederà ultimo settore, tu rispondi [inv]
poi definiamo il tipo di filesystem:

t [inv] 1 [inv] e [inv]

ora stampa la tabella:

p [inv] 

se la tabella è esattamente questa:

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sdb1   *         8192    588498943   294245376    6  FAT16

allora puoi premere

w [inv]

con quest’ultimo comando sovrascrivi la tabella delle partizioni, quindi… calma e gesso.
se non è questa premi.

q [inv]

così esci senza trascrivere la tabella e puoi ricominciare daccapo, fino a quando la tabella è quella che ti ho indicato.
(speriamo che il filesystem sia un fat 16 come hai detto)

se tutto è andato liscio, aspetta un paio di secondi poi controlla se il sistema “vede” il filesystem,
montalo e recupera il recuperabile.

( Avevo pensato a fat32 (per via delle dimensioni del drive) e a

# sfdisk /dev/sdb< <(printf '%s\n' ,,b)

, il problema è che è stato toccato l’incipit della (unica) partizione e… da solo non basta; da test in locale (molto più in piccolo) sono necessari altri passaggi, ma presuppongono che si sappia esattamente cosa cercare. )

aggiungo una postilla al post 18,
se dopo aver montato il disco e non accedi ai file, smontalo subito, e riporta qui l’accaduto.