Что такое lost+found на ext4, можно ли его удалить, почему в нём появились файлы и почему rsync на него ругается

Вопрос из обсуждения. На разделах с данными в корне лежит пустой каталог lost+found, принадлежащий root. Можно ли его удалить, и почему резервное копирование от обычного пользователя выдаёт на нём ошибки доступа?

Что это. Каталог создаётся mkfs на файловых системах семейства ext (и некоторых других). При проверке fsck файлы и каталоги, у которых потерялась связь с деревом каталогов (после сбоя, внезапного выключения, ошибок диска), помещаются туда под именами вроде #12345 (номер inode). Пока сбоев не было, каталог пуст. Участники сошлись во мнении: удалять можно, при следующей проверке fsck пересоздаст (или mklost+found вручную), а для бэкапов правильно исключать: rsync --exclude=/lost+found. На btrfs, xfs, zfs, FAT, NTFS такого каталога нет.

Когда он важен. Появление файлов в lost+found это следствие сбоя файловой системы, и это повод:

  1. Посмотреть журнал: journalctl -k | grep -iE 'ext4|EXT4-fs|I/O error', было ли принудительное выключение или ошибки диска.
  2. Разобрать содержимое: file lost+found/* покажет типы файлов; текстовые и известные форматы можно опознать и вернуть на место; неопознанные удалить после резервной копии.
  3. Проверить диск (smartctl) и, если это виртуальная машина, сообщить поставщику о времени сбоя.

Про права и rsync. Каталог 700 root:root; обычный пользователь не может его прочитать, отсюда Permission denied в отчёте rsync, что портит код возврата и оповещения. Решения: исключение из копирования (правильно), либо запуск резервного копирования от root (нужно только если копируются чужие файлы).

Смежные вопросы, которые возникают в тех же обсуждениях.

  • Каталог появился в корне смонтированного тома, а не в корне файловой системы: значит, точка монтирования сама является корнем другой ФС ext4, всё в порядке.
  • lost+found внутри /home/user: там была отдельная файловая система (или её остатки); если раздел давно объединили, каталог можно удалить.
  • Проверка «на ходу» невозможна: fsck для ext4 запускается на отмонтированной ФС или при загрузке (tune2fs -c/-i для периодичности, fsck.mode=force в параметрах ядра для разового запуска).

Утилита описана в документации Ubuntu.