Co się stanie, jeśli usunę zgubiony + znaleziony

38

Podczas tworzenia niektórych systemów plików Linux, takich jak ext3, tworzony jest katalog „lost + found”. Zgodnie z tym pliki zostaną tam umieszczone, jeśli zostaną uszkodzone w wyniku awarii systemu.

Co się stanie, jeśli ten katalog zostanie usunięty, a system ulegnie awarii. Jeśli folder zostanie usunięty, mogę po prostu utworzyć nowy katalog z mkdir lost + found lub czy istnieją atrybuty, które można ustawić tylko podczas tworzenia systemu plików.

Zoredache
źródło

Odpowiedzi:

35

fsck odtworzy katalog lost + found, jeśli go brakuje.

Podczas uruchamiania większość dystrybucji uruchamia fsck, jeśli system plików zostanie wykryty jako niezmontowany. Ponieważ fsck tworzy utracony + znaleziony katalog, jeśli go brakuje, utworzy go wtedy i umieści wszystko, co znajdzie w tym katalogu.

Dave Cheney
źródło
15

Jeśli nie możesz lub nie chcesz uruchomić fsck, możesz ponownie utworzyć lost+foundkatalogi za pomocą mklost+found:

mklost + found wstępnie przydziela bloki dyskowe do katalogu lost + found, dzięki czemu podczas uruchamiania e2fsck (8) w celu odzyskania systemu plików, nie trzeba przydzielać bloków w systemie plików, aby przechowywać dużą liczbę niepowiązanych plików. To gwarantuje, że e2fsck nie będzie musiał przydzielać bloków danych w systemie plików podczas odzyskiwania.

Andrzej
źródło
W RHEL 6.4 ani w fsckżadnym innym miejscu nie jest e2fsckto dla mnie tworzone, bez względu na to, czy katalog został zamontowany czy nie. cd <root-dir-of-the-mount> && mklost+foundzrobił to
Luis Antolín Cano,
7

Istniejący katalog lost + found o wystarczająco dużym rozmiarze, aby pomieścić dużą liczbę niepowiązanych plików, stanowi mniejsze obciążenie dla e2fsck w celu utworzenia katalogu i powiększenia go do odpowiedniego rozmiaru.

Nadal będzie próbował to zrobić, ale w obliczu uszkodzonego systemu plików może być bardziej ryzykowne.

Bardzo stare fsck dla innych systemów plików na innych platformach nie były w stanie utworzyć / zagubić + znaleźć, ani nie były w stanie go rozwinąć. Oto historia uzasadnienia / lost + found. Jednak obecnym uzasadnieniem jest po prostu ułatwienie pracy e2fsck.

Carlito
źródło
4
Nie chodzi o to, że nie udało im się utworzyć zgubionego + znalezionego - jest to zły pomysł, aby tworzyć pliki / katalogi w systemie plików, który jest już zepsuty. Zamiast tego po prostu wstępnie skompiluj katalog, który jest już wystarczająco duży, aby przechowywać wpisy w katalogu wszystkich zepsutych i-węzłów, które znajdziesz w zepsutym systemie plików, gdy próbujesz go wyczyścić.
Chris
5

Jeśli nie masz lost+found, e2fsck(nie sprawdziłem kodu do innych fsckimplementacji) zaoferuje Ci utworzenie go. Ale jeśli chcesz, możesz też odtworzyć go samodzielnie; w tym katalogu nie ma nic szczególnego (przynajmniej nie po sprawdzeniu kodu).

Chris Jester-Young
źródło
2
fsck powinien odtworzyć utracone + znalezione w razie potrzeby, nie?
David Schmitt
2
Dzięki, sprawdziłem kod e2fsck i rzeczywiście oferuje on odtworzenie go dla ciebie. (Nie ma gwarancji, że odniesie sukces - dlatego też użyteczne jest wcześniej utworzone narzędzie Lost + Found).
Chris Jester-Young
6
@ ChrisJester-Young - Twoja odpowiedź jest niepoprawna. lost+foundto specjalny katalog. Ma wstępnie przydzielone bloki dysku, dzięki czemu narzędzia odzyskiwania nie muszą przydzielać bloków podczas odzyskiwania. Narzędzia takie mklost+foundistnieją specjalnie, ponieważ mkdirnie utworzą go poprawnie. Zobacz linux.die.net/man/8/mklost+found
aggregate1166877
2

e2fsck odtworzy utracone + znalezione, a także zniszczy każdy plik, który może być w drodze o tej samej nazwie, aby upewnić się, że można go utworzyć jako katalog.

Zauważ, że wiele starszych systemów plików uniksowych wymagało dołączenia metody lost + found do i-węzła nr 2, stąd też potrzeba odtworzenia systemu plików w większości przypadków w przypadku zagubienia katalogu. e2fsck po prostu wyszukuje dowolny darmowy i-węzeł, najwyraźniej nie potrzebujący specjalnie i-węzła 2, co sprawia, że ​​odzyskiwanie jest znacznie prostsze niż w dawnych czasach.

Alex North-Keys
źródło
1

Możesz utworzyć ten katalog za pomocą mkdir. Powinien być własnością root, z grupą root lub wheel. Poza tym nie ma w tym nic specjalnego. W przypadku awarii zasilania lub nieprawidłowego zamknięcia systemu podczas uruchamiania systemu powinien on automatycznie uruchomić program fsck. fsck przejdzie przez system i spróbuje odzyskać wszystkie znalezione uszkodzone pliki. Wszelkie napotkane pliki, które mogą zostać uszkodzone, zostaną tam przeniesione.

Innym przypadkiem przenoszenia plików jest sytuacja, gdy fsck znajdzie plik, którego nadrzędnego węzła brakuje. Dzieje się tak zwykle w przypadku uszkodzenia bloku na dysku w określonej lokalizacji, w której przechowywany jest i-węzeł folderu. Ponownie przypisze i-węzeł nadrzędny do folderu lost + found.

Edycja: Nie jestem pewien, czy ten ostatni przypadek odtworzy katalog. Zostawiłbym to w spokoju, aby być po bezpiecznej stronie. Nie mogę wymyślić żadnego powodu, aby go usunąć. Bez tego nie wydarzy się nic złego.

TrueDuality
źródło
1
Czy na pewno możesz po prostu tworzyć mkdir?
Tak, alokacja przestrzeni nie jest powiązana z i-węzłem katalogów ani nawet ścieżką. Przydział zarezerwowanego miejsca jest mniejszą flagą w pamięci, która wymaga uprawnień roota / jądra i specjalnych wywołań dostępu, o których fsck jest świadomy, po prostu wykorzystuje to miejsce, kopiując potencjalnie uszkodzone lub uszkodzone pliki do tej pamięci i tworząc plik z i-węzłem wskazującym na nową pamięć. Operacje na plikach będą działały normalnie na tych plikach, ale wszelkie zmiany, takie jak przenoszenie lub zapisywanie, spowodują usunięcie danych z zarezerwowanej pamięci.
TrueDuality
1

Ponadto w systemach Debian 6 i Ubuntu 12 LTS crondostarczono pakiet, /etc/cron.daily/standardktóry zauważa brakujące lost+foundkatalogi w lokalnych systemach plików i wysyła codzienne przypomnienia o tym pocztą e-mail, zalecając użycie mklost+found.

Zostało to jednak usunięte do czasu odpowiednio Debiana 7 i Ubuntu 14 LTS, ponieważ stało się przestarzałe.

Josip Rodin
źródło