Я использую scp
для передачи некоторых больших файлов (> 1 ГБ) с моего ноутбука (Ubuntu 12.04) на мой настольный компьютер (Ubuntu 14.04). Ноутбук имеет беспроводное соединение с моим маршрутизатором, а настольный компьютер имеет кабельное соединение.
Из любопытства я решил проверить переданные файлы с помощью md5-дайджеста: я создал дайджест на исходном компьютере, перенес его на целевой компьютер и использовал его с опцией -c
проверки переданных файлов. К моему удивлению, более чем в 50% случаев я получаю ошибку:
md5sum: WARNING: 1 computed checksum did NOT match
Мой вопрос: так ли часто происходит повреждение данных с scp
? Я бы предположил, что (1) ошибки передачи данных довольно редки, и (2) scp
проверяет свои данные и, возможно, повторно отправляет их в случае ошибки. Что может быть причиной этих ошибок? Мои гипотезы:
- Плохое соединение WLAN, которое часто приводит к повреждению данных во время передачи.
- Плохая память:
md5sum -c
происходит сбой даже при корректных данных, поскольку оперативная память работает неправильно. - Неисправный жесткий диск:
md5sum -c
происходит сбой, поскольку диск содержит ошибку. - Сочетание вышеперечисленных причин.
Обратите внимание, что мой жесткий диск и оперативная память довольно новые: я купил их 5 месяцев назад.
решение1
scp передает файлы через SSH, который выполняет криптографическую проверку подлинности и целостности. Это в основном исключает возможность плохой WLAN.
Плохая память вполне вероятна. Обратите внимание, что плохая память частоначинаетсяплохо, это обычно не от старения. Установка и запуск memtest86/metest86+ либо подтвердит это, либо в основном исключит. (Чтобы исключить это, вам нужно оставить тест запущенным на некоторое время, по крайней мере на ночь). Если он обнаружит ошибку, вам не нужно его продолжать работать, вы можете немедленно остановить его и приступить к замене модулей DIMM.
Также возможно повреждение диска. Аналогично, у вас может быть плохой кабель к диску, или неисправный контроллер и т. д.
Другими возможными причинами являются ошибки файловой системы (маловероятные, если вы используете что-то распространенное, например ext4), вредоносное ПО (к счастью, довольно редкое для Linux), но, скорее всего, это проблема оборудования.