[Перевод] Потерян и не найден

cixyxsbe3qkqo9ighctsirgzgoy.png

Салют! В этой статье я попытался разобрать назначение и основные сценарии использования директории lost+found в Linux.

Обзор


Если мы запустим fsck, команду проверки и восстановления файловой системы, она может найти фрагменты данных, на которые нет ссылок нигде в файловой системе. В частности, могут быть обнаружены данные, которые выглядят как полный файл, но не имеют имени в системе — индексный дескриптор без соответствующего имени файла. Они по-прежнему занимают место, но недоступны обычными способами, поэтому в корне файловой системы присутствует специальная директория lost+found, куда помещаются такие файлы.
Таким образом, рассматриваемый каталог служит временным хранилищем для тех редких случаев, когда fsck не может собрать все обратно после повреждения файловой системы.

При каких сценариях файлы могут оказаться там?

В директорию «lost+found», обычно попадают файлы, которые были удалены, но все еще были открыты каким-либо процессом, когда система внезапно остановилась (паника ядра или сбой питания), и поэтому данные еще не были стерты.

Файлы также могут появиться там, если файловая система целиком была повреждена из-за программной или аппаратной ошибки. В этом случае это способ найти данные, которые были потеряны, но их удалось найти в ходе восстановления системы. Они вряд ли будут полными и скорее всего не будут иметь большого смысла, но всегда есть шанс, что будет получено что-то стоящее.

Восстановление данных


Чтобы восстановить потерянные данные, нам нужно заранее запустить fsck. Большинство дистрибутивов Linux выполняют эту операцию при загрузке, если машина не выключается должным образом. В противном случае нам придется запустить утилиту вручную. Например, давайте запустим fsck на заранее отмонтированном /dev/sda3.

fsck /dev/sda3
fsck from util-linux 2.37.2
fsck.fat 4.2 (2021-01-31)
/dev/sda3: 200 files, 38/130811 clusters


Будет выполнена проверка раздела /dev/sda3, а в его корне появится каталог lost+found. Далее смонтируем раздел и перейдём в только что созданную директорию.

mkdir -p /tmp/home
mount /dev/sda3 /tmp/home
cd /tmp/home/lost+found


Файлы потеряли свои исходные имена, поэтому fsck переименовывает их. Мы собираемся изучить их, для этого воспользуемся командой file, которая извлекает метаданные из заголовков.

file *
#4605470:          ASCII text
#4655470:          PNG image data, 943 x 436, 8-bit/color RGBA, non-interlaced
#4610801:          directory
#4613588:          PDF document, version 1.4, 1 pages


Теперь предположим, что есть необходимость восстановить найденный PNG файл. Мы просто получим его имя через awk, а далее скопируем в нужное место:

cp "$(file * | grep PNG | awk '{print $1}' | cut -d':' -f1)" /tmp/home/username/image.png


Теоретически, есть вероятность, что данные повреждены и, следовательно, их труднее восстановить, но существует также большая вероятность того, что целостность восстановленных данных сохранится.

Удаление и пересоздание


Порой содержимое lost+found может занимать существенное количество памяти на диске, в таком случае от него можно избавиться. Мы можем удалить этот каталог на всех разделах с помощью утилиты find. Обратите внимание, что нам нужно убедиться, что все разделы смонтированы и у нас есть root-доступ:

find "-iname" lost+found -type d -exec rm -r "{}" \;


Однако, необходимо чётко понимать, что lost+found не является обыкновенной директорией, т.к. с ней связаны предварительно выделенные блоки (одновременное восстановление данных и внесение изменений в файловую систему утилитой fsck может привести к повреждению данных).
Поэтому для пересоздания lost+found необходимо воспользоваться специальной командой mklost+found.

mklost+found 
mklost+found 1.46.4 (18-Aug-2021)
ls -l
drwx------ 2 xsh xsh 49152 Dec  7 20:46 lost+found


В данной статье мы коротко рассмотрели предназначение, использование каталога lost+found, а также порядок его удаления и создания.

Надеюсь, приведенные материалы показались вам интересными и полезными, благодарю за ваше время и внимание, эффективных скриптов, элегантных решений вам!


Возможно, захочется почитать и это:
b5pjofdoxth14ro-rjsrn7sbmiy.png

© Habrahabr.ru