Linux clone disk to smaller

Disk cloning in Linux using dd command

The dd command utility is a simple yet powerful and useful command available in Unix and Linux systems which is used to convert and copy files. Unix like systems treat all devices as files and these device files are located in the /dev directory in your system. So typically your hard disk drive is a file in the /dev directory with the prefix of hd or sd (depending on IDE or SCSI driver). This concept of device as files makes dd a perfect candidate for backup and restore of disk images or cloning some partitions or the entire disk.

This article shows you some examples of how to use the dd command to backup or clone drive partitions and entire drives.

You can use the fdisk command or check the /proc/partitions to view all the disk partitions in your system.

From the above output we can deduce that you have hard disks on your system and their device file names are sda and sdb. There are two partitions in sda which are sda1 and sda2 and we also know that sda1 is a boot partition.

How to clone a partition from one disk to another

The following are the steps to create a clone of a partition from one disk to another disk, lets say for example you want to clone sda1 partition to sdb1 . In this case sda is your source disk and sdb is the destination disk.

Step 1: Create a new partition in the destination disk if it does not already exist. You can use the fdisk command to create the new partition.

Step 2: Run the dd command.

  • conv=sync,noerror tells dd command to continue copying after read errors and fill input block with nulls in case partial records.
  • status=progress shows progress of the copy.
  • bs=64M set the block size to copy at a time. Adjust this value could improve the copying speed

How to clone an entire disk

To clone an entire disk, say for example sda to sdb , run:

When you clone a entire disk, the destination disk will get all the partitions that are on the source disk.

How to create a disk image

Before you create a disk image backup, make sure no partitions on that disk are mounted and run the following command

where sdb is the disk file name and /path/to/backup.img is the path and filename of the backup image.

Compressed disk image

You could also compress the backup image with gzip as shown in the example below

Send disk image to remote system

You could send the backup image to a remote machine using ssh as in the below example.

Split the disk image by size

You can split the disk image in to smaller pieces of any size that you specify by passing the dd output through split command.

The above command splits the backup image file to smaller files of size 50MB or less. A two letter suffix will be added to the files. The resulting files will have names backup.img.gz.aa, backup.img.gz.ab, backup.img.gz.ac.

To join the split files into a single image file, you run the command

Restoring disk image

The below command restores the disk sdb from the image file backup.img .

To restore from a compressed backup image, use the gunzip command with dd

To restore from a backup image that is compressed and split, run:

Источник

Как клонировать на меньший жесткий диск?

Как клонировать жесткий диск на диск меньшего размера.

  1. Clonezilla великолепна, но не поддерживает такую ​​функциональность.
  2. Также dd и PartImage не поддерживают это требование.
  3. rsync не будет копировать MBR, поскольку MBR не является файлом.
Читайте также:  What are the different mac os

Мне нужно клонировать жесткий диск, чтобы не делать резервную копию, поэтому rsync это не приемлемый ответ.

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

Однако, если файлы, находящиеся в более крупном разделе, также поместятся в меньшем разделе, вы можете использовать их rsync для копирования. Точные параметры зависят от вашего конкретного случая использования, но для простого копирования всех файлов необходимо выполнить следующее:

Изменить: еще раз: вы не можете клонировать больший раздел на меньший раздел . (Но продолжайте читать, ваша проблема может быть решена.)

Причина проста: ваш исходный раздел больше, чем целевой раздел. Что вы ожидаете? Должны ли некоторые блоки просто быть отброшены? Какие? А откуда dd знать? Конечно, вы можете использовать dd «s bs= и count= опции для копирования только первый так-так много блоков из исходного раздела таким образом, что она помещается на целевом разделе, но вы будете в конечном итоге с разбитой перегородкой. Это, конечно, не то, что вы хотите.

Так, так как вы не можете клонировать раздел большего размера на меньший раздел, единственное , что вы можете сделать , это первый уменьшить размер раздела исходного размера меньше или равна вашей целевой раздел с чем — то вроде gparted что осведомлен о особенности файловой системы, так что вы не потеряете данные. И только тогда вы можете использовать dd для клонирования раздела. В идеале новый размер исходного раздела должен быть равен размеру вашего целевого раздела (а не только меньшего или равного ), иначе у вас останется некоторое нераспределенное пространство на целевом разделе после клонирования.

Также обратите внимание, что вы не должны просто копировать MBR большего диска в MBR меньшего диска (или наоборот, в этом отношении). MBR, который имеет размер 512 байт и является первым разделом вашего жесткого диска, содержит информацию о расположении жесткого диска:

  • 446 байт — Bootstrap.
  • 64 байта — таблица разделов.
  • 2 байта — подпись.

