![调整 NTFS 分区大小至驱动器开头而不移动数据](https://linux22.com/image/1522412/%E8%B0%83%E6%95%B4%20NTFS%20%E5%88%86%E5%8C%BA%E5%A4%A7%E5%B0%8F%E8%87%B3%E9%A9%B1%E5%8A%A8%E5%99%A8%E5%BC%80%E5%A4%B4%E8%80%8C%E4%B8%8D%E7%A7%BB%E5%8A%A8%E6%95%B0%E6%8D%AE.png)
假设我有一个假想的 200 GB 硬盘(不是 SSD),上面有两个 100 GB 分区(A 是第一个,B 是第二个)。分区 A 是空的。分区 B 是半满的。我想删除分区 A,并将分区 B 的大小调整到驱动器的开头,以便 B 有 200 GB。
我的问题是:是否可以调整 B 的大小,而无需将 B 的内容移动到驱动器的开头?调整大小操作可以快速进行吗?我已经调整了分区“朝向驱动器末尾”的大小(例如,在这种情况下删除 B 并将 A 的大小调整为整个驱动器),并且速度一直非常快。但就我而言,我担心所有数据都需要移动,或者至少更新它们在 MBR 中的位置,因为分区的起始位置将发生变化。
我想使用一些免费的 Windows/Linux 软件来完成这项工作。
编辑:该驱动器仅用于数据,没有安装系统分区。
答案1
我并不是 NTFS 专家,但我想提供一些一般指导。
1) 我见过很多有关 PC 软件的东西,但从未听说过有应用程序可以在不移动数据的情况下将 NTFS 分区扩展到驱动器的开头。
2)此类应用程序是否存在:在没有对磁盘进行完整备份的情况下,您绝对不应该做此类事情。
扩展、缩小或移动分区始终是一项高风险操作,因此强烈建议在执行此类操作之前备份整个磁盘,并且应尽可能缩短操作所需的时间。
因此,即使有这样一个应用程序可以完成您所要求的操作,它仍然必须(递归地)调整大量指针,这会花费时间,因此我不会使用它。
对于你的情况,我会做以下事情:
最小(坏)解决方案
a)删除分区A
b) 重新创建分区 A,并为分区 B 留出足够的空间(完成此步骤后,分区 A 和分区 B 之间会有一些空间)
c) 将所有数据从分区 B 复制到分区 A(如果分区 A 现在太小,此操作可能会失败;在这种情况下,该解决方案实际上不是一个解决方案)
c) 删除分区 B
d) 重新创建更大容量的 B 分区(此步骤后,A 分区和 B 分区之间将没有空间)
e) 将分区 A 中的所有数据复制到分区 B
更好的解决方案
a) 至少对 B 分区进行完整备份
b) 删除两个分区
c) 根据需要重新创建两个分区
d) 将旧分区B的备份恢复到新分区B
好的解决方案
a) 购买新磁盘
b) 分区新的磁盘,从而创建所需大小的分区
c) 对 B 分区进行完整备份老的磁盘
d) 将备份还原到新的磁盘
e) 将旧磁盘放在安全的地方,以防万一出现问题。使用新磁盘一个月左右后,当知道一切正常时,您可以使用老的磁盘用于其他用途。
那么为什么第一个解决方案不好?
首先,您可能知道,NTFS 相当复杂。它包括 ACL、硬链接、符号链接、快捷方式、稀疏文件和备用流等。哎呀,如果有硬链接,即使是集成的 Windows 资源管理器也会显示错误的目录大小!就我个人而言,我知道只有两个程序可以可靠地复制数据而不会丢失此类信息;它们都是命令行,而且它们的用法相当难以理解。我绝对只会向高级用户推荐它们。
其次,如果您的分区 B 是您的操作系统所在的位置,则仅将其数据(即使使用我提到的工具之一)复制到分区 A 也不会使操作系统从分区 A 启动。
但即使是糟糕的解决方案也会将高风险操作(即调整分区大小)所需的时间缩短到合理的范围内。
一些补充说明:
这些是我多年来形成的个人观点和最佳实践(我做过不止一次这样的事情)
当我说“完整备份”时,我的意思当然是图像类型备份(相对于基于文件的备份
有很多免费和商业工具可用于进行基于映像的备份。例如,查找 dd、CloneZilla 或 TrueImage。
恢复完整备份时,根据您使用的软件,目标分区可能至少需要具有原始分区的大小。
将完整备份还原到某个分区后,如果该分区的大小大于备份所来自的分区,则最终(第二步)必须扩展文件系统以使其使用整个分区(是的,在大小为 200 GB 的分区上将文件系统限制为 100 GB 确实是可能的);这是否有必要取决于所使用的备份软件。
最后,再想想:你可以整夜备份,那么与丢失宝贵的个人数据(例如,你在珠穆朗玛峰顶峰拍摄的照片)相比,花费的时间又算得了什么呢?如果你没有钱买新磁盘,那么你可以问朋友是否愿意让你使用他的外部磁盘一两天......
答案2
在实时操作系统上使用 gparted:
删除
使 B 尽可能小以节省时间。
- 将 B 复制并粘贴到从第一个扇区开始的可用空间中。这将保留分区 UUID,以防引导加载程序使用它。注意不要覆盖引导加载程序,也许在开始时留下一些 MB 的可用空间。
- 删除 B 并扩展新的 B 以覆盖驱动器的其余部分。
- 根据引导加载程序的安装方式,您可能需要更新它。默认 GRUB 安装应该无需更新即可正常工作。
答案3
总结:EaseUS v14 免费版
以上所有答案都很有趣,但不清楚数据是否被移动。我的 4 TB 硬盘有 3 个分区:前 2 个分区覆盖硬盘开头的 450 GB,末尾的 3.5 TB。后者是 NTFS,几乎已满,我先删除了 2 个分区,并将 3.5 TB 扩展到 4 TB 显然,我真的不希望移动超过 3 TB 的数据:这需要几个小时,甚至几天!EaseUS 分区管理器 v14免费版,我只是按照正常程序操作,重新启动了 PC,该工具仅更新了分区元数据和 MFT。整个过程不到 5 分钟!
答案4
本机方法Native Method
Windows 7 及更新版本可以就地调整 NTFS 分区的大小,但无法移动分区的起始位置。要就地调整大小,您需要“开始”->“Windows 管理工具”->“计算机管理”->“磁盘管理”。
从这里您可以右键单击分区以扩展或缩小。这甚至可以调整系统分区的大小。
如果您想使用 Windows 的内置工具移动分区,则需要手动移动文件。对于非系统分区,我会这样做:
- 删除 A(磁盘起始处的空分区)并创建一个新分区作为“新 B”
- 尽可能将数据从 B 移动到“新 B”。使用 Shift+单击在 Windows 资源管理器中进行选择,然后右键单击以获取属性并等待它显示大小。这将告诉您选择了多少,以便您可以查看是否全部适合。
- 如果“新 B”在 B 变空之前就填满了,则使用上述工具尽可能缩小 B。
- 在磁盘 B 已填满的空间中,在磁盘末尾创建一个新的临时分区“temp1”。不开始从 B 复制到“temp1”
- 用“temp2”、“temp3”等重复 3、4,直到 B 为空
- 删除 B;它是空的
- 展开“新 B”
- 开始从最靠近磁盘前端的临时分区复制文件。当该分区为空时,删除它并展开“新 B”
- 重复第 8 步,直到完成
免费啤酒
有大量“免费试用”和“家庭免费”软件可以调整分区大小甚至移动分区。这些工具通常需要重新启动才能影响系统分区,但它们可以移动和调整 Windows 使用的 NTFS 和 FAT 分区的大小。如果您需要缩小或扩大系统分区作为您的步骤之一,请使用本机工具。
我最近使用了 MiniTool 和 EaseUS,它们都很好用。MiniTool 会试图诱骗你安装间谍软件(注意“我同意条款并希望安装间谍软件”;取消选中并单击下一步),但个人和企业使用都是免费的。EaseUS 仅对家庭用户免费,对于拥有多台计算机的企业来说价格昂贵。两者都会用促销广告来推销许可证。
对于您的特定用例(纯数据分区),这些工具可以通过 2 个步骤完成所有操作:1. 删除 A 分区 2. 将 B 的大小调整到磁盘的开头
言论自由
上面已经提到了 GParted Live。但是您可以在大多数 Linux 发行版上安装 GParted。大多数实时 USB 发行版都允许。但是,我在操作 Windows 系统分区时遇到了麻烦,导致无法启动 Windows 安装。上面的工具不会破坏您的启动。
Gparted 适用于任何 Linux 分区或 Windows 数据分区。