Яка мета втраченої + знайденої папки в Linux та Unix?


644

Існує папка в корені операційних систем Linux і Unix /lost+found/

Навіщо це? За яких обставин я б із цим взаємодіяв? Як я з нею взаємодіяв?


Зверніть увагу, що використовуються лише ext2 (і ext3 і ext4) lost+found. Якщо ви хочете приховати його, будь-ласка, використовуйте іншу файлову систему або монтуйте її в іншому місці, зберігайте все у підкаталозі та посилайте підкаталог на "справжнє" місце, з якого ви використовуєте дані.
Адам Кац

4
@Gilles хтось був добрий, щоб додати його: en.wikipedia.org/wiki/Fsck#Use
Девід Кеннеді

Зверніть увагу, що lost+foundхарактерно для розширеної файлової системи Linux (ext2–4). Унісони, наприклад, FreeBSD зазвичай не мають цього каталогу у своїх файлових системах (UFS, ZFS).
FUZxxl

5
Вибачте, але lost+foundв системах BSD практично вічно. Насправді я щойно перевірив, і він точно був там на 4.3BSD, і, схоже, згадую це набагато раніше. І це, безумовно, сьогодні на FreeBSD.
Bob Eager

@BobEager Дякую за підтвердження. Я також це подумав, але я був готовий прийняти, що, можливо, я згадав неправильно ...
Прифтан

Відповіді:


577

Якщо ви запустите fsckкоманду перевірки та відновлення файлової системи, вона може знайти фрагменти даних, на які ніде не посилається файлова система. Зокрема, fsckможна знайти дані, схожі на повний файл, але не мають імені в системі - inode без відповідного імені файлу. Ці дані все ще використовують простір, але вони недоступні будь-яким звичайним способом.

Якщо ви скажете fsckвідновити файлову систему, вона поверне ці майже видалені файли назад у файли. Справа в тому, що файл мав ім’я та місцезнаходження колись, але ця інформація більше недоступна. Таким чином, fsckзберігається файл у певному каталозі, який називається lost+found(після втраченого та знайденого властивості).

Файли, що з'являються у lost+foundфайлах, як правило, є файлами, які вже були від’єднані (тобто їх ім’я було стерто), але все ще відкриваються деяким процесом (тому дані ще не стиралися), коли система раптово зупинилася (паніка ядра або збою живлення). Якщо це все, що сталося, ці файли все-таки були призначені для видалення, вам не потрібно їх дбати.

Файли можуть також з'являтися, lost+foundоскільки файлова система перебуває в непослідовному стані через помилку програмного забезпечення або обладнання. Якщо це так, ви зможете знайти файли, які були втрачені, але ремонт системи вдалося врятувати. Файли можуть містити або не містити корисних даних, і навіть якщо вони є, вони можуть бути неповними або застарілими; все залежить від того, наскільки пошкоджена файлова система.

У багатьох файлових системах lost+foundкаталог трохи особливий, оскільки він попередньо виділяє трохи місця для fsckдепонування файлів. (Простір не для даних файлів, які fsckзалишаються на місці; це для записів каталогів, які fsckпотрібно скласти.) Якщо ви випадково видалили lost+found, не створюйте їх заново mkdir, використовуйте, mklost+foundякщо вони доступні.


16
Крім того, якщо випадково видалений fsck може відновити його наступного разу, коли файлова система виявиться чистою (що, ймовірно, буде наступним завантаженням).
дероберт

30
Чи є ця папка чимось, що час від часу слід перевіряти та чистити?
TheLQ

9
@TheLQ Тільки якщо ваша файлова система зазнала значної корупції, fsckвона вимагала знаходження файлів та посилання на них lost+found. За 20 років роботи з різними файловими системами я бачив це лише один раз. І це було до того, як мандрівки були нормою.
Олексій

6
Я думаю, це також з'являється, якщо ви відформатуєте свій жорсткий диск (я перейшов з NTFS на ext4 і він з'явився)
puk

