Copia Bit a Bit

Con l’uso di fsck dovremmo aver corretto diversi problemi sui nostri dischi ma qualche volta tutto cio’ non basta ed il problema potrebbe essere piu’ serio ed il disco hardware potrebbe essere li li per lasciarci.

Dischi morenti , con testine saltellanti, che contengono tutti i nostri preziosi dati non sono una bella cosa da vedere. Come spiegato nel primo articolo in questi casi la prima cosa da evitare e’ di andare a modificare qualunque file e questo puo’ intendere anche cercare di farne singole copie su di altri supporti, questo perche’ogni azione compiuta vi avvicinera’ sempre di piu’ al momento di fault del disco, complicando molto ogni futura azione, la cosa migliore quindi e’ quella di non sottoporre ad ulteriore stress il disco e di clonarlo immediatamente effettuando una sua immagine “bit to bit” , sara’ sempre possibile, con tutta calma, operare sulla copia per estrapolare e becappare i nostri preziosi dati. Normalmente per effettuare questo tipo di copie si usa il tool dd ma in questo caso, presupponendo, un imminente guasto/arresto del disco a causa di seri problemi non fara’ al nostro caso poiche’ ‘dd’ e’ progettato per interrompersi non appena riscontra un errore e non sarebbe di grande aiuto dovendo operare su di un disco non funzionante. Affideremo quindi questa delicata operazione al comando ddrescue che, come dd , viene utilizzato per effettuare copie ‘bit to bit’ ma , diversamente da ‘dd’ , e’ in grado di saltare i blocchi guasti rilevati sul disco durante l’esecuzione e di copiare soltanto quelli sani.

Ora per poter cominciare questa importante fase ocorrera’ procurarsi un supporto su cui effettuare la copia, sta a voi usare il device (sano) che avete a disposizione sia che sia un secondo disco (interno/esterno) una chiavetta USB o altro, la cosa piu’ importante da verificare e’ che mentre il disco su cui effettuerete la copia dovra’ essere montato sul sistema, quello da “copiare” (difettoso) dovra’ invece essere smontato; effettuata questa importante verifica potremo lanciare il tutto eseguendo il seguente comando (come negli articoli precedenti nel mio caso il disco primario e di root del sistema e’ /dev/sdd1 quindi lo usero’ come esempio) :

  • sudo ddrescue /dev/sdd1 /media/drive-di-backup/sdd1.image /media/drive-di-backup/logfile

questo comando effettuera’ la copia della partizione sdd1 del disco guasto e la salvera’ nel file  sdd1.image all’interno del disco di backup montato sotto /media/<drive-di-backup> , l’ultima parte si occupa invece di creare anche un file di LOG da poter leggere in caso di problemi. A questo punto tutti o gran parte dei nostri dati (dipende da quanto grave sia il guasto sul disco) saranno stati copiati e salvati sull’immagine creata; ora volendo essere pignoli potremmo chiedere ancora a ddrescue di cercare di recuperare quelle parti di blocchi/informazioni che risultano difettose tramite il seguente comando :

  • sudo ddrescue -r 3 -C /dev/sdd1 /media/drive-di-backup/sdd1.image /media/drive-di-backup/logfile

in pratica con l’aggiunta dell’opzione ” -r 3 ” diciamo a ddrescue di effettuare un numero massimo di tre tentativi di lettura di quei dati su cui ha riscontrato errori per cercare cosi di riempire ulteriormente qualche altra fetta dei nostri preziosi dati. Questa operazione causa un forte stress sul disco ecco perche’ la eseguiamo soltanto dopo aver messo al riparo tutto il resto sull’immagine creata al primo giro. Sara’ proprio grazie alla lettura del file di LOG che ddrescue e’ in grado di riempire/aggiungere soltanto i blocchi vuoti , senza rileggere le parti gia’ eseguite correttamente in precedenza.

Ultimo consiglio se dovete salvare piu’ partizioni eseguite ddrescue piu’ volte tante quante sono le partizioni per voi necessarie e create N file .image .

** Leggi anche ( ” a volte basta poco! ” )

Linux Rescue File System

Nulla si crea, nulla si distrugge…..tutto si recupera! 

Avete mai pensato che ai dischi dei vostri PC possono capitare molte cose spiacevoli:perdita inaspettata di elettricità’, campi magnetici forti…. ed i vostri dati si trasformano in ZOMBIE. Come poter uscire da questa spiacevole situazione ?. Può non sembrare, ma la probabilità di perdere dati importanti è molto alta, solo per fare un esempio può verificarsi a seguito di:

  • errori umani (es. per sbaglio “facendo pulizia” nel computer si cancella un file di troppo; oppure dopo aver editato un file al posto di scegliere “Salva con nome…” si preme “Salva” ed ecco che la versione originale del file viene persa.);
  • guasti (es. si rompe il disco rigido su cui erano memorizzati i dati, si danneggia la chiavetta USB, si riga il CD/DVD ecc.)
  • minacce informatiche (es. virus che cancella i dati del computer, virus che cifra i documenti presenti sul computer e chiede il riscatto ecc.)
  • furti (es. il ladro ruba i computer dell’ufficio/casa su cui erano memorizzate tutte i nostri dati sensibili……!!!)
  • disastri (es. incendi, allagamenti ecc.)

