Когда разбирался с файловыми системами, увидел возможность EXT4, про которую раньше не знал.
Выглядит это примерно так. Работает даже для примонтированной системы. Но для надёжности, конечно, лучше отмонтировать, если есть возможность:
# e2image -rf /dev/sda1 fs_raw.img
# mkdir -p /mnt/fs_metadata
# mount -t ext4 -o ro,noload fs_raw.img /mnt/fs_metadata
В данном случае я сделал образ метаданных корневого раздела диска и примонтировал его в /mnt/fs_metadata.
На практике это может быть полезным для сравнения больших разнесённых хранилищ файлов. Например, можно снять дамп метаданных, перенести его на другой сервер, там смонтировать и очень быстро найти различия с помощью того же rsync. По сети такое сравнение для больших хранилищ может длиться очень долго. А через такой дамп быстрее в разы.
Выглядит это примерно так:
# rsync -ani --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/tmp --exclude=/mnt / /mnt/fs_metadata/
В данном случае --exclude используются, потому что я сравниваю корень. Оставил их для примера, если нужно будет тоже сделать какие-то исключения. На выходе получите листинг изменённых файлов, где будет указан тип файла
f / d / l (файл / директория / симлинк) и чем различаются: s - размер, p - права, o - владелец и т.д. По этим меткам, соответственно, можно грепнуть и вывести только нужные различия.
#linux