
У меня есть внутренний диск на 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
Более простой способ:
sudo fdisk -l
как сказал Videonath. Найдите раздел, который вы хотите клонировать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
до нового максимального размера.