Importante: appena scopri di aver accidentalmente cancellato o altrimenti perso dei dati, NON registrare più nulla su quel dispositivo di memoria o hard disk, correresti il rischio di sovrascrivere i dati che invece vorresti recuperare.

La cosa troppo spesso sottovalutata e che non importa da quanto tempo usate i computer, nonostante la vostra esperienza prima o poi capitera’ a chiunque di perdere dati + o – importanti; quindi per quanto ci si pensi “infallibili” sempre meglio avere una buona schedulazone di BACKUP, che dovrebbero comprendere non solo files (musica, film, foto ecc…) ma anche importanti files
di configurazione (gestione dell’interfaccia grafica, l’MBR, le regole di firewall ecc…).

Detto questo ci sono ancora diversi tool che possono venire in aiuto per uscire da una spiacevole situazione. Lascio perdere tool blasonati (ed a pagamento), in quanto gia’ supporati da manuali/call center ed assistenze varie, per lanciarmi nell’introduzione dei sistemi OpenSource.
[Nota: nessun sistema e’ infallibile e puo’ dare certezze assolute che sia open/free oppure a pagamento, dipende da situazione a situazione, dalle capacita’ personali/esperienza e dal fattore “C”, proprio quello che muove una parte del mondo e che ci divide tra l’essere come Gastone oppure essere un Paperino].

FSCK : il primo tool da imparare e’ il sempre verde ‘fsck’ che si trova su ogni distro Linux esistente, questo tool viene utilizzato dal sistema, ad esempio, tutte quelle volte in cui e’ necessaria una verifica della consistenza del file system a causa di una chiusura non pulita del sistema, oppure per verificare eventuali problemi di “logorio” dei dischi, facendolo partire automaticamente (scan disk)
ogni tot. riavvii del sistema.

Fsck supporta i più diffusi file system come ext2 / ext3 / ext4 / fat / fat32 / ntfs e può essere utilizzato anche per ripristinare hard disk esterni / interni anche con Microsoft Windows installato.
Da notare inoltre che durate il ripristino di un file system danneggiato può succedere che alcuni file o directory non possano essere ricollocate nella pozione originaria in quanto le informazioni necessarie sono andate distrutte, in questo caso fsck ci consente di collocare i vari file e directory in una cartella dedicata situata nella radice del file system ripristinato in modo tale da poter essere ricollocati manualmente nelle directory originarie o possono essere rimossi definitivamente.

Per utilizzare fsck nella correzione di un file system/partizione e’ d’obbligo non agire sulla suddetta mentre questa e’ montata, sara’ quindi necessario utilizzare una LiveCD su un qualunque supporto esterno preferiate, se invece il disco / partizione da ripristinare è esterna al sistema operativo potremo operare dalla nostra distribuzione preoccupandoci soltanto di smontare la partizione in questione prima di agire con i comandi.

La prima cosa da fare è verificare come viene rilevato il disco o partizione da ripristinare dal nostro sistema operativo. Per verificarlo basta digitare da terminale:
sudo fdisk -l
con questo comando averemo l’elenco dei dischi e partizioni presenti / collegati nel nostro sistema, nell’esempio la partizione da ripristinare sara’ /dev/sdb1

A questo punto avviamo fsck da root seguito dal disco da rilevare /dev/sdb1 digitiamo
sudo fsck -A -r -s /dev/sdb1

…se volete che la procedura vada avanti in modo automatico e’ possibile aggiungere l’opzione -y
tenendo pero’ presente che l’intervento automatico di fsck potrebbe rendere irrecuperabili dei dati.

**Nota: fsck e’ un tool ricco di funzionalita’ avanzate per cui rimando, per la personalizzazione
del comando, alla lettura della man page sul sistema oppure alle guide online presenti sui portali
delle maggiori distribuzioni Linux.

Uno dei problemi piu’ comuni che potrebbero bloccare la scansione di fsck sono i superblocchi corrotti e visto che un filesystem non puo’ essere utilizzato senza un superblocco in salute esistono diverse sue copie di sicurezza disseminate in diverse posizioni del disco. Bastera’ digitare sudo mke2fs -n /dev/sdb1 per trovare dove sono stati salvati i superblocchi.

**Nota: attenzione a non dimenticare l’opzione -n senza la quale spazzereste via la vostra partizione.

Esempio: $ sudo mke2fs /dev/sdb1
Superblocks backups stored on blocks:
32768,98304,163840,229376 ecc…..

Ora potremo usare uno di questi blocchi per rimpiazzare quello indicato come corrotto durante lo scan disk con fsck, nel seguente modo :

es.-> $ sudo e2fsck -b 32768 /dev/sdb1 (dove 32768 e’ il primo superblocco disponibile indicato sopra)

Se il filesystem dovesse essere una partizione NTFS si puo’ provare ad utilizzare l’utility ntfsifx, sempre assicurandosi che la partizione in questione non sia montata, dopodiche (seguendo il nostro esempio) bastera’ digitare:
$ ntfsfix /dev/sdb1

Terminate le attività’ descritte saremo pronti ad effettuare un nuovo riavvio; nel caso in cui tutto ciò’ non abbia funzionato, le operazioni ed i tool ancora da scoprire e provare sono diversi e verranno trattati nei prossimi articoli in cui verranno analizzati tool quali :

  • hdrecover
  • photorec
  • ddrescue
  • foremost / scalpel
  • testdisk
  • sfdisk