Widziałem kilka postów na temat odzyskiwania usuniętych plików, ale ta sytuacja jest inna. Moja żona miała plik o nazwie Journal.odt, w którym przechowywała wiele ważnych danych osobowych, takich jak specjalne wspomnienia o naszych dzieciach. Innego dnia, gdy próbowała otworzyć go w OpenOffice, narzekał na format. Kazałem jej uderzyć anulować i wycofać się. Kiedy I cat
plik jest całkowicie pusty. ls
mówi, że plik ma 0 bajtów.
Gdyby przypadkowo wybrała cały tekst w pliku, nacisnęła backspace i zapisała go, w pliku nadal byłyby meta informacje OpenOffice.
Natychmiast wyłączam jej laptop, aby zapobiec wprowadzaniu jakichkolwiek zmian na dysku, dopóki nie wymyślę czegoś do zrobienia.
W przeszłości robiłem kilka skomplikowanych rzeczy, takich jak dd
odzyskiwanie surowego tekstu z dysku, ale nie mam pojęcia, co tutaj zrobić. Ponieważ pliki ODT nie są zwykłym tekstem, nie mogę po prostu przesłać całego dysku przez grep.
Wszelkie sugestie będą mile widziane.
Również jeśli ktoś ma wgląd w to, co mogło pójść nie tak, chętnie to usłyszę.
Dzięki
źródło
df -h
Ctrl+Z
nic by nie zrobił, ponieważ plik nie został zapisany tak jak OO. @ Jacobwalker0814 Pliki ODT są plikami zip, więc narzędzia do odzyskiwania, takie jak testdisk, mają szansę je znaleźć; ale nie ma gwarancji, a nawet jeśli dane nadal tam są, być może będziesz musiał przebrnąć przez wiele innych plików zip. A na przyszłość, wykonaj kopię zapasową!Odpowiedzi:
Jeśli używasz systemu plików ext3, spróbuj wykonać HOWTO Carlo Wooda
W kilku słowach
Ze źródła:
„Rozdział Ręczny przykład odzyskiwania
W poniższym przykładzie ręcznie odzyskamy mały plik. Podano tylko częściowe dane wyjściowe, aby zaoszczędzić miejsce i uczynić przykład bardziej czytelnym.
Używając ext3grep $ IMAGE --ls --inode znajdujemy nazwę pliku, który chcemy odzyskać:
Oczywiście, i-węzeł 309631 jest usuwany i nie mamy numerów bloków dla tego pliku:
Dlatego postaramy się poszukać starszej kopii w czasopiśmie. Najpierw znajdujemy blok systemu plików zawierający ten i-węzeł:
$ ext3grep $ IMAGE --inode-to-block 309631 | grep rezyduje Inode 309631 rezyduje w bloku 622598 z przesunięciem 0xf00.
Następnie znajdujemy wszystkie deskryptory dziennika odnoszące się do bloku 622598:
Oznacza to, że transakcja o numerze sekwencji 4381294 ma kopię bloku 622598 w bloku 26582 i tak dalej. Największy numer sekwencji na dole powinien być ostatnimi danymi zapisanymi na dysku, a zatem blok 8931 powinien być taki sam jak bieżący blok 622598. Aby znaleźć ostatnią nieusuniętą kopię, należy zacząć od dołu i pracować w górę.
Jeśli spróbujesz wydrukować taki blok, ext3grep rozpozna, że jest to blok z tabeli i-węzłów i wydrukuje zawartość wszystkich 32 i-węzłów w nim. Chcemy jednak zobaczyć i-węzeł 309631; więc używamy smart grep:
Bloki bezpośrednie:
Jest to rzeczywiście to samo, co widzieliśmy w bloku 622598. Następnie patrzymy na mniejsze numery sekwencji, aż znajdziemy jeden z czasem usuwania 0. Pierwszym, który znajdujemy (od dołu do góry) jest blok 6073:
Powyższe jest zautomatyzowane i można to zrobić znacznie szybciej dzięki opcji wiersza poleceń --show-journal-inodes. Ta opcja znajdzie blok, do którego należy i-węzeł, a następnie znajdzie wszystkie kopie tego bloku w dzienniku, a następnie drukuje tylko żądane i-węzły z każdego z tych bloków (z których każdy zawiera 32 i-węzły, jak wiadomo), eliminując duplikaty :
Plik jest naprawdę mały: tylko jeden blok. Kopiujemy ten blok za pomocą dd, jak pokazano wcześniej:
a następnie edytuj plik, aby usunąć końcowe zera, lub skopiuj pierwsze 40 bajtów (podany rozmiar pliku):
Odzyskany!"
źródło
Wypróbuj testdisk i photorec , ale rozumiem, że twoje pisanie jest prawdopodobnie trudnym sposobem na poznanie wartości regularnych kopii zapasowych. Możesz także chcieć uruchomić komputer z dysku CD, aby zapobiec dalszej zmianie dysku twardego. Osobiście podoba mi się w tym celu System Rescue Disk , ale jest on w dużej mierze oparty na linii poleceń.
źródło
Użyj Caine, specjalnej dystrybucji linuksa dla cyfrowej medycyny sądowej. To mnóstwo narzędzi do odzyskiwania plików i dysku twardego.
źródło