6
@puk lost+foundКаталог створюється кожного разу, коли ви створюєте файлову систему ext4 (як і для багатьох інших файлових систем), незалежно від того, чи це робиться як частина встановлення системи чи ні. "Форматування вашого жорсткого диска" - це лише один випадок цього. Що fsckможливо - це можливо додавати туди файли.
Жиль

64

lost+foundКаталог (не програти + Found) являє собою конструкцію , використовується , fsckколи є пошкодження файлової системи (не в апаратний пристрій, але до ФС). Файли, які зазвичай втрачаються через пошкодження каталогу, будуть пов'язані в lost+foundкаталозі файлової системи за номером inode. Деякі з них можуть бути втраченими каталогами або втраченими файлами або навіть втраченими пристроями. Кожна файлова система повинна мати власний lost+foundкаталог, але ви, можливо, дивитесь на систему лише з однією файловою системою. Загалом, ви повинні сподіватися, що каталог порожній; але якщо є корупція, будьте вдячні, що за багатьох умов файли можна відновити після fsckрозміщення їх тут.


4
Однак дійсна точка: вони МОЖУТЬ все-таки стати неприємністю. Наприклад, намагаючись виконати findоперацію на одному або багатьох ext[2|3|4]розділах з облікового запису користувача, який не є адміністратором, ви завжди отримаєте ці непотрібні помилки "відмовлено у дозволі" . Звичайно, є способи обійти такі помилки - але це трохи незручно, оскільки стандарт find . -name '*whatever*'не зробить трюку.
синтаксичний помилок

2
@syntaxerror: Приємно почути, що ви говорите про прикрощі пошуку: `./lost+found ': У дозволі відмовлено . Мене час від часу і клопочуть ...
Йоган Е

1
@syntaxerror причиною того, що я прийшов до цього питання, було саме те, що я робив операцію пошуку і знаходив, що створює Permission deniedпопередження. З огляду на відповідь на це запитання, я знаю, що lost+foundце частина файлової системи, і тому я можу сміливо ігнорувати створене попередження (але хочу, щоб воно не видало попередження).
Тревор Бойд Сміт

1
@JohanE Ти мені кажеш. Однак справжньою причиною, чому я опублікував свій коментар, було те, що ця відповідь намагалася запропонувати нам бути "вдячними" за lost+found. Це було занадто веселим, щоб бути справжнім (я сидів тут із широкою усмішкою), бо смішно кілька разів, коли ми вдячні за це, не можемо конкурувати з тими, коли ми швидше зможемо відіграти "Бегону!" заклинання до цієї неприємної речі ло + fo.
синтаксичний помилок

36

З "Ієрархії файлової системи Linux", розділ / загублений + знайдений " :

Як було пояснено раніше під час огляду FSSTND, Linux завжди повинен пройти належне відключення. Іноді ваша система може вийти з ладу або відключити електроенергію, яка може збити апарат. Так чи інакше, при наступному завантаженні буде здійснена тривала перевірка файлової системи за допомогою fsck. Fsck пройде через систему і спробує відновити будь-які пошкоджені файли, які вона знайде. Результат цієї операції відновлення буде розміщений у цьому каталозі. Відновлені файли, ймовірно, не будуть повноцінними або мають багато сенсу, але завжди є ймовірність відновити щось вартісне. Кожен розділ має власну програму втрачених + знайдених. Якщо ви знайдете там файли, спробуйте повернути їх до їх початкового місця. Якщо ви знайдете щось на зразок розірваного символічного посилання на "файл", вам доведеться перевстановити файл / и з відповідного RPM, оскільки ваша файлова система настільки сильно пошкодилась, що файли були невпізнані. Нижче наведено приклад каталогу / загублений + знайдений. Як бачимо, переважна більшість файлів, що містяться тут, перебувають у фактичних сокетах. Щодо решти інших файлів, вони виявили пошкоджені системні та особисті файли. Ці файли не вдалося відновити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.