(Обратите внимание, что 446+64+2=512 .)

Если вы настаиваете на клонировании MBR, то клонируйте только первые 446 байтов следующим образом:

. заменяя /dev/source и /dev/target на имена устройств исходного и целевого жестких дисков, например, /dev/sda и /dev/sdb , соответственно. ( Более подробная информация доступна здесь. )

Тем не менее, правильный способ сделать это будет сделать чистую переустановку Grub (или все, что у вас есть на MBR) на новом жестком диске.

Подводя итог, если вы хотите клонировать больший диск на меньший диск, выполните следующие действия:

Разместите таблицу разделов на целевом диске с таким количеством разделов, как на исходном диске. Должно быть однозначное соответствие между разделами на исходном диске и разделами на целевом диске, за исключением того, что (некоторые из) разделов на целевом диске могут быть меньше, чем их соответствующие разделы на исходном диске. Используйте инструмент, такой как fdisk или cfdisk для этого.

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

Для каждого раздела на исходном диске введите команду

. для клонирования раздела /dev/sdaX с исходного диска в соответствующий раздел /dev/sdbY на целевом диске (конечно, замените имена устройств соответственно).

Источник

How to clone partitions from larger disk to smaller disk

I have a disk with 1000gb and

7partitions that take about 210 GB, and I’m trying to clone those partitions to 240 GB disk. I’ve tried doing it with clonezilla boot up USB. Using dd if=/dev/sdc of=/dev/sdb bs=512 count=1 it says that it creates the partition on target sdb disk, so I turn it off and boot up again, and the partitions aren’t there. Any ideas how to make it work?

2 Answers 2

Generally you cannot clone from a bigger drive to a smaller drive.

But there are workarounds.

You can shrink (and maybe move) the partitions on the bigger drive, so that they all reside within the limits of the smaller drive (with a small amount of drive space reserved for a backup partition table at the tail end in case of a GUID partition table, GPT).

Читайте также:  Preseed cfg astra linux

Beware, that if you move the head end of a boot partition (the root partition may be a boot partition), the bootloader must be reinstalled in order to find it. This is possible, but a complication.

Then you can clone this part of the bigger drive, and if a GUID partition table, GPT, afterwards fix the backup partition table for example with gdisk .

I would still recommend to clone the ‘whole’ drive, from /dev/sdx to /dev/sdy , where x is the device letter of the source drive and y is the device letter of the target drive. Cloning with dd or similar tools will be truncated, when the target drive is full.

There are also other things, that can create problems. A few minutes ago I wrote a list of things to watch out for, when you intend to clone a drive. See the following link, Cloning from one drive to another drive.

Источник

Как клонировать на меньший жесткий диск?

Как клонировать жесткий диск на диск меньшего размера.

  1. Clonezilla великолепна, но не поддерживает такую ​​функциональность.
  2. Также dd и PartImage не поддерживают это требование.
  3. rsync не будет копировать MBR, поскольку MBR не является файлом.

Мне нужно клонировать жесткий диск, чтобы не делать резервную копию, поэтому rsync не является приемлемым ответом.

13 ответов

Вы явно не можете клонировать больший раздел в меньший раздел (используя dd и т. П.), Так как просто не хватает места.

Однако, если файлы, находящиеся в более крупном разделе, также поместятся в меньший раздел, вы можете использовать rsync для копирования этих файлов. Точные варианты использования зависят от вашего конкретного варианта использования, но для простого копирования всех файлов следует выполнить следующее:

Редактировать: Еще раз: Вы не можете клонировать большее разделение на меньшее разделение . (Но продолжайте читать, ваша проблема еще может быть решена.)

Причина проста: ваш исходный раздел больше, чем целевой раздел. Что вы ожидаете? Должны ли некоторые блоки просто быть отброшены? Какие? И как dd должен знать? Конечно, вы можете использовать опции dd bs= и count= , чтобы копировать только первые и очень многие блоки исходного раздела так, чтобы они помещались в целевой раздел, но в итоге вы получите со сломанной перегородкой. Это, конечно, не то, что вы хотите.

Итак, поскольку вы не можете клонировать больший раздел на меньший раздел, единственное, что вы можете сделать, это сначала сначала уменьшить размер исходного раздела до размера, меньшего или меньшего размера. равен целевому разделу с чем-то вроде gparted , который знает особенности файловой системы, так что вы не потеряете данные. И только , затем , вы можете использовать dd для клонирования раздела. В идеале новый размер исходного раздела должен быть равен размеру целевого раздела (а не только меньше или равен ), иначе у вас останется некоторое нераспределенное пространство на целевой раздел после клонирования.

