sha256sum/md5sum дает разные результаты для больших файлов (Ext4/ полное шифрование диска)
Вчера я переустановил Ubuntu 13.04 64-bit на своем компьютере (4 ГБ ОЗУ) и впервые решил использовать Full Disk Encryption (все настройки по умолчанию).
Сегодня во время выполнения резервного копирования мой компьютер дважды зависал.
Теперь я продолжал работать над своими резервными копиями, и при проверке хеша моей резервной копии я обнаружил, что sha256sum показал неправильный результат для большого файла.
Я пролистал /var/log/syslog и не обнаружил никаких ошибок, и утилита Disk также сообщает, что с диском все в порядке.
Я попытался воспроизвести эту ошибку, и для маленьких файлов у меня не было этой проблемы, но для больших файлов я делаю:
$ dd if=/dev/zero of=zeroes bs=1M count=4000 && sha256sum zeroes && sha256sum zeroes
4000+0 records in
4000+0 records out
4194304000 bytes (4,2 GB) copied, 54,0345 s, 77,6 MB/s
ad6637bd22568145039a053da5cbf4c31d3eda5ef95c29646fa66b0cacd15a8c zeroes
8ea0d0c9ad97de182335e98045a1f197456ceee782fa6e801fd3e68bea4d35d3 zeroes
$ md5sum zeroes && md5sum zeroes
8097877e1c991721dae7ffe228ae2f5a zeroes
fbd1e7fcd3861446310c87abf72066bf zeroes
Это действительно плохо, если я не могу полагаться на какие-либо свои данные, поэтому я был бы очень признателен, если бы кто-нибудь помог мне выяснить, в чем может быть проблема.
2 ответа
Вы смотрите на аппаратную проблему здесь. Памяти в потребительском оборудовании не хватает проверок целостности (ECC), поэтому ошибки в памяти остаются в основном незамеченными на системном уровне. Как вы заметили, вы также видели сбои, и этого следует ожидать, если память неисправна.
Запустив memtest в своей системе, вы можете убедиться в этом. Memtest с Ubuntu 12.04 концертный компакт-диск
Теперь вам также придется проверять все резервные копии, когда ввод / вывод проходит через память, вероятно, что резервные копии, сделанные с этой неисправной оперативной памятью, также будут повреждены. Обратите внимание, что это может быть слегка поврежден и его трудно обнаружить.
Красиво нашел:D
Воспроизведение не удалось в моей среде. (конечно)
У меня есть 4G RAM, но у меня coreutils[1] версии 8.13 (ваша 8.20), и мой диск НЕ зашифрован.
Я предполагаю, что эта проблема не существовала до 13.04, потому что такая проблема не остается незамеченной. Поэтому я посмотрел журнал изменений: https://web.archive.org/web/20140618230346/http://changelogs.ubuntu.com/changelogs/pool/main/c/coreutils/coreutils_8.20-3ubuntu5/changelog
Затем я увидел патч, который может быть связан с этой проблемой:
coreutils (8.13-3.2ubuntu6) raring; Актуальность = низкий
Backport upstream patch, чтобы избежать повреждения данных при чтении свободной памяти в cp / mv / install при работе с очень фрагментированным и разреженным входным файлом в некоторых файловых системах (LP: #1073514). * Build-зависит от valgrind, чтобы иметь возможность запустить тест для вышеуказанного исправления.
Исправьте 99_sort_-u_data_loss.dpatch, чтобы добавленный тест действительно запускался.
Можете ли вы протестировать то же самое с версией 8.13 coreutils? (Если у меня будет время, я сам это проверю)
На всякий случай, точно ли вы зашифровали свой компьютер?
Если вы хотите продолжить изучение этой проблемы, то журнал изменений очень полезен. Также может быть, что другой патч что-то сломал.
[1]: md5sum и sha256sum из пакета GNU coreutils