размер изображения 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 со следующей командой:

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

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

Это поднимает несколько вопросов в моем уме:

  • Почему образ диска был бы настолько большим?
  • Это собирается равняться размеру раздела?
  • Существует ли способ сохранить образ диска только к размеру фактического пространства используемым?
  • Существует ли лучший инструмент для использования?
4
задан 14 October 2014 в 19:53

3 ответа

/dev/sda1       220G  5.8G  203G   3% /

/dev/sda1 220 ГБ в размере и использовали 5,8 ГБ. Так:

  1. dd делает копию байта для байта, таким образом, общий размер вопросов раздела, не, что находится в разделе.
  2. Да. Это вырастет до 220 ГБ.
  3. можно сжать получающееся изображение с помощью gzip или xz:

    sudo dd if=/dev/sda1 | xz > /tmp/ubuntu.image
    
  4. Зависит от того, что Вы называете лучшим инструментом. Для некоторых задач копия байта для байта необходима (скажите, восстановление данных от сбойного диска). В таких случаях dd + сжатие является самым простым путем. В противном случае рассмотрите что-то как partimage .
5
ответ дан 17 November 2019 в 13:54

Хорошо... у Вас есть хорошие ответы о размере 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 раздел в файловой системе на том же разделе ---, который вызовет:

  1. для заполнения раздела прежде команда будет иметь шанс закончиться (думайте об этом), если сжатие на лету и быть удачным, но

  2. для записи файла с абсолютно непоследовательной копией того раздела; смонтированные разделы изменяются все время в многозадачной операционной системе.

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

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

2
ответ дан 17 November 2019 в 13:54

Это - мое понимание, которое dd делает точный клон диска, включая вакуум. Если Ваш диск составит 220 ГБ, [то 112] сделает копию, которая составляет 220 ГБ, независимо от того, сколько из того пространства используется.

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

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

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

2
ответ дан 17 November 2019 в 13:54

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

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