Использовать DD для клонирования только раздела Linux на внешний USB-накопитель?

Использовать DD для клонирования только раздела Linux на внешний USB-накопитель?

У меня есть внутренний диск на 1 ТБ, на котором два раздела по 1/2 ТБ, один для Windows, а другой для Ubuntu 14.04 LTS. Станция стала в первую очередь станцией Linux, и я больше никогда не загружаюсь в Windows.

Я хотел создать резервную копию образа, поэтому использовал DD для клонирования внутреннего диска на внешний USB-накопитель емкостью 1 ТБ. К сожалению, USB-накопитель, похоже, всего на несколько гигабайт меньше внутреннего диска, и DD завершился с сообщением об ошибке «Недостаточно места на диске». Теперь я вижу что-то странное. Когда я извлек USB-накопитель и снова подключил его, я увидел два раздела по 1/2 ГБ, которые кажутся дубликатами. У них идентичные GUID, и Nautilus показывает идентичные структуры каталогов и содержимое. Я предполагаю, что что-то в неполной копии одного из разделов оставило внешний диск в сломанном состоянии.

Как я могу использовать DD дляпросто клонируйте раздел Linuxна внешний диск? Это все, что мне действительно нужно.

решение1

Поскольку для начала вам необходимо узнать данные о вашем жестком диске, вы можете сделать это, введя в терминале:

sudo fdisk -l

Вы должны получить примерно такой вывод:

Disk /dev/sda: 149,1 GiB, 160041885696 bytes, 312581808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x06bd4abe

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 230055935 230053888 109,7G 83 Linux
/dev/sda2       292970494 312580095  19609602   9,4G  5 Extended
/dev/sda3       230055936 292968447  62912512    30G 83 Linux
/dev/sda5       292970496 312580095  19609600   9,4G 82 Linux swap / Solaris

Partition table entries are not in disk order.

Допустим, /dev/sda3 — это диск, который вы хотите клонировать, тогда вы можете сделать следующее:

dd bs=512 if=/dev/sda of=/dev/sdb1/partition.ddfile seek=230055936 count=$(expr 292968447 - 230055936)

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

решение2

Более простой способ:

  1. sudo fdisk -lкак сказал Videonath. Найдите раздел, который вы хотите клонировать
  2. dd bs=512 if=/dev/<partition-name> of=/<external-media-path>

напримерdd bs=512 if=/dev/sda2 of=/dev/sdb1

Примечание:

  • dd требует, чтобы размер цели был больше или равен размеру источника
  • Резервная копия, созданная таким образом (на уровне раздела), не будет загрузочной.

решение3

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

sudo partclone.ext4 -c -b -s /dev/sdaX -o /dev/sdbY 

сделает то, что вы хотите. -cозначает клон, -bустройство-устройство, -sисточник, -oцель. Кроме того, поскольку вы сделали клон, UUID источника и цели идентичны. Проверьте это с помощью blkid, используйте uuidgenдля генерации нового UUID, а затем sudo tune2fs /dev/sdbY -U <uuidgen-generated new UUID>для его изменения.

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

Прежде чем вы это сделаете, целевое устройство должно быть настроено с fdiskтаким расчетом, чтобы новый раздел был не меньше старого раздела. Если он больше, вы можете впоследствии увеличить клонированный раздел с помощью gpartedдо нового максимального размера.

Связанный контент