Heb je ooit per ongeluk belangrijke bestanden verwijderd? Wie niet! Oké, maar kan ik ze herstellen? In dit artikel leert u hoe u verwijderde bestanden op Linux kunt herstellen met verschillende programma’s op verschillende bestandssystemen.
U zult zien hoe u verwijderde bestanden kunt herstellen van SD-kaarten, HDD’s en verwijderde partities op verschillende Linux-bestandssystemen zoals EXT3, EXT4, en zelfs van Windows-bestandssystemen zoals FAT32 & NTFS.
Inhoudsopgave
Bestanden van verwijderde partitie herstellen
Dit is nogal een probleem. Linux gebruikers installeren vaak meerdere systemen tegelijk, en het kan gebeuren dat ze tijdens het installatieproces per ongeluk een partitie verwijderen.
Hoe kunnen we echter bestanden herstellen van die verwijderde partities? Hiervoor moeten we de partitie herstellen met behulp van een tool genaamd TestDisk.
Testdisk is een krachtige partitie analyse en data recovery utility. De meeste Linux-distributies zoals Debian en Ubuntu worden geleverd met TestDisk.
Aan de andere kant, de applicatie is cross-platform en ondersteunt een groot aantal partitietabellen, zoals Intel, MSDOS, en Mac. Dit zijn de meest populaire partitietabellen.
Ook ondersteunt het vele bestandssystemen zoals NTFS, EXT4, en andere niet populaire bestandssystemen zoals BeOS en ReiserFS.
Wanneer u een bestand verwijdert, wordt de lijst met clusters die door het bestand worden bezet verwijderd, waardoor die sectoren beschikbaar worden voor gebruik. Als de clusters niet zijn overschreven, kan TestDisk de bestanden herstellen.
Start de applicatie eerst als volgt:
$ testdisk
Volgende, u hebt de optie om een nieuw bestand voor de logs te maken. Als u er een wilt maken, kies dan de optie maken en druk op Enter. Als u geen logbestand wilt, selecteert u de optie Geen logbestand.
Volgende stappen worden de schijven of partities gescand die door het systeem worden herkend. In dit specifieke geval is sda de partitie die we willen herstellen.
TestDisk herkent verschillende typen partitietabellen. Het is meestal Intel, tenzij u een gespecialiseerde gebruikt.
In het volgende scherm ziet u een reeks opties die het programma heeft. In dit specifieke geval moeten we de optie Analyse kiezen.
Met deze optie zal het programma de schijf grondig analyseren om de structuur te vinden.
Dan wordt gevraagd naar het type zoekopdracht dat u wilt uitvoeren. Meestal kiest u voor de optie Snel zoeken.
Als u geluk hebt, ziet u de verwijderde partitie. Zo niet, dan zult u dieper moeten zoeken.
Kies vervolgens de optie Schrijven om de partitietabel te schrijven. Als u klaar bent, start u het systeem opnieuw op en hebt u uw partitie terug!
Merk op dat het tijdens deze stappen lang kan duren. Dit hangt af van de grootte van de schijf.
Afhankelijk van het type bestandssysteem dat deze partitie kan hebben, zullen bepaalde instructies worden gevolgd. Ze zullen later worden gedetailleerd.
Herstellen verwijderde bestanden van een externe schijf
Nu laten we ons voorstellen dat we een externe flash drive hebben, en per ongeluk, heb je een aantal bestanden verwijderd van het. Hoe kunt u ze herstellen?
Dankzij TestDisk, wordt het proces heel vergelijkbaar met dat van een verwijderde partitie. Maar er zijn enkele verschillen.
Om het programma te starten, zullen we het testdisk commando gebruiken. Ook kunnen we de flash drive als parameter toevoegen zoals dit:
$ sudo testdisk /dev/sdb
Volgende, selecteer proceed. Kies vervolgens het partitietabeltype.
Kies vervolgens de Geavanceerde opties om bestanden te herstellen.
De volgende stap is het selecteren van de partitie en de optie Undelete.
Dan ziet u alle verwijderde bestanden op de partitie.
Nu selecteert u de doelmap waarin u de herstelde bestanden wilt plaatsen. U moet bij de eerste optie op C drukken om de bestanden in de huidige map te plaatsen.
U krijgt nu dit bericht te zien:
Gefeliciteerd! Bestanden hersteld.
Herstellen verwijderde bestanden van SD-kaart
Over het algemeen, op een SD-kaart, is het gebruikelijk om te merken dat ze worden gebruikt voor multimedia bestanden. Daarom is het raadzaam om een meer gespecialiseerd programma te gebruiken voor deze bestanden.
In dit geval zullen we gebruik maken van de toepassing genaamd Photorec dat wordt geleverd in TestDisk.
Stop eerst de SD-kaart op de PC. Start vervolgens photorec als root:
$ sudo photorec
Dan ziet u de volgende afbeelding. Selecteer de media en ga verder en druk op Enter.
Volgende, selecteer de partitie. En selecteer Opties en druk op Enter.
Daar ziet u de herstelopties:
Druk op q om terug te keren naar het vorige scherm. Het is noodzakelijk om de soorten bestanden te kiezen die we willen herstellen. Dit wordt bereikt door de optie Bestand kiezen te selecteren.
Druk op de toets s om alle formaten te selecteren en deselecteren. U kunt ook de typen bestanden selecteren die u wilt herstellen met de rechtertoets. Om de geselecteerde opties op te slaan, drukt u op de toets b. Keer terug naar het hoofdmenu met de q toets.
Kies vervolgens in het hoofdmenu de optie Zoeken om het proces te starten. En kies het bestandssysteem.
U krijgt dan twee opties te zien. Free en Whole. Normaal gesproken is Free voldoende. Als u een diepgaande analyse wilt doen, kies dan Whole, maar houd er rekening mee dat dit het proces zal vertragen.
Nu is het noodzakelijk om de locatie te kiezen waar de bestanden zullen worden opgeslagen. Druk hiervoor op de c-toets.
Na het kiezen van de bestemming, zal het herstelproces beginnen. Vergeet niet dat het systeem zal instorten en bevriezen. Dus wees geduldig.
Aan het eind krijgt u een bericht te zien waarin u wordt geïnformeerd over alles wat er is gebeurd.
Volgende, controleer de resultaten.
Verwijderde bestanden herstellen van NTFS
NTFS is een Windows-bestandssysteem. Als u een van degenen bent die beide systemen op de computer gebruiken, dan moet u misschien verwijderde bestanden herstellen van een Windows-partitie met dit bestandssysteem.
Om dit te doen, hebben we een hulpprogramma genaamd ntfsundelete dat vrij eenvoudig te gebruiken is.
Eerst moet u de schijf of de partitie scannen. Bijvoorbeeld:
$ sudo ntfsundelete /dev/sda1
Dan kunnen we het verwijderde bestand herstellen met het volgende commando:
$ sudo ntfsundelete -u -m
De herstelde bestanden behoren nu toe aan de root-gebruiker. De laatste stap is het veranderen van de permissies en eigenaren van de bestanden met het chown commando.
Bestanden herstellen van FAT32
Een ander veel voorkomend Windows bestandssysteem is FAT32. U kunt bestanden van FAT32 herstellen door TestDisk te gebruiken.
Dus voer testdisk opnieuw uit als root-gebruiker en geef de schijf op als parameter:
$ sudo testdisk
Vervolg vervolgens de stappen zoals hierboven beschreven om de bestanden te herstellen.
Bestanden in het geheugen herstellen (Met inode)
Als u een bestand verwijdert dat door een ander proces wordt gebruikt, kunt u het met inode vanuit het geheugen herstellen.
Er moet aan een aantal beginvoorwaarden worden voldaan. Ten eerste MOET het verwijderde bestand nog open staan voor een ander proces. Dan moet je het proces verifiëren en tenslotte herstellen en de permissies veranderen.
In dit geval zal ik een bestand maken met de naam example.txt met behulp van de nano editor en wat tekst toevoegen:
$ nano example.txt
Dan sla je de veranderingen op en open je een ander terminal venster en gebruik je het bestand. Bijvoorbeeld met het commando less.
$ less example.txt
Open een andere terminal sessie, verwijder het bestand en zorg ervoor dat het wordt verwijderd:
$ rm example.txt$ ls example.txt
Zoals u kunt zien, bestaat het bestand niet meer. Maar we zullen in staat zijn om het te herstellen. Laten we daarvoor het nummer van het proces ophalen dat is gekoppeld aan de inode van het bestand.
$ lsof | grep example.txt
Je ziet het proces en het commando dat het bestand gebruikt (het less commando). In dat plaatje moeten we letten op de tweede en vierde waarde. Dit zijn respectievelijk de PID van het proces en de descriptor van het bestand.
Daarna kunt u het herstellen met het volgende commando:
$ ls -l /proc/2325/fd/4
Daarna kopieert u het naar welke locatie u maar wilt, en dat is genoeg om het te herstellen.
$ sudo cp /proc/2325/fd/4 .
Controleer vervolgens de resultaten en open het bestand:
Op deze manier kunnen we een verwijderd bestand herstellen dat nog in het geheugen staat en gebruikt wordt door een proces met de inode.
Verwijderde bestanden terughalen van EXT4 (met extundelete)
EXT4 is het standaard bestandssysteem op de meeste Linux distributies. Het is vrij snel en met technische functies die zeer goed worden benut door de Linux-kernel.
Een van de gebruikte tools om bestanden te herstellen van het EXT4-bestandssysteem is extundelete.
Extundelete is een open-source applicatie waarmee verwijderde bestanden van een partitie of een schijf met het EXT3- of EXT4-bestandssysteem kunnen worden hersteld. Het is eenvoudig te gebruiken en wordt standaard geïnstalleerd op de meeste Linux distributies.
Om een bepaald bestand te herstellen, gebruikt u het volgende commando:
$ sudo extundelete -restore-file
Bijvoorbeeld:
$ sudo extundelete /dev/sdb1 -restore-file home/angelo/other.txt
Als u alle bestanden in een map wilt herstellen, gebruikt u het jokerteken:
$ extundelete /dev/sda6 -restore-file home/angelo/*
Maar als u alle bestanden op de partitie of schijf wilt herstellen, zou het volgende commando volstaan:
$ extundelete /dev/sda6 -restore-all
Dus de herstelde bestanden komen in de map RECOVERED_FILES te staan. Dus op deze manier kunt u verwijderde bestanden herstellen met extundelete.
Debugfs gebruiken
Het is ook mogelijk om de debugfs tool te gebruiken om verwijderde bestanden te herstellen. Deze tool gebruikt ook het inode nummer van het verwijderde bestand. Het werkt echter alleen op EXT4 bestandssystemen.
De werking ervan is ook vrij eenvoudig. Eerst moet je de partitie of het apparaat invoeren.
$ debugfs
Voorbeeld,
$ sudo debugfs /dev/sdb1
Dan, na een tijdje, zul je in staat zijn om in te loggen in de debugfs console om te zoeken naar recent verwijderde bestanden.
$ debugfs: lsdel
In de eerste kolom ziet u het incodenummer van de verwijderde bestanden op dat apparaat. Herstel deze vervolgens met het volgende commando:
$ debugfs mi <inode_number>
En dat is het. Het is heel eenvoudig.
Ext4magic gebruiken
Een andere alternatieve manier om verwijderde bestanden op een schijf met een Ext4-bestandssysteem te herstellen, is het gebruik van Ext4magic. Deze toepassing is ook vrij eenvoudig te gebruiken.
De meest elementaire syntaxis van de toepassing is de volgende:
$ sudo ext4magic -f -r -d
Als ik de verwijderde bestanden uit een map met de naam bestanden zou willen herstellen, zou het commando vergelijkbaar zijn met dit commando:
$ sudo ext4magic /dev/sdb1 -r -d files
Zo eenvoudig is het om ext4magic te gebruiken. Dit alles dankzij het feit dat Ext4 een community en open source bestandssysteem is.
Beschreven bestanden herstellen (Met Scalpel)
Scapel is een andere open source tool waarmee je bestanden kunt herstellen van geformatteerde schijven, overschreven bestanden, en zelfs beschadigde schijven. Het is bekend om zijn snelheid en efficiëntie. In deze zin, komt het naar voren als een alternatief om te overwegen.
Scalpel snijdt bestanden zonder de hulp van bestandssystemen. Het probeert de headers en footers van bestanden te extraheren en probeert de gehele bestandsstructuur te raden met behulp van een aantal goed ontworpen algoritmen.
Net als TestDisk, is het beschikbaar in de officiële repositories van de meeste Linux distributies. Daarom is de installatie ervan beperkt tot het gebruik van de terminal en de pakketbeheerder van de distributie.
De snelste en gemakkelijkste manier om Scapel te gebruiken is als volgt:
$ scalpel -o
De output_folder specificeert waar scapel alle herstelde bestanden zal plaatsen. Merk op dat Scalpel zelf de uitvoermap aanmaakt.
Maar hoe weet Scapel welke bestanden hersteld moeten worden? Wel, dat wordt bepaald in het configuratiebestand van de toepassing.
Dit configuratiebestand bevindt zich gewoonlijk op de volgende locatie:
/etc/scalpel/scalpel.conf
En u kunt het openen met uw favoriete teksteditor, en daar hoeft u alleen maar de regels uit te vinken die de te doorzoeken bestandsformaten definiëren.
De bestandsformaten die u uncommenteert, worden door Scalpel opgezocht.
Daarna voert u het volledige Scalpel-commando uit, en in de uitvoermap ziet u de herstelde bestanden.
$ sudo scalpel /dev/sdb1 -o recovered_files1
Soms herstelt Scalpel delen van het bestand. Dat hangt af van de gezondheid van de schijf en hoeveel gegevens er beschadigd zijn.
Er zijn ook veel craving-algoritmes die je kunt gebruiken, maar we hebben hier de basismanier van data craften besproken.
Bestanden herstellen van een niet-opstartbaar systeem
Dit is een delicaat geval omdat we toegang moeten krijgen vanaf een Live cd van Ubuntu of een andere vergelijkbare Linux-distributie. Als we eenmaal hebben opgestart, kunnen we TestDisk gebruiken om te proberen de gegevens te herstellen.
In dit geval zouden we een externe schijf moeten gebruiken om de gegevens op te slaan. Aan de andere kant, in het geval dat TestDisk het werk niet kan doen, kunnen we ook extundelete of ext4magic proberen zolang de partitie Ext4 is.
Als het niet werkt, kunt u proberen de partitie te regenereren met TestDisk zoals hierboven uitgelegd.
Conclusie
Het is mogelijk om per ongeluk bestanden te verwijderen. Het idee is om de juiste tools en technieken te kennen om deze bestanden te herstellen.
In dit bericht hebben we verschillende omstandigheden en verschillende bestandssystemen behandeld die kunnen helpen dergelijke problemen te voorkomen.
Blijf terugkomen.
Dank u.
Oprichter van LikeGeeks. Ik werk sinds 2010 als Linux-systeembeheerder. Ik ben verantwoordelijk voor het onderhouden, beveiligen en oplossen van problemen met Linux-servers voor meerdere klanten over de hele wereld. Ik schrijf graag shell- en Python-scripts om mijn werk te automatiseren.