2010-06-08 02:00:57 +0000 2010-06-08 02:00:57 +0000
65
65

Hoe kan ik een verwijderd bestand onder Linux herstellen?

Per ongeluk heb ik rm gebruikt op een bestand dat ik niet wilde verwijderen. Is er een manier om het terug te krijgen onder Linux?

Antwoorden (15)

51
51
51
2010-06-08 02:04:42 +0000

De volgende stappen zijn generiek om tekstbestanden te herstellen.

  1. Gebruik eerst het muurcommando om de gebruiker te laten weten dat het systeem in een enkele gebruikersmodus wordt uitgeschakeld:

    1. Gebruik vervolgens init 1 commando om het systeem naar een single user modus te brengen:
    1. Gebruik grep (traditionele UNIX manier) om bestanden

te herstellen. 4. Gebruik vervolgens vi om file.txt.

te zien. Gevonden op http://www.cyberciti.biz/tips/linuxunix-recover-deleted-files.html

13
13
13
2010-07-09 06:27:42 +0000
  • Als het erg belangrijk is, neem dan de schijf van de computer en huur een bedrijf in om het voor u te doen.
  • Als het alleen erg belangrijk is, koppel de schijf alleen-lezen, kopieer de hele partitie naar een bestand met behulp van dd en probeer het bestand daarin te vinden (met behulp van grep, of een editor).

Bewerken: soms werkt ddrescue beter dan dd.

9
9
9
2010-07-09 06:29:12 +0000

Als uw bestandssysteem ext3 is, gebruik dan ext3grep .

8
8
8
2010-06-08 03:33:59 +0000

Testdisk heeft een undelete optie die met Linux zou moeten werken.

Er is een walkthrough voor Linux . Merk op dat het werkt voor ext2 , ext3 , en ext4 .

5
5
5
2011-07-25 01:23:05 +0000

Ik heb dit een paar jaar geleden gedaan. Mijn aanpak was om direct, zonder tijd te verliezen, de partitie te unmounten en vervolgens

dd if=/dev/hda1 of=backup_image.ext3

een back-up bestand te hebben van de exacte staat van de partitie. Dan kun je de partitie weer mounten en verder gaan met business as usual terwijl je het verwijderde bestand in je gemaakte image zoekt. De afbeelding zal waarschijnlijk ZEER groot zijn omdat je alle “lege” ruimte nodig hebt, dus het kan een praktisch probleem zijn om het op te slaan.

Dan was het gewoon om saaie zoekopdrachten uit te voeren na tekstfragmenten waarvan ik verwachtte dat ze ergens in de soep van de partitie-inhoud zouden zitten. Om bijvoorbeeld .tex-bestanden te vinden, rende ik

grep --binary-files=text -1000 "subsection" < backup_image.ext3 > latexfiles

die een grote context rond de zinsnede “subsectie” afdrukten en de uitvoer opsloegen in een bestand om handmatig doorzocht te worden. Ik heb zo'n grote context afgedrukt omdat het zo lang duurde om de afbeelding te doorzoeken dat ik het liever niet vaker deed dan nodig was.

Ook het commando strings was nuttig bij het verwijderen van binaire rotzooi uit de uitvoer, maar als ik me goed herinner heeft het ook alle nieuwe lijnen verwijderd, wat een probleem zou kunnen zijn.

Om binaire bestanden op dezelfde manier te vinden, kan het lukken om een karakteristieke header of iets van een bepaald bestand te vinden, maar ik stel me voor dat het een vrij groot avontuur is.

  • *

Korte technische opmerkingen: er zijn technische problemen met schijfherstel en Ext3/4. Het is een lang ding om uit te leggen, maar kort (en onvoldoende): Ext3/4 verwijdert de “markers” die het OS vertellen waar de bestanden zich op de schijf bevinden wanneer u ze verwijdert. De bestanden worden niet geschrobd, maar niemand weet meer waar ze op de schijf beginnen en eindigen, en soms zijn ze zelfs op meerdere plaatsen gefragmenteerd. Sommige andere bestandssystemen stellen de status van de bestanden gewoon in op “gewist”, maar houden de locatiegegevens bij. Dan is undelete niet moeilijker dan het bekijken van file pointers met deze vlag (ze zouden nog steeds beschikbaar moeten zijn als er niet te veel activiteit is geweest), en dan hopen dat hun inhoud niet overschreven is.

Wat is het beste? Retorisch, naar mijn mening. Frequente back-up is het antwoord op al deze problemen. Belangrijke gegevens zonder geautomatiseerd backup systeem is een ongeluk dat wacht op een ongeluk, IMHO.

  • *

