Два идентичных диска отличаются по выделенному / свободному месту

218
1ac0

У меня есть два диска с маркировкой T1и T2с ext2файловой системой на них, подключенной через USB-порт к компьютеру.

Это идентичные копии, я регулярно их синхронизирую rsync -ahvt --delete --progress T1/ T2.

Когда я их проверяю find /run/media/jonash/T1/ | wc -lи find /run/media/jonash/T2/ | wc -lрезультат такой же.

Тогда я проверяю с find /run/media/jonash/T1/ -printf "%P\n" | sort > file1и find /run/media/jonash/T2/ -printf "%P\n" | sort | diff file1. В результате структура файловой системы одинакова.

С df -h, результат:

Filesystem Size Used Avail Use% Mounted on ... /dev/sdb1 917G 698G 220G 77% /run/media/jonash/T1 /dev/sdc1 917G 914G 3.0G 100% /run/media/jonash/T2 

Они различаются по свободному / выделенному пространству (см. Столбцы «Использовано» и «Доступно»). Проверка с dumpe2fs /dev/[sdb1|sdc1] | grep 'Block size'идентична на дисках стенда.

Результат tune2fsна дисках (не соответствующие части удалены):

Filesystem volume name: T1 Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file Filesystem flags: signed_directory_hash  Default mount options: user_xattr acl Inode count: 61054976 Block count: 244190638 Reserved block count: 0 Free blocks: 57527854 Free inodes: 60305106 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 965 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Default directory hash: half_md4  Filesystem volume name: T2 Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file Filesystem flags: signed_directory_hash  Default mount options: user_xattr acl Inode count: 61054976 Block count: 244190638 Reserved block count: 0 Free blocks: 765286 Free inodes: 60305106 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 965 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Default directory hash: half_md4 

Кто-то знает, где проблема?

1

1 ответ на вопрос

2
András Korn

My guess is you rsynced without -HS, so that hardlinked files in the original are not hardlinked in the copy, and sparse files in the original are not sparse in the copy.

You can verify the first hypothesis doing something like

diff -u <(find /run/media/jonash/T1/ -type -f links +1) <(find /run/media/jonash/T2/ -type f -links +1)

Finding sparse files is slightly more difficult:

diff -u <(du -hsc /run/media/jonash/T1/*) <(du -hsc /run/media/jonash/T2/*)

Then see which directories show a different size, and drill down till you find files where du -h reports a smaller size than du -h --apparent-size.