在不丢失数据的情况下在 GPT 和 MBR 硬盘之间进行转换

在不丢失数据的情况下在 GPT 和 MBR 硬盘之间进行转换

笔记:我不太了解硬盘,所以你必须和我一起努力。

我的问题:我可以将硬盘从 GPT 更改为 MBR 而不丢失数据吗?

笔记:我要执行此操作的笔记本电脑上没有操作系统。我将从 USB 启动并尝试转换它。

答案1

您可以在 Linux 中将 GPT 转换为 MBR,将 MBR 转换为 GPT,且不会丢失数据(我已尝试过)gdisk

使用风险自负

gdisk /dev/sdx使用以下命令运行陣容按照你的硬盘分区

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************


Command (? for help): 

MBR 到 GPT

进入在磁盘上写入 GPT 分区。

确认您的选择。

GPT 到 MBR

进入r进入恢复和转换选项

进入G将 GPT 转换为 MBR 分区。

信息

您可以通过命令检查表

警告:您将丢失引导加载程序(例如 GRUB)

您现在可以检查您的分区是 GPT 还是 MBRgdisk /dev/sdx陣容按照你的硬盘分区分区表扫描(p)

答案2

使你的驱动器可启动

这是对 Krunal 和 clarkttfu 提供的信息的增强,其中包含有关创建 BIOS 启动分区和安装 grub 的步骤的更多详细信息。

如果您要更改启动驱动器上的分区表,则需要为 grub 创建一个新的“BIOS 启动分区”来存储引导加载程序。这些示例使用驱动器 /dev/sda,它通常是启动驱动器。

首先,验证当前第一个分区之前是否有空间来支持启动分区,fisk -l 应该显示第一个分区从扇区 2048 开始:

johnf@ubuntu:~$ sudo fdisk -l /dev/sda
[...]
Device     Boot  Start       End   Sectors  Size Id Type
/dev/sda1  *      2048    499711    497664  243M 83 Linux
/dev/sda2       501758 125829119 125327362 59.8G  5 Extended
/dev/sda5       501760 125829119 125327360 59.8G 8e Linux LVM

如果存在,则说明您拥有创建分区所需的空间。如果没有的话,您无法按照这些说明操作并获得可启动的系统。

使用 gdisk 将分区转换为 gpt,现在您可以为您的 MBR 创建一个新分区,运行 sudo gdisk /dev/sd,输入n以创建一个新分区,接受建议的分区号,您应该能够选择第一个扇区 34,设置分区类型为 ef02:

Command (? for help): n
Partition number (2-128, default 2):
First sector (34-4294967262, default = 4294922240) or {+-}size{KMGTP}: 34
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): ef02
Changed type of partition to 'BIOS boot partition'

现在你可以用 写入分区表w。再次运行 partprobe,然后安装 grub:

johnf@ubuntu:~$ sudo partprobe
johnf@ubuntu:~$ sudo grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

现在您应该能够顺利重启机器了。

答案3

正如 Krunal 所说,gdisk 会毁掉你的 grub,以避免救援模式:

如果从 BIOS 启动,你最好创建一个BIOS 启动分区在写入并退出 gdisk 之前。(否则,如果从 UEFI 启动,则需要 EFI 分区)。

然后grub-install /dev/sda修复你的引导程序然后重新启动,祝你好运。

即我使用了 sda1 和 sda5 之间的 2048 个扇区,正好是 1MB 用于 BIOS 启动分区:

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          999423   487.0 MiB   8300  Linux filesystem
   5         1001472        41940991   19.5 GiB    8E00  Linux LVM

相关内容