Verplichte persoonlijke anekdote: Ik was van plan om foo\ foo* uit ~ te verwijderen. Ik schreef

rm -r foo<Tab>*

, wat helaas, aangezien foo blijkbaar een symlink was en het enige bestand dat hiermee overeenkwam, de shell maakte van

rm -r foo\ foo *

Ik drukte op Enter en zat daar te kijken naar het commando, wat hooguit een seconde had moeten duren. Na wat langere tijd vroeg rm me of ik “het schrijfbeveiligde bestand ‘iets’ wilde verwijderen”. Vrij snel voelde ik de rillingen en zacht en zeer gecontroleerd drukte ik op Ctrl+c. ~De helft van mijn ~ werd verwijderd, maar ik slaagde erin om alles van waarde terug te krijgen door de hierboven beschreven begroeting en enkele min of meer actuele back-ups. Ik had een aantal persoonlijk zeer waardevolle (lees: tijdrovende) en zeer recente meetgegevens op schijf die verloren waren gegaan, maar ik had vierdubbele back-ups gemaakt. De ene stelde hier teleur, een andere door systeemuitval op school, een andere was corrupt, en eerst kon ik de vierde niet vinden, omdat ik die per ongeluk in de verkeerde map had gezet :-D . Had rm -r niet vast komen te zitten op een schrijfbeveiligd bestand, dan zou de vierde zijn opgegeten sinds die map via sshfs in mijn ~ is gemount. Ik ben sindsdien veel voorzichtiger met dat soort dingen.

