Ricerca nel sito web

Come recuperare un file eliminato in Linux


Ti è mai successo? Ti sei reso conto di aver cancellato per errore un file, utilizzando il tasto Canc o utilizzando rm nella riga di comando.

Nel primo caso, puoi sempre andare nel Cestino, cercare il file e ripristinarlo nella sua posizione originale. Ma che dire del secondo caso? Come sicuramente saprai, la riga di comando di Linux non invia i file rimossi da nessuna parte: li RIMUOVE. Barbone. Se ne sono andati.

Lettura consigliata: Come recuperare file/directory eliminati utilizzando lo strumento Scalpel

In questo articolo condivideremo un suggerimento che potrebbe esserti utile per evitare che ciò accada e uno strumento che potresti prendere in considerazione se in qualsiasi momento fossi abbastanza distratto da farlo comunque.

Crea un alias per "rm -i"

L'opzione -i, quando usata con rm (e anche altri strumenti di manipolazione di file come cp o mv) fa apparire un messaggio prima di rimuovere un file.

Lo stesso vale per copiare, spostare o rinominare un file in una posizione dove ne esiste già uno con lo stesso nome.

Questa richiesta ti offre una seconda possibilità per valutare se desideri effettivamente rimuovere il file: se confermi la richiesta, scomparirà. In tal caso, mi dispiace, ma questo suggerimento non ti proteggerà dalla tua stessa disattenzione.

Per sostituire rm con un alias per 'rm -i', esegui:

alias rm='rm -i'

Il comando alias confermerà che rm è ora alias:

Tuttavia, ciò durerà solo durante la sessione utente corrente nella shell corrente. Per rendere permanente la modifica, dovrai salvarla in ~/.bashrc (alcune distribuzioni potrebbero invece utilizzare ~/.profile) come mostrato di seguito:

Affinché le modifiche in ~/.bashrc (o ~/.profile) abbiano effetto immediato, origina il file dalla shell corrente:

. ~/.bashrc

Lo strumento forense – Foremost

Si spera che starai attento con i tuoi file e dovrai utilizzare questo strumento solo durante il recupero di un file perso da un disco esterno o da un'unità USB.

Tuttavia, se ti rendi conto di aver rimosso accidentalmente un file dal tuo sistema e stai andando nel panico, non farlo. Diamo un'occhiata innanzitutto a uno strumento forense progettato per questo tipo di scenari.

Per installare soprattutto in CentOS/RHEL 7, dovrai prima abilitare Repoforge:

rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install foremost

Mentre in Debian e derivati, basta farlo

aptitude install foremost

Una volta completata l’installazione, procediamo con un semplice test. Inizieremo rimuovendo un file immagine denominato nosdos.jpg dalla directory /boot/images:

cd images
rm nosdos.jpg

Per recuperarlo, usa in primo luogo come segue (dovrai prima identificare la partizione sottostante – /dev/sda1 è dove risiede /boot in questo caso):

foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued

dove /home/gacanepa/rescued è una directory su un disco separato: tieni presente che ripristinare i file sulla stessa unità in cui si trovavano quelli rimossi non è una mossa saggia.

Se durante il ripristino si occupano gli stessi settori del disco in cui si trovavano i file rimossi, potrebbe non essere possibile recuperare nulla. Inoltre, è essenziale interrompere tutte le attività prima di eseguire il ripristino.

Al termine dell'esecuzione, il file recuperato (se il ripristino è stato possibile) verrà trovato nella directory /home/gacanepa/rescued/jpg.

Riepilogo

In questo articolo abbiamo spiegato come evitare di rimuovere accidentalmente un file e come tentare di recuperarlo se si verifica un evento indesiderato. Tieni presente, tuttavia, che l'esecuzione di tutto può richiedere un po' di tempo a seconda della dimensione della partizione.

Come sempre, non esitate a farci sapere se avete domande o commenti. Sentiti libero di inviarci una nota utilizzando il modulo sottostante.