当存在非连续的未分配空间时,什么会阻碍 SSD 分区扩展?

对于硬盘驱动器 (HDD),除非盘片上分区后面有未使用的(空)空间,否则无法扩展分区。这是由硬盘驱动器的物理特性决定的。

在 Linux 和 Windows 中试用固态硬盘 (SSD) 后,我发现分区仍然无法轻松扩展,除非分区后面有未使用的空间。这对我来说毫无意义,因为 SSD 的物理结构无关紧要。由于磨损均衡,SSD 会将其所有非易失性内存芯片上的空间用于分区,无论分区在逻辑上位于何处。

如果 SSD 上有未分配的空间,但是该未分配的空间恰好不在逻辑上紧跟在相关分区之后,那么什么会阻碍 SSD 分区扩展(增加大小)呢?

或者这仅仅是现代操作系统中包含的主要工具没有跟上技术的问题?

(请注意,有一些第三方工具可以实现此功能,通常是通过移动大量数据来实现的,但通常会导致不良结果(例如,参见)。但除非我遗漏了什么,否则我认为 Windows 无法原生地执行此操作,并且许多 Linux 发行版不包含处理此任务的工具。)

13

  • 4
    它从来都不是任何物理结构的问题,而是分区表/条目的结构(它们被设计用于为每个分区存储一个 LBA 范围,原因很明显)。映射到 LBA 的存储是否连续与此无关。


    – 


  • 1
    或者,如果您正在考虑可能的“设施”,允许用户执行低级操作(例如更改映射存储的 LBA),那是因为它很危险且小众。


    – 

  • 3
    “当存在非连续的未分配空间时,是什么阻碍了 SSD 分区的扩展?” – 这种限制不仅影响 SSD,还影响 HDD 和几乎所有存储设备。


    – 

  • 6
    @EndAntisemiticHate 没什么可改进的——你不希望基本原理变得比(开始、结束)更复杂。如果你需要“更动态”的东西,那么你可以使用 Linux 上的 LVM。在一个分区中支持 LBA 范围意味着分区表/条目不能有固定的大小。


    – 


  • 3
    @EndAntisemiticHate – 您无法合并两个不连续的分区的原因不是 SSD 或 HDD 的物理限制。


    – 


最佳答案
3

当存在非连续的未分配空间时,什么会阻碍 SSD 分区扩展?

LBA。分区有起始扇区和结束扇区(或长度)。要实现您的建议,您必须创建一个新方案来替换 LBA。

如果 SSD 上有未分配的空间,但是该未分配的空间恰好不在逻辑上紧跟在相关分区之后,那么什么会阻碍 SSD 分区扩展(增加大小)呢?

如果“未分配空间恰好不在逻辑上紧跟相关分区之后”,那么就必须在相关分区之后定义另一个分区,或者未分配空间必须出现在相关分区之前。无论哪种方式,在 LBA 下,都必须更改一个或多个分区的起始地址。使用 LBA,如果不复制扇区,就无法更改起始地址。

或者这仅仅是现代操作系统中包含的主要工具没有跟上技术的问题?

也许将来会有一个新的方案,其中寻址将通过分区号和分区内的扇区偏移进行。这不仅需要更改操作系统,还需要创建新的分区方案,并更改计算机和 SSD 使用的固件。


原帖提到使用当前工具会产生“不良结果”。下面我将解决这个问题。

Apple Silicon Macs 需要使用 APFS,这样无需重新分区即可安装一个或多个版本的 macOS。Apple 仅提供通过虚拟化安装其他操作系统的方法。您可以通过重新分区来添加和删除 APFS 卷。

Linux 具有 LVM,允许一个分区拥有多个卷。此外,还有 GParted,可以移动和调整分区大小。这可能需要从外部媒体启动才能执行某些操作。例如,Linux Live 闪存驱动器通常包含 GParted。

Windows 提供动态磁盘,但显然这种功能正在被低估。对于基本磁盘,有免费工具,如 MiniTool Partition Wizard,它可以移动分区。(我仍然建议先备份重要文件。)使用 MiniTool Partition Wizard,您可以先指定要执行的操作,然后计算机重新启动以执行操作而无需用户交互。完成后,计算机将重新启动到 Windows。

1

  • 这个“LBA。分区具有起始扇区和结束扇区(或长度)。要执行您建议的操作,您必须创建一个新方案来替换 LBA。” 答案就足够了。无论驱动器是硬盘驱动器还是 SSD,它们都以逻辑块设备的形式呈现,这就是分区工具要处理的。


    – 

HDD、SSD 表现为逻辑块设备。这些设备的物理构造如何,以及这些设备如何在较低级别组织和管理块并不重要。

分区表变体(MBR、GPT)允许基于起始 LBA 和 LBA 扇区数(MBR 分区表)或 LBA 结束扇区(GUID 分区表)创建分区。因此,这些分区布局仅允许作为连续 LBA 块区域的分区。

当然,总是可以添加另一个抽象层,将由起始和结束 LBA 定义的分区组合成逻辑单元,但必须在 MBR 或 GPT 分区表之外组织。

使用 gparted(或其他)移动分区比重新构建分区表要简单得多。您也可以在未分区的空间中创建一个 D: 或 E: 驱动器并将文件放在那里。

首先,SSD 仅仅为了达到磨损均衡的目的而移动扇区。

您不了解以这种方式修改分区表 GPT 或 MBR 的复杂性。所有以前的操作系统都不支持新的分区方案,因此旧系统不会在新方案中启动硬盘。

例如,HP Z400 无法启动 GPT 分区驱动器,因为 BIOS 无法理解 GPT。它只知道 MBR。第一个支持 GPT 的操作系统是 Windows 7,因此 Vista PC 甚至无法使用 GPT 格式的驱动器。

因此,为了支持您的 GPTX(GPT 扩展或任何您想称呼它的名称),每台设备上的每个 BIOS 都必须使用新代码进行修改。此外,所有当前使用的操作系统都必须进行修改以支持 GPTX。GPT 可以使用的扇区数量是有限制的,因此空间不足是一个问题,而更改限制会导致更多遗留问题(GPTX 之前的任何问题)。

你必须说服数百家公司采用 GPTX,但考虑到 GPTX 的复杂性以及开发和实施所花费的数百万美元,这些公司只会告诉你“不”。

GPT 的主要原因是允许 UEFI,这会影响整个 PC 的整体安全性。它确实纠正了许多疏忽,例如只允许 4 个主分区和超过 2TB 的驱动器。这些都是真正的生活质量改进,是必要且不可避免的。

鉴于使用 GPARTED(或其他)移动分区的简单性,以及/或者能够相对轻松地在未分配空间中放置新分区的能力,您不太可能说服任何人花钱创建 GPTX。您所要做的就是进入磁盘管理,右键单击未分配空间并创建一个新分区。然后将您的一些文件保存在新驱动器中。

我使用过 gparted 数百次甚至数千次,但都没有损坏分区表或操作系统。