Обратите также внимание, что вы не должны , а просто скопировать MBR большего диска в MBR меньшего диска (или наоборот, в этом отношении). MBR, который имеет размер 512 байт и является первым разделом вашего жесткого диска, содержит информацию о расположении жесткого диска:

  • 446 байт — Bootstrap.
  • 64 байта — таблица разделов.
  • 2 байта — Подпись.

(Обратите внимание, что 446+64+2=512 .)

Если вы настаиваете на клонировании MBR, то клонируйте только первые 446 байтов, например:

. заменив /dev/source и /dev/target на имена устройств исходного и целевого жестких дисков, например, /dev/sda и /dev/sdb , соответственно. ( Более подробная информация доступна здесь. )

Однако, правильный способ сделать это — выполнить чистую переустановку Grub (или то, что у вас есть в MBR) на новом жестком диске.

Подводя итог, если вы хотите клонировать больший диск на меньший диск, выполните следующее:

Разложите таблицу разделов на целевом диске с таким количеством разделов, как на исходный диск. Должно быть однозначное соответствие между разделами на исходном диске и разделами на целевом диске, за исключением того, что (некоторые из) разделов на целевом диске могут быть меньше, чем их соответствующие разделы на исходном диске. Для этого используйте инструмент, например fdisk или cfdisk .

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

Читайте также:  Удаленное отключение сервера linux

Для каждого раздела на исходном диске введите команду

. чтобы клонировать раздел /dev/sdaX с исходного диска на соответствующий раздел. /dev/sdbY на целевом диске (конечно, замените имена устройств соответственно).

Источник

How to clone Linux disk of different sizes; large HDD to smaller SSD

WARNING: MISUSE OF THE COMMANDS IN THIS TUTORIAL CAN CAUSE DATA LOSS!
BACKUP YOUR DATA!
YOU’VE BEEN WARNED!

Step 1: Clone original HDD to larger, spare HDD

1.1. Connect SRC and DST disk to computer

1.2. Disconnect external drives that you may be using for backups, you won’t want to accidentally overwrite them!

1.3. Boot off of Ubuntu 14.04 live USB stick or your Ubuntu tower with SRC and DST connected

1.4. Use gparted to identify your boot OS, original SRC, and DST disk device ids, for example:

Write these down! If you mix these up you will LOSE ALL YOU DATA! Using all different sized disks makes this easier. If you have multiple disks of the same size, connect one disk at a time and label them. You don’t want to make a mistake here.

1.5. Clone SRC disk to DST disk using the pv & dd utilities (pv is available in the Ubuntu “universe” apt-get repo):

for example on my system:

This may take several hours depending on your disk sizes, using pipe view (pv) will give you an estimate for how long it will take.

1.6. Power off your computer after the disk is cloned, the Linux kernel may not read the newly cloned disk correctly.

Step 2: Resize Cloned HDD

2.1. After powering off, disconnect the original drive to keep it safe from modification

2.2. Boot computer again, use gparted to resize and move all partitions so that they will fit on the new SSD

You can launch gparted with the DST device id to operate on just that disk, for example:

NOTE: gparted should display all partitions on the new disk without any warnings like /!\ next to a partition. All partitions should be readable by gparted with partition size and used listed next to each partition. If you are booting off a live USB stick, you will probably need to turn off the swap partition by right-clicking and selecting swapoff in the menu.

2.3. After resizing everything power off the computer

Step 3: Clone HDD To New SSD

3.1. With the power off, connect the new SSD to the computer

3.2. Boot computer with the resized HDD and the new SSD

3.3. Use gparted to identify your boot OS, original SRC, and DST disk device ids, for example:

Write these down! If you mix these up you will LOSE ALL YOU DATA!

3.4. Clone SRC disk to DST disk using the pv & dd utilities:

for example on my system:

This may take several hours depending on your disk sizes, using pipe view (pv) will give you an estimate for how long it will take.

Since the destination SSD is likely smaller than the source HDD, dd will error out at the end stating the destination disk is out of space:
dd: error writing ‘/dev/sdc’: No space left on device
This is OKAY.

3.5. Power off the computer and disconnect the spare HDD, so moving forward we are only modifying the SDD

Step 4: Repair The Partition Table

The original partition table that got cloned to the SSD is now incorrect, the physical size of the disk has changed, we need to repair it. With Ubuntu 14.04, the partition table being used is something called a GPT. We will repair the partition using the tool gdisk.

4.1. Boot the computer without the spare HDD

4.2. Use gparted to identify your boot OS, and the new SSD device ids, for example:

Источник

Оцените статью