当前位置: 首页>>技术教程>>正文


partitioning – 如何从硬盘中删除 GPT?

, ,

问题描述

我有一台 Asus K55VM-Sx027V 笔记本电脑,我用 Ubuntu 对其进行了格式化,因为每当我尝试安装 Windows 7 64 位时,它都会不允许我安装,因为我的 HDD 有 GPT 保护。

现在我已经有了 Ubuntu 12.10,如何从笔记本电脑上删除 GPT 保护?

最佳回答

使用 gdisk 而不是 fdisk. 默认情况下未安装它,因此可以使用以下命令获取它:

sudo apt-get install gdisk

然后umount驱动器并调用gdisk设备:

sudo gdisk /dev/sdX

它会提示您选择分区:

Found valid MBR and GPT. Which do you want to use?
 1 - MBR
 2 - GPT
 3 - Create blank GPT

选择 GPT 之一。就我而言,为 2 。使用?命令打印命令列表。输入 x 作为专家选项,然后输入 z 以清除 GPT 表和光盘上的所有数据:

Command (? for help): x 

Expert command (? for help): z
About to wipe out GPT on /dev/sdx. Proceed? (Y/N): y
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Blank out MBR? (Y/N): y

次佳回答

在更改分区格式之前,您可以使用 wipefs 从设备中删除所有常见 id 块。

sudo wipefs -a /dev/sdx

第三种回答

用一个简单的Python函数!

def clear_gpt(target):
      '''
      According to http://en.wikipedia.org/wiki/GUID_Partition_Table - GPT
      stores partition data in the first and last 34 LBA blocks. A LBA sector
      is normally 512 bytes.
      '''
      fd = open(target, "w+")
      fd.seek(0)
      fd.write('\0' * 34 * 512)
      print "done nuking data at the beginning of disk", target
      fd.seek(0, 2) # SEEK_END is 2
      disk_size = fd.tell()
      fd.seek(disk_size - 34*512)
      fd.write('\0' * 34 * 512)
      print "done nuking data at the end of disk", target

从以下位置获取完整示例:

http://blog.gnub.net/2009/03/die-gpt-die.html

第四种回答

GPT 是 GUID Partition Table,,它是一种在计算机上定义分区(而不是保护)的方法。如果 Windows 抱怨您使用 GPT,则意味着 Windows 安装程序已在 BIOS 模式下启动,而不是在 (U)EFI 模式下启动。有两种方法可以解决此问题:

  • 以 EFI 模式启动 Windows 安装程序。这可能可行,也可能不可能,具体取决于您的计算机。如果它是新的(在过去 6-12 个月内出售),它可能支持 EFI-mode 启动。要以 EFI 模式启动,您可能需要修改固件设置以启用 EFI-mode 启动。有时,启动时按下按钮进入启动选项会产生两个用于启动 CD 的选项:一个在 BIOS(也称为传统)模式下,另一个在 EFI 模式下。

  • 将硬盘转换为使用 MBR 分区而不是 GPT。您可以通过使用“恢复和转换”菜单上的 “g” 选项来对 GPT fdisk (gdisk) 执行此操作。然而,这种转换有很多注意事项和细节;有关详细信息,请参阅 GPT fdisk 文档。完成后,Ubuntu 将不再启动;您需要 re-install 引导加载程序。 (无论如何,在 BIOS 模式下安装 Windows 后,您都需要执行此操作,因此您最好将其推迟到安装 Windows 之后。)

使用 GPT 启动的 EFI-mode 仍然是非常新的,并且可以是 trouble-prone,但是将分区表从 GPT 转换为 MBR 也是一项相当冒险的尝试。因此,我很难说哪种方法最好。当然,您甚至可能无法以 EFI 模式启动计算机,因此您可能必须通过转换分区表来完成此操作。

这两种方法的替代方法是在 VirtualBox 或 Linux 下的其他虚拟化环境中运行 Windows。这更简单、更安全,并且可能足以满足许多目的。如果您想要运行 video-intensive 游戏,如果您需要对硬件进行低级访问,或者您没有足够的 RAM 来支持足以满足您需求的虚拟化环境,那么这很可能是一个问题。

无论您采用哪种方法(除了虚拟化 Windows),我强烈建议您首先备份所有重要数据;破坏分区表总是有风险的。

编辑:Zolar1 的评论表明 Ubuntu 可能以 BIOS 模式安装但使用 GPT。在这种情况下,以 EFI 模式安装 Windows 将需要执行以下两项操作之一:

  • 将 Ubuntu 转换为以 EFI 模式而不是 BIOS 模式启动

  • 切换启动模式(Windows 为 EFI,Linux 为 BIOS)

两者皆有可能。您可以通过添加 EFI 引导加载程序将 Ubuntu 转换为以 EFI 模式引导。有几个选项,如所述 here. Ubuntu 默认使用 GRUB 2 作为其 EFI-mode 引导加载程序,但恕我直言,这是一个糟糕的选择。

在计算机的 EFI-mode 和 BIOS-mode 启动之间切换通常很尴尬,但有时启动选项开关(可在启动时按 F8、F12 或其他键访问)可以使这种情况可以忍受。另一个选择可能是安装 rEFInd,,它是一个 EFI-mode 引导管理器,可以(从版本 0.4.6 开始)将引导过程移交给 BIOS-mode 引导加载程序(或 EFI 引导加载程序)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13851.html,未经允许,请勿转载。