Когда я копирую содержимое одного диска, копия занимает меньше места. Почему?

Когда я копирую содержимое одного диска, копия занимает меньше места. Почему?

Я пытаюсь скопировать содержимое одного жесткого диска на другой жесткий диск.

Но после завершения копирования копия занимает меньше места, чем исходные файлы.

Следовательно, не все файлы копируются.

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

Правильно ли это? И если да, то как я могу этого не допустить?

ОС: Windows 8.1 Профессиональная


ИЗВИНИТЕ, Я ИМЕЛ В ВИДУ 700ГБНЕТМБ!!


Сейчас я пробую на Linux и посмотрю, получится ли то же самое.

решение1

Короткий ответ:
Не обязательно. Это может быть только разный размер кластера между устройствами.

Еще несколько слов:
При копировании файла с одного устройства на другое (с жесткого диска на другой) необходимо учитывать даже разные размеры кластеров. Не вдаваясь слишком глубоко взоопарк файловых систем типаздесь достаточно сказать, что раздел организован как тетрадь по арифметике, байты сгруппированы в секторах, аналогично тому, как в тетради можно сказать, что квадраты сгруппированы в страницы. Индекс свободного и используемого пространства (FAT) составляется с учетом только техгруппы. Сектора могут быть свободными или полными,tertium non datur.

Таким образом, файл имеет размер для эффективного использования байтов (если это текстовый файл и содержит только слово "Привет" он будет равен 2 байтам) и размер пространства, используемого на устройстве (если сектор имеет размер 4 КБ, он будет кратен 4 КБ, если на другом устройстве сектор имеет размер 512 байт, он будет кратен 512 КБ).

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

Обычно это уведомляется программой, которую вы используете, с помощью некоторого сообщения об ошибке и кода выхода из ошибки. Например, в Linux вы можете перехватить код выхода, написав в оболочке echo $?. Если он возвращает значение, отличное от 0, это означает ошибку. Если вы не перехватили эти сообщения заранее, вам нужно проверить этоапостериори.

После этого вы скопировали большое количество файлов, которые вы можете проверить,быстро, если количество файлов ивсего эффективныйсовпадений количества байтов. Более эффективная проверка может быть сделана вычислением и сравнениемmd5sumдля каждого файла на обеих копиях. Если это совпадает, все содержимое в порядке. По крайней мере, вы можете проверить разрешение и дату.

Часто бывает удобно полагаться на конкретные инструменты, такие какrsyncдля Linux,robocopyдля Windows или один из многих других доступных инструментов.

Связанный контент