5
5
5
2010-07-09 13:41:50 +0000
  • Het enige juiste antwoord is : herstel van uw bestand uit de back-up. Iedereen moet een back-up hebben. Voor echt belangrijke bestanden moet u twee back-ups hebben. Heb je dat niet? Nou, jammer, hier is een les geleerd ( Sorry dat ik zo hard klink, maar ik zit in de data opslag, en mensen maken geen back-up totdat ze wat belangrijke data kwijt zijn, dat is een gegeven feit. Dus ja, je ziet er dom uit, maar dat is bijna iedereen.

  • OK, je hebt geen back-up. je moet ophouden met het bestandssysteem dat het bestand RIGHT NOW bevatte. Elke schrijfactiviteit kan zeker de bestandsgegevens die may (alleen may) op schijf blijven.

  • als u de tragische fout maakte om slechts één partitie te gebruiken als zowel het root bestandssysteem als /home, betekent dit dat u must moet opstarten vanaf een ander apparaat. NOW.

  • Als uw bestand een gemeenschappelijk formaat heeft (Word-bestand, JPG, enz.), gebruik dan Photorec . Photorec kan de meest voorkomende bestandsformaten ophalen.

  • U kunt de eerder voorgestelde “ext3 undelete” methode uitproberen, maar u moet vertrouwd zijn met de opdrachtregel, basis linux innerlijke werking begrijpen, etc.

  • Als uw bestand van een of ander speciaal formaat is, pech hebben. Ik heb ooit een Perl programma geschreven om een schijf te scannen voor een aantal speciale bestanden, en het werkte vrij goed; maar je zult wat programmering moeten kennen om dat te kunnen doen, en je moet ook goed op je gemak zijn met linux.

5
5
5
2010-07-09 06:37:16 +0000

Als het de standaard rm is, hoop ik dat je een back-up hebt. De procedure om een verwijderd bestand te herstellen zou voor elk bestandssysteem anders zijn, als dat al mogelijk is. Linux heeft geen ingebouwde “prullenbak”; als je eenmaal een bestand hebt verwijderd, is het helemaal niet meer nodig.

Hoe je het ook doet, je zult de computer willen loskoppelen – zo snel mogelijk, als de computer blijft draaien (zelfs om hem uit te schakelen) veroorzaakt het schrijven naar de schijf en vergroot de kans dat sommige blokken die vroeger door het bestand werden bezet, worden overschreven. Als u dat hebt gedaan, kunt u het apparaat in een andere computer plaatsen, een live CD herstarten (zorg ervoor dat u het apparaat niet koppelt tenzij u het alleen-lezen koppelt), of de harde schijf verwijderen en naar een specialist voor gegevensherstel brengen.

4
4
4
2011-04-19 07:59:56 +0000

Stel uw verwachtingen laag. Als er iets over de ‘verwijderde’ data heen geschreven is, ben je het kwijt.

Ik heb een kleine hoeveelheid herstel gedaan en de beste tools die ik gevonden heb zijn vaak ontworpen naar bepaalde formaten. Bijvoorbeeld ‘photorec’ was geweldig toen ik tienduizenden jpegs wilde laten herstellen. Recuva heeft me ook al eerder geholpen en is misschien wel je beste keuze. (Het is gratis, laat je niet misleiden door hun advertenties)

Aan het eind van de dag, als wat je hebt verloren belangrijk is, neem je de schijf offline en stop je met schrijven. Gebruik elk stukje recovery-software dat je kunt vinden totdat je je gegevens terugkrijgt of het stopt met de moeite waard te zijn. Als het echt belangrijk is, stuur het dan naar professionals voor een hoge prijs.

Als je al eerder geluk hebt gehad met een tool, probeer het dan nog eens, gezien je er bekend mee bent. Aan het eind van de dag zouden ze niet naar schijf moeten schrijven en dus kun je software gebruiken totdat je er een hebt gevonden die werkt.

2
2
2
2014-05-24 20:43:18 +0000

Als je een applicatie hebt geopend die op dit moment het bestand leest, zoals VLC of LibreOffice, dan heeft dit geweldige L&U.SO antwoord me uit deze puinhoop geholpen. Hier is een alternatieve methode om hetzelfde te doen.

Het algemene idee is om de link te vinden in /proc/PID/fd/DESCRIPTOR_NUMBER en deze terug te kopiëren naar de oorspronkelijke locatie. Gebruik ps aux | grep APP_NAME om de PID te vinden en dan ls -la /proc/PID/fd/ om de juiste DESCRIPTOR te vinden.

1
1
1
2018-07-09 18:57:14 +0000

Als het niet wordt overschreven door andere gebruikers, dan heb je geluk. Ik heb per ongeluk mijn cpp-bronbestand gewist en een hulpmiddel genaamd foremost gebruikt, waarmee ik 60G cpp-afval van de schijf kon herstellen. Uiteindelijk heb ik mijn bestand hersteld door die brokstukken stuk voor stuk in elkaar te zetten. Ik denk dat het een bepaald patroon scant voor een specifiek bestandstype en alle inodes op de schijf doorkruist om bestanden te herstellen! Probeer het maar eens!

1
1
1
2011-07-24 15:23:23 +0000

Het “juiste” antwoord is om aan te nemen dat er geen methode is om betrouwbaar te herstellen, en in plaats daarvan te herstellen van back-ups of een gekloond systeem of opnieuw te installeren.

TestDisk is een geweldig hulpmiddel, en er zijn andere manieren om sommige gegevens van de fysieke schijf te kunnen redden, afhankelijk van het bestandssysteem en de recentie van de verwijdering, maar de tijd en de pijn kunnen gewoon te groot zijn, dus KEEP BACKUPS (en ook te testen of ze geldig en herstelbaar zijn)!

1
1
1
2013-07-30 07:55:30 +0000

Hier is een geweldig document voor u. Je vindt er een heleboel praktische tips.

BTW, er zijn twee groepen mensen:

  1. zij die back-ups maken
  2. zij die back-ups maken

Gefeliciteerd, je bent net gepromoveerd tot groep 2. ;-)

0
0
0
2014-07-17 12:52:30 +0000

Als je per ongeluk het bestand van Linux hebt verwijderd dan kun je dit commando gebruiken:

find /root -name "search text" -type f -exec mv {} "/home" \;

in plaats van search text je kunt de bestandsnaam zetten en de map opgeven waar je het bestand wilt herstellen in plaats van /home.

0
0
0
2018-05-15 01:46:17 +0000

Je kunt dit script proberen. Werkt mooi en bedoeld om te worden gebruikt in plaats van rm en im gebruiken het nu uitgebreid. https://github. com/nateshmbhat/safe-rm

Kenmerken :

  • bedoeld om te gebruiken in plaats van rm
  • behandelt alle argumenten die rm kan nemen
  • behandelt de bestandsnaambotsingen met de bestanden die al in de prullenbak staan - behandelt sommige toestemmingskwesties automatisch
  • als rm wordt aangeroepen vanuit een ander script of indirect dan wordt het systeem ‘rm’ commando automatisch gebruikt - toont de juiste foutmeldingen zoals die zich voordoen in rm
-2
-2
-2
2015-10-19 12:27:52 +0000

Ik had vorige week hetzelfde probleem en ik heb veel programma’s geprobeerd, zoals debugfs, photorec, ext3grep en extundelete. ext3grep was het beste programma om bestanden te herstellen. De sintax is heel eenvoudig:

ext3grep image.img --restore-all

of:

ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’

Deze video toont een mini-tutorial die je kan helpen.