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

Kri*_*per 83 partitioning gparted raid hard-drive

在非 GPT 分区表上我可以做

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

sfdisk不支持 GPT 分区表。我可以用什么代替?

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

Kri*_*per 137

安装gdisk,它在 Ubuntu Universe 存储库中可用。

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

sgdisk /dev/sdX -R /dev/sdY 
sgdisk -G /dev/sdY
Run Code Online (Sandbox Code Playgroud)

第一个命令复制sdXto的分区表sdY(注意不要混淆)。第二个命令随机化磁盘和所有分区上的 GUID。仅当磁盘要在同一台机器上使用时才需要,否则没有必要。

  • 此信息对于想要更换故障 RAID-1 磁盘的任何人来说都是非常宝贵的。谢谢! (11认同)
  • 此命令有效,但应注意,示例中的驱动器顺序是倒序的。一个更明显的写法是`sgdisk /dev/sdX -R /dev/sdY` (11认同)
  • 在进行任何破坏性更改之前,请务必使用以下内容进行备份:`sgdisk --backup=/some/safe/location/sdX.gpt /dev/sdX` 和 `sgdisk --backup=/some/safe/location/sdY .gpt /dev/sdY` (10认同)
  • @KrisHarper:确实如此,但由于程序使用 getopt 来解析命令行参数,因此顺序并不重要。应该更新手册页。 (2认同)
  • 如果可以编辑示例以读取`sgdisk /dev/src -R /dev/dest` 会更好 (2认同)
  • 如果目标驱动器小于源驱动器,这甚至可以工作。只需确保所有分区都压缩到源磁盘的开头,并且不会超出目标磁盘的大小。`sgdisk` 将发出有关此问题的警告,但会起作用,然后运行 ​​`sgdisk -G` 将解决剩余问题。这非常适合将笔记本电脑从 HDD 迁移到较小的 SSD。 (2认同)

小智 35

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

sgdisk --backup=table /dev/sda
sgdisk --load-backup=table /dev/sdb
sgdisk -G /dev/sdb
Run Code Online (Sandbox Code Playgroud)

  • 先备份,后恢复。我发现这更直观,而且混合驱动器的机会更少。 (8认同)

小智 8

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
Run Code Online (Sandbox Code Playgroud)

其中 A 是:

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

  • 这还会克隆所有可能不是您想要的磁盘和分区 GUID。此外,它不会在磁盘末尾安装备份表。 (2认同)