Как я могу быстро скопировать схему разделов GPT с одного жесткого диска на другой?

В таблице разделов, отличной от GPT, я могу сделать

sfdisk -d /dev/sda | sfdisk /dev/sdb.

Но sfdisk не поддерживает таблицы разделов GPT. Что я могу использовать вместо этого?

Я ищу решение с одной или двумя командами, а не просто использую GNU parted для вывода размеров разделов, а затем вручную создаю их снова.

Устанавливать gdisk который доступен в репозиториях Ubuntu Universe.

Затем используйте sgdisk команда (справочная страница здесь) для репликации таблицы разделов:

sgdisk /dev/sdX -R /dev/sdY sgdisk -G /dev/sdY

Первая команда копирует таблицу разделов sdX к sdY (будьте осторожны, чтобы не перепутать их). Вторая команда рандомизирует идентификатор GUID на диске и все разделы. Это необходимо только в том случае, если диски будут использоваться на одном компьютере, в противном случае в этом нет необходимости.

Я пытался, но у меня ничего не вышло. Решение, которое я нашел, это:

sgdisk --backup=table /dev/sdasgdisk --load-backup=table /dev/sdbsgdisk -G /dev/sdb
dd if=/dev/sda of=GPT_TABLE bs=1 count=Add if=GPT_TABLE of=/dev/sdb bs=1 count=Apartprobe /dev/sdb

где A - это:

A=(128*B)+1024B=parted -ms /dev/sda print |tail -1|cut -b1

Я только что попробовал репликацию с помощью sgdisk, и она работает просто отлично - вам просто нужно следовать правилам синтаксиса readline:

   sgdisk --replicate=/dev/target /dev/source

или

   sgdisk -R/dev/target /dev/source

и все работает.

Страница manpage из sfdisk говорит:

Начиная с версии 2.26 sfdisk поддерживает метки дисков MBR (DOS), GPT, SUN и SGI

Так

sudo sfdisk -d /dev/sda | sudo  sfdisk /dev/sdb

будет работать с sfdisk версии 2.26 и выше.

Инструменты разбиения util-linux на разделы (включая sfdisk) были переписаны, чтобы включить поддержку GPT для util-linux 2.26. sfdisk отличается от gdisk тем, что он не поддерживает размещение небольшого загрузочного раздела до 1 МБ, поэтому он захлебнулся в моей конфигурации. (об ошибке уже сообщалось выше по течению.)

обновление по этому поводу: sfdisk теперь принимает все, что вы предоставляете ему при использовании таким образом, включая небольшой загрузочный раздел, следующий за GPT, заканчивающийся на 1 МБ. command line - How to copy the partition layout of a whole disk using standard tools - Unix & Linux Stack Exchange

Когда я клонирую MBR-диск на диск меньшего размера, в дополнение к sfdisk -d я также редактирую дамп и изменяю начальные/конечные сектора. Как мне это сделать с помощью sgdisk для GPT-дисков? -R клонирует без промежуточного файла резервной копии, а -b создает двоичную резервную копию, не читаемую / редактируемую человеком, как это делает sfdisk!

Как насчет dd if=/dev/sda of=/dev/sdb?