Почему Clonezilla быстрее, чем dd?

В повышении можно создать новый раздел подкачки или файл.

Для раздела:

  1. Отформатируйте новый раздел с mkswap /dev/sdx1
  2. Добавьте новый раздел подкачки к/etc/fstab.
  3. Выполненный swapon -a активировать новую подкачку.

Добавить файл подкачки:

  1. Создайте файл. Эта команда создает файл на 1 гигабайт: dd if=/dev/zero of=/swap bs=1M count=1000
  2. Отформатируйте файл подкачки: mkswap /swap
  3. Добавьте новый файл подкачки к/etc/fstab: /swap swap swap defaults 0 0
  4. Выполненный swapon -a активировать новую подкачку.
6
задан 3 April 2013 в 14:43
3 ответа

dd просто читает из блока 0 в блок 99999 и копирует данные.

Clonezilla понимает файловые системы и понимает, когда нечего копировать (потому что это пустое пространство или данные из файла, который были удалены).

Если вы знаете, что нельзя копировать все бесполезные данные, гораздо проще скопировать реальные данные.

Со страницы в Интернете "Для неподдерживаемой файловой системы, секторный -секторное копирование выполняется dd в Clonezilla. "

20
ответ дан 2 December 2019 в 23:57

Ну, это зависит от того, что Clonezilla использует для клонирования.

Он использует разные инструменты в зависимости от типа раздела, взятого с их веб-сайта:

Based on Partclone (default), Partimage (optional), ntfsclone (optional), or dd to image or clone a partition. 

Он будет использовать их в этот порядок обычно для попытки скопировать ваш раздел. dd - это последнее средство, потому что это всего лишь посекторное копирование и не имеет встроенной оптимизации, основанной на типе файловой системы раздела. Например, клонирование раздела ntfs было бы намного быстрее, чем клонирование раздела hfs (по крайней мере, со старой версией clonezilla, давно не использовал ее), потому что не было встроенного инструмента для эффективного копирования hfs +, и он б / у dd.

5
ответ дан 2 December 2019 в 23:57

Clonezilla может работать быстрее dd по ряду причин.

  1. Используемое оборудование
  2. Используемое программное обеспечение (Partclone, partimage, ntfsclone, dd)
  3. Параметры и настройки dd

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

Предполагая, что все является яблоком к яблокам в отношении 1: 1, где CloneZilla использует dd, а кто-то вручную использует dd вместо CloneZilla, используя partclone или подобное, я бы сказал, что это должны быть параметры dd, поскольку это было бы единственная оставшаяся разница при условии, что используемое оборудование и программное обеспечение идентичны.

Одним из параметров является размер блока. Как правило, большие размеры блоков могут копироваться быстрее, но есть критическая точка, и не всегда имеет смысл просто выбирать самый большой размер блока, который вы можете.

dd if=/dev/sda of=/dev/sdb bs=<value>

Как значение BS увеличивает скорость: Действительно ли опция "bs" в "dd" увеличивает скорость?

Оба в этом случае не обязательно будут копировать пустые сектора.Это, вероятно, самая большая проблема в разнице в производительности. Большинство пользователей, вероятно, не прекратят клонирование после того, как будет скопирован конец последнего раздела. Они, вероятно, использовали бы эту основную команду

dd if=/dev/sda of=/dev/sdb

Это не остановится в конце последнего раздела.

Чтобы остановить передачу в конце последнего раздела:

fdisk -l

Затем скопируйте значение в столбце END последнего раздела для исходного диска. Затем установите count равным этому значению.

dd if=/dev/sda of=/dev/sdb count=<'fdisk -l' END_column_last_parition_result> 

Это остановит побайтовое копирование, как только все данные раздела совпадут. Внутри раздела могут быть пустые данные, что еще больше снизит производительность.

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

Обратите внимание, что когда вы это сделаете, вам придется расширить раздел на целевом диске после операции dd, чтобы можно было использовать свободное нераспределенное пространство.

Вы также можете увидеть разницу в производительности из-за ошибок на диске.

Кроме того, параметр "conv=sync" добавляет заполнение, которое увеличивает потребление данных целевым диском. Это также делает диск не «идентичным» источнику.

При копировании с неисправного диска обычно используется conv=sync,noerror. Если этот диск исправен, достаточно либо просто noerror, либо не использовать conv=.

Итак, для плохого диска я бы использовал что-то вроде

dd if=/dev/sda of=/dev/sdb bs=512 count=<value> status=progress conv=sync,noerror

для хорошего

dd if=/dev/sda of=/dev/sdb bs=10M count=<value> status=progress
1
ответ дан 8 January 2021 в 21:49

Теги

Похожие вопросы