Wanhopige Undelete. Michael Hamilton, michael@actrix.gen.nzHier is een truuk die ik al een paar keer heb moeten gebruikenAls je per ongeluk een tekstbestand verwijdert, zoals bijvoorbeeld wat email, of het resultaat van een programmeersessie op de late avond, hoeft alles niet verloren te zijn. Als het bestand het ooit naar disk haalde, d.w.z. dat het daar meer dan 30 seconden was, dan kan het zijn dat de inhoud nog steeds op de diskpartitie voorkomt.Je kunt de opdracht grep gebruiken om de ruwe diskpartitie te doorzoeken op de inhoud van het bestand.Ik verwijderde bijvoorbeeld onlangs per ongeluk een deel van m'n email. Dus staakte ik onmiddellijk mijn activiteiten die deze partitie konden wijzigen: in dit geval zag ik gewoon af van het opslaan van mijn bestanden of het uitvoeren van compilaties, enz. Onder andere omstandigheden heb ik me de moeilijkheid op de hals gehaald door het systeem in single user modus te brengen en het bestandssysteem te unmounten.Ik paste toen de opdracht egrep toe op de diskpartitie: in mijn geval bevond het emailbericht zich in /usr/local/home/michael/, dus aan de uitvoer van df, kon ik zien dat dit op /dev/hdb5 was. sputnik3:~ % df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 18621 9759 7901 55% / /dev/hdb3 308852 258443 34458 88% /usr /dev/hdb5 466896 407062 35720 92% /usr/local sputnik3:~ % su Password: [michael@sputnik3 michael]# egrep -50 'ftp.+COL' /dev/hdb5 > /tmp/x Nu ben ik extreem voorzichtig wanneer ik met diskpartities aan de gang ga, dus ik pauzeerde om er zeker van te zijn dat ik de syntax van de opdracht begreep VOORDAT ik de return indrukte. In dit geval bevatte de email het woord 'ftp' gevolgd door wat tekst gevolgd door het woord `COL'. Het bericht bestond uit ongeveer 20 regels, dus gebruikte ik -50 om alle regels rondom de woorden te krijgen. Voorheen gebruikte ik altijd -3000 om er zeker van te zijn dat ik alle regels kreeg van een of andere broncode. Ik stuurde de uitvoer van egrep door naar een andere diskpartitie. Hiermee voorkwam ik dat er over het bericht heengeschreven zou worden waar ik naar aan het zoeken was.Vervolgens gebruikte ik strings om me te helpen de uitvoer te inspecteren. strings /tmp/x | less Zeker weten dat de email zich daarin bevond.Deze methode is niet betrouwbaar; alle of een deel van de schijfruimte kan reeds zijn hergebruikt.Deze truuk is waarschijnlijk alleen bruikbaar op single user systemen. Op multi-user systemen met nogal wat diskactiviteit, kan de ruimte die je hebt vrijgemaakt reeds weer zijn gebruikt. En de meesten van ons kunnen niet zomaar de box vandaan trekken bij onze gebruikers wanneer we ooit een bestand moeten herstellen.Op mijn systeem thuis is deze truuk me in de afgelopen paar jaar bij ongeveer drie gelegenheden van pas gekomen - gewoonlijk wanneer ik per ongeluk wat van het werk van die dag verwijderde. Als waar ik aan werk het overleeft tot een punt waarvan ik het gevoel heb dat ik een belangrijke voortgang hebt geboekt, wordt er op een diskette een backup van gemaakt, dus ik heb deze truuk nog niet zo vaak nodig gehad.