Що трапиться, якщо я видалю втрачене + знайдене


38

Під час створення деяких файлових систем Linux, таких як ext3, створюється каталог "втрачено + знайдено". Згідно з цим файли будуть розміщені там, якщо файли були пошкоджені внаслідок певного збою системи.

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

Відповіді:


35

fsck відтворить загублений + знайдений каталог, якщо він відсутній.

При запуску більшість дистрибутивів запускають fsck, якщо файлова система виявлена ​​як не відключена. Оскільки fsck створює загублений + знайдений каталог, якщо він відсутній, він створить його тоді і помістить все, що він знайде, у цей каталог.


15

Якщо ви не можете або не хочете запускати fsck, ви можете відтворити lost+foundкаталоги за допомогою mklost+found:

mklost + знайдений попередньо розподіляє дискові блоки в папку загублених + знайдених, так що коли запускається e2fsck (8) для відновлення файлової системи, йому не потрібно виділяти блоки у файловій системі, щоб зберігати велику кількість не пов’язаних файлів. Це гарантує, що e2fsck не доведеться виділяти блоки даних у файловій системі під час відновлення.


У RHEL 6.4 , ні fsckні e2fsckде відтворення це для мене, незалежно від того , якщо каталог не було встановлено чи ні. cd <root-dir-of-the-mount> && mklost+foundзробив це.
Луїс Антолін Кано

7

Попередньо існуючий каталог втрачених + знайдений з достатньо великим розміром, щоб містити велику кількість беззв'язаних файлів, створює менше навантаження на e2fsck для створення каталогу та збільшення його до відповідного розміру.

Це все ще буде намагатися зробити це, але в умовах пошкодженої файлової системи це може бути більш ризикованим.

Дуже старі файли fsck для інших файлових систем на інших платформах не змогли створити / втратити + знайдено, а також не змогли його виростити. Це історія обґрунтування / втраченого + знайденого. Але нинішнє обгрунтування - це просто спростити роботу e2fsck.


4
Справа не в тому, що вони не змогли створити втрачене + знайдене - це погана ідея створювати файли / каталоги у файловій системі, яка вже накручена. Натомість ви просто заздалегідь складіть каталог, який вже є достатньо великим, щоб зберігати записи каталогів усіх об'єднаних утворень, які ви знайдете у розкрученій файловій системі, коли ви намагаєтесь його очистити.
chris

5

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


2
fsck повинен відтворити втрачене + знайдене, якщо потрібно, ні?
Девід Шмітт

2
Дякую, я перевірив код на e2fsck і він дійсно пропонує відтворити його для вас. (Це не гарантується успіхом, хоча --- саме тому попередньо створений програв загублений + знайдеться і корисним.) Акуратний!
Кріс Єстер-Янг

6
@ ChrisJester-Young - Ваша відповідь неправильна. lost+foundце спеціальний каталог. У ньому є попередньо виділені блоки диска, так що інструментам відновлення не потрібно виділяти блоки під час відновлення. Такі інструменти mklost+foundіснують спеціально, оскільки mkdirне створюють їх належним чином. Див linux.die.net/man/8/mklost+found
aggregate1166877

2

e2fsck відтворить загублений + знайдений, а також знищить будь-який файл, який може бути таким самим іменем, щоб переконатися, що він може створити його як каталог.

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


1

Ви можете створити цей каталог просто за допомогою mkdir. Він повинен належати корінь, з групою або корінь, або колесо. Крім цього, в цьому немає нічого особливого. У разі відключення живлення або неправильного відключення при завантаженні системи він повинен автоматично запустити fsck. fsck пройде через систему і спробує відновити будь-які пошкоджені файли, які вона знайде. Будь-які файли, на які він потрапляє, потенційно пошкоджені, будуть переміщені туди.

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

Редагувати: Я не впевнений, чи останній випадок відновить каталог. Я б залишив це в спокої, щоб бути на безпечній стороні. Я не можу придумати жодної причини, щоб видалити його. Нічого поганого не трапиться і без цього.


1
Ви впевнені, що це нормально просто створити mkdir?

Так, розподіл простору не прив’язане до каталогів inode або навіть шляху. Зарезервоване виділення простору - це менше прапор на деякій пам'яті, яка вимагає привілеїв root / ядра та спеціальних дзвінків, для доступу до яких знає fsck, він просто використовує цей простір, копіюючи в цю пам'ять потенційно пошкоджені або зламані файли та створюючи файл з inode, що вказує на нову пам'ять. Операції з файлами будуть нормально працювати на цих файлах, але будь-які зміни, такі як переміщення чи збереження, витягнуть дані із зарезервованої пам'яті.
TrueDuality

1

Крім того, на Debian 6 та Ubuntu 12 LTS cronпакет постачається, /etc/cron.daily/standardякий помічає відсутні lost+foundлокальні каталоги в локальних файлових системах та щодня надсилає нагадування про нього електронною поштою, рекомендуючи використовувати mklost+found.

Однак це було видалено до часу Debian 7 та Ubuntu 14 LTS відповідно, оскільки воно застаріло.

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