如何从硬盘驱动器中删除GPT?

我有一台Asus K55VM-Sx027V的笔记本电脑,我用Ubuntu重新格式化了它,因为每当我尝试安装64位的Windows 7时,它都不允许我这样做,原因是我的硬盘有GPT保护。
现在我装了Ubuntu 12.10,我该怎样从我的笔记本电脑上移除GPT保护呢?
6个回答

使用gdisk而不是fdisk。它不是默认安装的,所以请使用以下命令获取它:
sudo apt-get install gdisk

然后卸载驱动器并调用设备上的 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 one。在我的情况下,选择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

无法与旧版本的wipefs配合使用 :/ - Florian Heigl
比在计算机上更容易看,三年后就没有了http://packages.debian.org/wipefs,如果曾经有的话,点击定位器进行检查。 - Roman Czyborra
@RomanCzyborra wipefs应该作为util-linux软件包的一部分,放在/sbin目录下。 - Alex Jasmin
@FlorianHeigl 在哪些系统上它不能工作? - Oleg Neumyvakin
@OlegNeumyvakin 我不知道哪个,有些甚至没有-a开关。 - Florian Heigl

使用一个简单的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模式引导。要以EFI模式启动,您可能需要调整固件设置以启用EFI模式引导。有时,在启动时按下进入启动选项的按钮会产生两个选项来引导您的光盘:一个是BIOS(也称为传统)模式,另一个是EFI模式。
  • 将硬盘转换为使用MBR分区而不是GPT。您可以使用GPT fdisk (gdisk)上的“g”选项在“恢复和转换”菜单中完成此操作。然而,对于这种转换,有很多注意事项和细节;请参阅GPT fdisk文档以获取详细信息。完成后,Ubuntu将无法启动;您需要重新安装引导加载程序。(无论如何,在BIOS模式下安装Windows之后,您都需要这样做,所以您可以推迟到安装Windows之后再进行此操作。)

EFI模式引导与GPT仍然是非常新的,可能会有问题,但将你的分区表从GPT转换为MBR也是一个相当冒险的尝试。因此,很难说哪种方法是最好的。当然,你可能甚至无法以EFI模式启动计算机,所以你可能不得不通过转换分区表来解决。

另一种方法是在Linux下使用VirtualBox或其他虚拟化环境运行Windows。这更简单、更安全,对于许多目的来说可能已经足够了。只有当你想运行视频密集型游戏、需要对硬件进行低级访问或者内存不足以支持满足你需求的虚拟化环境时,这可能成为一个问题。

无论你选择哪种方法(除了虚拟化的Windows),我强烈建议你首先备份任何重要数据;搞乱分区表总是有风险的。

编辑:Zolar1的评论提到Ubuntu是以BIOS模式安装的,但使用GPT。在这种情况下,以EFI模式安装Windows将需要以下两种操作之一:

  • 将Ubuntu转换为以EFI模式而不是BIOS模式引导
  • 切换引导模式(Windows使用EFI,Linux使用BIOS)

两种都是可能的。您可以通过添加EFI引导加载程序将Ubuntu转换为以EFI模式启动。有几个选项,如这里所述。Ubuntu默认使用GRUB 2作为其EFI模式引导加载程序,但在我看来,这是一个糟糕的选择。

在EFI模式和BIOS模式之间切换计算机的启动通常很麻烦,但有时候通过按下F8、F12或其他某个键来访问启动选项开关可以使其变得可接受。另一个选项可能是安装rEFInd,它是一个EFI模式的引导管理器,可以(从0.4.6版本开始)将引导过程交给BIOS模式引导加载程序(或EFI引导加载程序)。


我不确定电脑会让你这样做。我自己有一台ASUS K55a。每次我想安装任何版本的Linux然后回到Windows 7,Windows都会强制进行重启和恢复,然后Linux就无法工作了。

我发现你可以从光盘/ DVD上运行Linux,或者使用闪存驱动器上的Puppy。

也许你可以使用一个好的病毒来删除所有分区?哈哈

但是这个链接可能会有所帮助:

http://www.virtualvcp.com/linux-technical-guides/125-clearing-a-guid-partition-table-gpt-in-linux

你把BIOS里的UEFI设置关掉了吗?我觉得只要它开着,你可能无法摆脱分区并且保持电脑正常工作。
请注意:所有新的带有Win8的电脑都被要求始终开启UEFI,没有办法禁用它。真是让人爱不起来微软的贪婪。
如果每个人都向FTC.gov投诉他们剥夺了你使用自己硬件和合法授权软件的权利,也许他们可以介入并强制这些垃圾允许与Linux双启动。
我想知道为什么Linux中没有人写一个自己的UEFI,给出允许双启动的选项,取代微软强加给每个人的那个。
记住,你拥有这台硬件。微软没有权利告诉你该怎么使用它。
关于Linux的更多信息 - 如果我拿掉装有Win7的硬盘,安装一个SSD硬盘,然后在BIOS中关闭UEFI,我可以毫无问题地安装Linux。 问题出现在当我尝试重新插入一个带有UEFI的Windows 7硬盘时。Win7会强制进行读写操作,然后Linux就无法启动了。
也许Linux可以制作自己的UEFI,像GRUB引导程序一样控制一切,而不是让Windows决定你可以安装什么软件和硬件。先使用Linux UEFI,然后如果选择Windows,将其引导到Windows的C:分区。
另一个想法是做类似于Puppy的事情。Puppy使用FAT2文件系统,但在其中创建一个ext2文件系统。对于大文件来说可能不太实用。
Linux可以使用UDF文件系统,并将用户想要的任何文件系统写入该系统,这怎么样?
我不知道。我猜我因为沮丧而胡言乱语。
我想知道是否有直接访问磁盘的程序可以修改GPT分区表?
这里有另一个可能解决你问题的方法:http://www.linuxquestions.org/questions/linux-general-1/delete-gpt-partition-789112/

(U)EFI是在操作系统启动之前控制计算机的固件;没有所谓的“Microsoft UEFI”或“Linux UEFI”。此外,Windows 8的标签要求需要UEFI和其Secure Boot功能。要求是,在x86和x86-64系统上,Secure Boot必须可以被禁用。 - Rod Smith

使用Ubuntu操作系统启动 @分区向导窗口 删除所有分区并点击总可用空间 然后点击创建新的分区表。


请检查并告知您的反馈。 - Lakshmanan
2这听起来像是会完全清除用户的硬盘。不要这样做! - Joshua Besneatte

  • 相关问题