Существует несколько возможных причин, по которым скопированное дерево каталогов может занять больше места в месте назначения, чем в исходном. Большинство файловых систем, включая NTFS, поддерживают следующие функции, которые могут способствовать этому.
Редактировать: я только что увидел, что вы пытаетесь использовать cp
для копирования, а не Windows Explorer. Я не уверен, как cp
и ntfs-3g
ведут себя по отношению к этим элементам. Тем не менее, продолжайте читать, потому что есть вторая часть ответа.
- символические ссылки / жесткие ссылки: Файловые системы могут создавать облегченную "копию" файла, которая вместо того, чтобы быть полной копией исходного файла, вместо этого просто указывает на исходный файл (то есть изменения, внесенные в одну "копию", применяются к другой), Я считаю, что Windows также использует эту функцию, например, в папке WinSXS. Когда вы пытаетесь скопировать символическую ссылку / жесткую ссылку с помощью проводника Windows, она не просто скопирует облегченную символическую ссылку / жесткую ссылку. Вместо этого он предоставит вам полную копию оригинального файла. Например, допустим, у вас есть файл и символическая ссылка на этот файл, и вы копируете их обоих в новое место. Затем вы получите две копии исходного файла вместо одной, что займет в два раза больше места, чем было первоначально использовано.
- разреженные файлы: NTFS позволяет людям экономить место на файлах, которые содержат много фрагментов, которые имеют нулевые значения. Вместо того, чтобы сохранять весь файл, файловой системе может быть предложено сохранять только порции, отличные от нуля. При копировании разреженного файла с помощью проводника Windows результирующая копия больше не будет разреженной, поэтому все фрагменты 0 в файле теперь фактически будут занимать пространство, увеличивая размер копии.
- Сжатие: NTFS позволяет людям сжимать файлы для экономии места. Когда файл копируется с помощью проводника Windows, результирующая копия не будет сжиматься, если каталог, в который он копируется, не является сжатым каталогом. См. Эту страницу справки Microsoft для деталей.
Если вы лично не используете эти функции широко, маловероятно, что любая из этих вещей приведет к тому, что ваша копия будет занимать так много места. Вы можете выяснить, откуда берется дополнительное пространство, запустив утилиту использования дискового пространства, такую как WinDirStat, как для исходной, так и (неполной) копии, чтобы увидеть, какие папки занимают больше места в копии.
Однако, если вам действительно нужен полностью используемый образ Windows, который вы можете восстановить, я бы не рекомендовал использовать такую утилиту, как cp
поскольку я не уверен, что она будет правильно копировать метаданные (например, списки управления доступом Windows). Вместо этого я бы порекомендовал сделать копию на основе изображений, как предложил AFH. Если вы хотите клонировать диск, а не создавать его образ, вы должны следовать по существу тем же инструкциям с небольшими изменениями, которые будут упомянуты в конце.
- Загрузиться в Linux. (Я полагаю, вы сказали, что используете Debian.)
- Определите путь к жесткому диску, для которого вы хотите создать резервную копию. Он должен начинаться с
/dev/
. Я рекомендую создать резервную копию всего жесткого диска, а не просто раздела. Мы будем ссылаться на это как ниже.
- Смонтируйте жесткий диск, на который вы хотите создать резервную копию, и найдите путь к точке монтирования. Мы будем ссылаться на это как ниже.
- Запустите
dd if=<path to source> of=<path to destination mount point>/mybackup.bak
- Подождите от 3 часов до 1,5 дней для его завершения. (Скорость, вероятно, будет между 10 Мбит / с и 100 Мбит / с.) Если вашим источником или местом назначения является внешний накопитель USB 3.0, вы можете быть удивлены, заметив, что скорость копирования намного ниже, чем в Windows. Причина в том, что, хотя Linux должен поддерживать UASP, поддержка не всегда включается, когда она должна быть. (По крайней мере, это был мой опыт.)
- Если вам нужно восстановить резервную копию, запустите
dd if=<path to destination mount point>/mybackup.bak of=<path to source>
Если вы хотите клонировать диск, а не создавать образ, вы должны заменить путь к тому диску, на который хотите скопировать. (Должно начинаться с /dev/
.)
Редактировать: Как указывает gronostaj, использование параметра bs=<size>
с dd
может ускорить процесс. Однако лучшее значение для использования зависит от вашей системы. Смотрите этот ответ для деталей.