将磁盘从 MBR 转换为 GPT

将磁盘从 MBR 转换为 GPT

我有一个带有经典 MBR 的磁盘,希望将其转换为使用 GPT 而不会丢失数据。我看过一些或多或少有用的教程,但大多数都在处理与 GRUB、操作系统和磁盘上的多个分区相关的具体问题。就我而言,情况要简单得多 - 我有一个简单的磁盘,用于在单个分区上存储数据。我发现只需运行gdisk并按下w即可将 GPT 写入磁盘,之后我可以挂载并使用它而不会出现任何问题。

不过,我担心数据损坏,gdisk警告我即将执行的操作具有潜在的破坏性,并且我看到了一些图表,其中 GPT 占用了第一个分区通常使用的一些空间。所以我的问题是:

这是将 MBR 转换为 GPT 的好方法吗?

GPT 是否会覆盖原来位于主分区上的一些数据,从而损坏我的文件或文件系统?

答案1

我创建了一个带有一个分区的 MBR 磁盘,用数据填充该分区上的每个字节,创建整个分区的 SHA1 校验和,将其转换为问题中所述的 GPT,创建另一个校验和并将其与原始校验和进行比较。他们是一样的。所以我的结论是这样的: 您可以安全地将磁盘转换为 GPT,而不会损坏数据。

警告:这并不意味着该过程是安全的。它可能会损坏您的分区。使用此方法进行转换之前,请务必进行备份。

答案2

我成功地将 MBR 转换为 GPT,但出于安全原因使用了两个额外的(新)磁盘。请注意,我将 Debian 与GRUB引导加载程序结合使用。

我的设置只有一个 Linux 分区和一个交换分区,过程大致如下。

首先,进行完整备份:

  • 使用第一个额外磁盘对旧磁盘进行完整备份
  • 断开(!)原始驱动器并将其放在安全的地方(这保证我们不会意外写入它)
  • 连接备份驱动器,以便您可以从它启动(例如主板上的第一个 SATA 连接)
  • 还连接第二个额外磁盘
  • 从备份磁盘启动

如果您可以启动并且一切正常,这也证明您的备份是正确的。现在让我们真正开始:

  • gdisk使用新的 MPT 格式对仍然空的第二个磁盘进行分区
  • 故意使用与旧磁盘相同的分区大小,以便我们可以轻松迁移
  • 8300使用Linux 分区和8200Linux 交换分区的代码。
  • 还使用ef02代码创建一个额外的 2 MiB 分区,记住分区号,我们稍后会需要它。

注意:此 2 MiB 分区用于引导GRUB,不必位于磁盘本身的开头。

  • 用于dd将数据从启动盘 Linux 分区复制到新分区
  • 激活新创建的交换分区(使用 mkswap 命令)

在此阶段,系统文件和您的数据已复制到新磁盘。唯一剩下的就是让东西可以启动。

  • 运行以下命令:parted /dev/sdXXX set YYY bios_grub on 其中 XXX 是与我们创建的 2 MiB 分区对应的设备,YYY 是我要求您记住的分区号。

  • 运行grub-install /dev/sdZ,其中 sdZ 是您要使其可启动的磁盘。

  • 断开备份磁盘

  • 连接 GPT 磁盘,以便您可以从它启动
  • 测试(启动到启用 GPT 的新磁盘)

祝你好运!

相关内容