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

В таблице разделов без GPT я могу выполнить

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

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

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

1
задан 22 October 2012 в 19:33

4 ответа

Я пробовал, и это не сработало для меня. Решение, которое я нашел, это:

sgdisk --backup=table /dev/sda
sgdisk --load-backup=table /dev/sdb
sgdisk -G /dev/sdb
27
ответ дан 25 May 2018 в 19:14
  • 1
    Я нашел это решение лучше, потому что он может работать с не-GPT. Я также меняю последнюю команду на: sgdisk -g / dev / sdb – Locke 7 December 2013 в 15:09
  • 2
    Вышеизложенное работает, вам нужно обратить внимание на тот факт, что пример немного назад (хотя и правильный). sgdisk /dev/sdX -R /dev/sdY более очевидно. – Geoffrey 7 January 2015 в 04:27
  • 3
    Сначала выполните резервное копирование, затем восстановите. Я считаю, что это более интуитивно понятное и меньше шансов смешать диски. – Csq 28 December 2015 в 16:30
dd if=/dev/sda of=GPT_TABLE bs=1 count=A
dd if=GPT_TABLE of=/dev/sdb bs=1 count=A
partprobe /dev/sdb

, где A:

A=(128*B)+1024
B=parted -ms /dev/sda print |tail -1|cut -b1
8
ответ дан 25 May 2018 в 19:14
  • 1
    Это также клонирует все идентификаторы GUID диска и раздела, которые могут быть не такими, какие вы хотите. Кроме того, он не устанавливает таблицу резервного копирования в конце диска. – goertzenator 10 November 2015 в 06:19
  • 2
    Мне нравится этот путь! но предпочитают писать: sed '$s/:.*//p;d' вместо tail -n1 | cut -b1, поскольку это не удастся, если у вас более 9 разделов! – F. Hauri 6 January 2016 в 14:47
  • 3
    @goertzenator Вы правы, для этого вы можете запустить обычный инструмент parted, сделать что-то (например, установить любой флаг unset на no), это перепишет таблицу разделов с обоих концов! – F. Hauri 6 January 2016 в 14:49

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

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

или

   sgdisk -R/dev/target /dev/source

и все работает. [ ! d2]

2
ответ дан 25 May 2018 в 19:14

Самый простой ответ на этот вопрос:

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

, чтобы скопировать «хорошую» таблицу таблиц разделов A на заменяющий диск B (который является новым диском).

-2
ответ дан 25 May 2018 в 19:14
  • 1
    Вы пропустили часть вопроса, которая объясняет, почему это не вариант. – DavidW 30 December 2016 в 03:08
  • 2
    Ваш ответ не работает для GPT только для не-GPT – Jan Dev 21 January 2018 в 03:12

Другие вопросы по тегам:

Похожие вопросы: