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.