Вопрос Почему dd создает огромный файл, когда я пытаюсь создать образ резервного диска?


Я пытаюсь заставить CUDA работать в моей системе и в процессе возиться с драйверами nvidia, я сломал ubuntu достаточно плохо, что мне пришлось переформатировать мой раздел диска несколько раз. Я уже давно попал в эту палку, и я пытаюсь создать резервную копию моего раздела, когда я установил все свои инструменты и программы и прочее, используя dd (как рекомендовано другом).

Однако, когда я побежал

sudo dd if=/dev/sda4 of=~/backup.img

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

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

sudo dd if=/dev/sda4 of=/media/Ye\ Olde\ Data/ubuntu\ reinstall\ backup/backup.img

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

Что происходит? Разве это / media имеет другие разделы, смонтированные и, таким образом, он обрабатывает другие разделы как часть / dev / sda4? Это то, что dd копирует весь раздел byte-for-byte, игнорируя, какие байты на самом деле имеют файлы на них?

И что бы ни делал, как я могу сделать то, что я пытаюсь сделать, правильно?

О, и вот моя дисковая информация, если это имеет значение:

sudo sfdisk -l /dev/sda

Disk /dev/sda: 62260 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1   *      0+     12-     13-    102400    7  HPFS/NTFS/exFAT
/dev/sda2         12+  14602-  14590- 117187500    7  HPFS/NTFS/exFAT
/dev/sda3      29192+  62260-  33069- 265622493+   5  Extended
/dev/sda4      14602+  29191-  14590- 117193728   83  Linux
/dev/sda5      61228+  62260-   1032-   8287232   82  Linux swap / Solaris
/dev/sda6      29192+  61227   32036- 257329138+   7  HPFS/NTFS/exFAT

1
2018-04-24 00:17


происхождения


Можете ли вы опубликовать вывод mount? - jkt123


ответы:


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

Если вы сжимаете результирующий файл, вы сэкономите много места, однако, учитывая, что пустое пространство будет сжиматься очень хорошо (будьте осторожны, это будет вычислительно очень тяжелый). Вы можете даже сжать выход dd на лету, с чем-то на линии dd if=/dev/sdaX | gzip -c > compressed_file.gz,

действительно важно:

Более того, вы не могу (никогда) dd на живом (смонтированном)   раздел, записанные данные будут полностью противоречивыми и   абсолютно не полезно для резервного копирования. Подумайте об этом: блоки данных   постоянно выделяется, перемещается и удаляется; походит на съемку фотографии   с длительным временем воздействия на движущуюся мишень.

Чтобы скопировать раздел с помощью dd вы должны загрузиться с другого -   живой USB или что угодно.

Что бы я сделал, чтобы решить проблему под рукой (обратите внимание, только общая инструкция, потому что вам нужно знать, что вы делаете)

Первый вариант купить Norton Ghost или изучить варианты с открытым исходным кодом: Partimage а также Clonezilla (никогда не проверял себя).

Второй вариант сделайте это вручную:

  1. создать дополнительный раздел для резервного копирования, вызвать его / dev / sdX (или использовать общий раздел данных, что угодно).

  2. для резервного копирования:

    • загрузка с помощью live usb
    • монтировать реальный корневой раздел в / real
    • установить дополнительный раздел в / extra
    • сделать большой дегт, на линии (cd /real && tar cvf /extra/mybck.tar.gz)
  3. восстановить

    • загрузка с помощью live usb
    • монтировать реальный корневой раздел в / real
    • установить дополнительный раздел в / extra
    • восстановить на линии (cd /real && tar xvpf /extra/mybck.tar.gz), остерегайтесь p возможность сохранения метаданных
    • chroot in / real
    • update grub или загрузчик, который вы используете

Вы можете заменить tar с вашим предпочтительным архиватором, просто убедитесь, что он будет уважать право собственности / режим файлов. rsync стоит изучить.


5
2018-04-24 02:54



Итак, dd, возможно, не самый подходящий инструмент для того, что я хочу сделать? - mavix


DD, вероятно, не подходит для резервного копирования. Как сказал Ремано, он создает прямую копию / dev / sda4 (возможно, для / dev / sda4).

Его ответ наступает.

Проверьте rsync для создания резервных копий.


1
2018-04-24 14:27