如何快速将GPT分区方案从一个硬盘驱动器复制到另一个硬盘驱动器?

在非GPT分区表上,我可以做到

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

但是sfdisk不支持GPT分区表。 我可以用什么呢?

我正在寻找一个或两个命令解决方案,而不仅仅是使用GNU parted来输出分区大小,然后再手动制作它们。

安装Ubuntu Universe存储库中提供的gdisk 。

然后使用sgdisk命令( 此处的手册页 )复制分区表:

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

第一个命令将sdY的分区表复制到sdY (注意不要将它们混合起来)。 第二个命令随机化磁盘上的GUID和所有分区。 仅当磁盘要在同一台机器中使用时才需要这样做,否则就没有必要了。

我试过,它对我不起作用。 我找到的解决方案是:

 sgdisk --backup=table /dev/sda sgdisk --load-backup=table /dev/sdb sgdisk -G /dev/sdb 
 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 

我刚尝试使用sgdisk进行复制,它运行得很好 – 你只需遵循readline语法规则:

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

要么

  sgdisk -R/dev/target /dev/source 

一切正常。

最简单的答案是:

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

将A的’good’分区表配置复制到替换驱动器B(这是新驱动器)。