1

Я хочу сделать дедупликацию старых файлов, заменив дубликаты жесткими ссылками.

Чтобы свести к минимуму потерю метаданных, я хочу установить атрибуты записи каталога каждой новой жесткой ссылки на атрибуты дубликата, который он заменяет, но не изменять атрибуты инода inode, который получает новые ссылки.

Какие свойства я должен установить, а не установить?

В идеале я хотел бы видеть таблицу, показывающую, где находится как можно больше файловых систем. Мне особенно интересны ext3, ext4, HFS+, XFS и Btrfs.

1 ответ1

1

То, что вы просите, невозможно ни в одной файловой системе, о которой я знаю, из-за того, как они реализованы, как описано здесь. И я не понимаю, почему вы будете беспокоиться о метаданных, для начала?

Во-первых, единственными данными в записи каталога являются имя файла и номер индекса.

Во-вторых, создается жесткая ссылка, когда вы создаете два или более имен файлов с одинаковым номером инода.

Inode хранит все остальное, такие как atime и mtime, и другие метаданные, включая "указатели" на блоки данных файла.

Если у вас есть два файла с одинаковым содержимым, но иноды отличаются, большинство метаданных в инодах будут разными, например, упомянутые atime и mtime будут разными, как и все указатели блоков данных.

Чтобы использовать жесткую ссылку для сокращения использования хранилища, вы должны удалить один или другой дублированный файл, который также "закроет" индекс, потеряв все метаданные. Затем вы создаете ссылку на оставшийся существующий файл, используя имя и местоположение каталога только что удаленного файла.

"Новая" ссылка файла будет иметь все тот же инф.узлы информации , как тот , который вы только что связаны с. Единственными отличиями будут расположение в иерархии каталогов и используемое имя, которые хранятся в записи каталога, а не в inode.

Все это обрабатывается с помощью системных вызовов, используемых для создания файлов, ссылок и каталогов, и не может быть напрямую изменено любым пользователем или программным обеспечением, включая «root». Вы можете прочитать его и сохранить данные в отдельном файле, но простое сопоставление иерархии каталогов будет потеряно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .