笔记:我不太了解硬盘,所以你必须和我一起努力。
我的问题:我可以将硬盘从 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