dd размер изображения - он равен размеру раздела?

Я использую dd для создания образа загрузочного раздела на Ubuntu 14.04. Это мой первый раз.

При проверке использования на моем диске я использовал df -h. Вы увидите, что мой раздел /dev/sda1 имеет размер 5.8G ...

bash$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       220G  5.8G  203G   3% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            3.9G  4.0K  3.9G   1% /dev
tmpfs           797M  976K  796M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.9G   30M  3.9G   1% /run/shm
none            100M   28K  100M   1% /run/user
/dev/sda5       239G   32K  239G   1% /windows

Я попытался создать изображение и сохранить его в /tmp с помощью следующей команды:

[ f2]

Он начал создавать образ в моем директоре /tmp, но, когда я проверял его ход, изображение продолжало расти до 30G, прежде чем я его отменил.

Это вызывает несколько вопросов на мой взгляд:

Почему образ диска был бы таким большим? Он будет равняться размеру раздела? Есть ли способ сохранить образ диска только размером фактического пространства? Есть ли лучший инструмент для использования?
1
задан 14 October 2014 в 20:53

2 ответа

Ну ... у вас есть хорошие ответы о размере файла dd (который, если несжатый, имеет одинаковый размер раздела).

Но я вижу здесь еще одну проблему: у вас есть:

bash$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       220G  5.8G  203G   3% /
[...]

... и /tmp не монтируется нигде, поэтому он находится на /dev/sda1 и /dev/sda1 установлен.

Итак, если вы это сделаете:

 sudo dd if=/dev/sda1 of=/tmp/ubuntu.image 

вы копируете изображение раздела /dev/sda1 в файловой системе на том же самом разделе, что приведет к:

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

Как правило, вы dd разделяете только тогда, когда он не установлен.

Кроме того, учитывая, что раздел является разделом / вашей системы и что вы выполняете команду с правами root, вы полностью заполняете свой корневой раздел (корневое зарезервированное пространство будет использовано) и вы рискуете загрузиться с помощью аварийного диска, чтобы восстановить беспорядок ...

2
ответ дан 24 May 2018 в 02:53

Насколько я понимаю, dd делает точный клон диска, включая пустое пространство. Если ваш диск составляет 220 ГБ, dd сделает копию, которая составляет 220 ГБ, независимо от того, какая часть этого пространства используется.

Этот ответ на ServerFault рекомендует использовать канал через gzip, который должен быть довольно эффективным способ сжимать неиспользуемое пространство.

dd if=/dev/sda1 | gzip -c  > /tmp/ubuntu.image

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

1
ответ дан 24 May 2018 в 02:53
  • 1
    Отличный ответ. Благодарю. Хотел бы я согласиться с обоими из этих ответов ... – andrewniesen 14 October 2014 в 21:28

Другие вопросы по тегам:

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