我现在的计算机有一个小的主分区和一个大的扩展分区,里面有许多较小的分区:
+-------+-------------+
| | Secondary |
|Primary+----+---+-----
| | A | B | C |
+-------+----+---+----+
这种布局相当不舒服,我正试图摆脱辅助分区。有没有办法一步“解包”,而不是将数据移出并缩小直到我可以删除它?
答案1
是的。事实上,至少有两种方法可以做到这一点:
- 转换为 GPT-- 较新的GUID 分区表 (GPT)默认情况下支持最多 128 个分区(如果需要,可以增加该值),不区分主分区、扩展分区和逻辑分区。一些工具,包括我自己的 GPT fdisk(
gdisk
、sgdisk
、cgdisk
),Ubuntu 软件包中附带的gdisk
,可以将较旧的主引导记录(MBR;您正在使用的)转换为 GPT;请参阅这一页有关详细信息。但请注意,此更改将需要重新安装您的引导加载程序。如果您的计算机是新的(2011 年末或之后),如果您进行此更改,则可能需要从 BIOS 模式切换到 EFI 模式启动。无论哪种方式,您可能都必须创建一个新分区(EFI 模式的 ~550MiB ESP 或 BIOS 模式的较小 ~1MiB BIOS 启动分区)。此外,如果您使用 Windows 双启动 Ubuntu,从 MBR 切换到 GPT 会变得更加复杂,因为您需要更新两个操作系统的引导加载程序,并且 Windows 不支持在 BIOS 模式下从 GPT 磁盘启动,因此只有您的计算机支持 EFI 模式启动时,此更改才会起作用。(请参阅这篇博文有关将 Windows 从 BIOS 模式转换为 EFI 模式启动的信息。 - 从逻辑转换为主要-- 一些工具,比如我的修复零件 (
fixparts
)可以将分区从逻辑分区转换为主分区。(请注意,fixparts
Ubuntu 软件包也提供了此gdisk
功能。)不过,也有一些注意事项。如果您有四个以上的主分区和逻辑分区,则总共最多只能有 3 个主分区,因此您可能无法转换所有分区。根据启动时涉及的分区、您安装的操作系统等,您可能需要在转换后调整引导加载程序配置。一般来说,从逻辑分区转换为主分区并不值得,恕我直言;虽然扩展分区是一种笨拙的(尽管存在很长时间)黑客攻击,但它并没有真正让您无法完成在只有主分区的情况下可以完成的事情;它只是增加了一两个额外的步骤。(一个值得注意的例外是,如果您正在安装需要主分区的操作系统——但传统的分区工具通常可以完成这项工作。)
请注意,这两种方式都有风险。实际的分区转换涉及相对简单的计算和少量的数据写入,但考虑到分区表数据结构的关键性质,错误或随机 I/O 错误始终有可能导致灾难性的数据丢失。如前所述,您可能还需要在进行更改后更新或重新安装引导加载程序,如果您在此步骤中遇到问题,则该过程将是一场噩梦。
如果你认为扩展/逻辑分区很不方便,因为你经常更改分区,我建议你考虑使用逻辑卷管理器 (LVM)配置。LVM 是一种在常规分区上运行的高级伪分区设置。它更灵活,因为 LVM 中的逻辑卷(分区等价物)被视为文件;可以创建它们并调整它们的大小,而不必担心它们在磁盘上的物理位置。不过,从常规分区方案转换为 LVM 可能会很麻烦。最好的方法通常是备份、创建一个新的 LVM 设置,然后恢复(或重新安装然后恢复用户数据)。blocks
工具声称能够现场完成此操作,但我从未尝试过,因此我无法评论其安全性、可靠性或易用性,只能说 README 中的描述表明文件系统调整大小是操作的一部分,这会产生一些固有的危险。还请注意,根据您转换的内容,在完成转换后,您很可能最终需要重新安装引导加载程序,或者至少调整其配置。