当您将 Windows VPS 升级到更高的方案时,虚拟磁盘会在虚拟化管理程序一侧立即扩大。但 Windows 不会自动察觉:您的 C: 盘仍保持原来的大小,新增的空间则显示为 Unallocated(未分配)。没有任何数据丢失,只需将这部分空间并入即可。
为什么 Windows 不会自动扩展分区?
磁盘和分区是两回事。虚拟化管理程序给了您一个更大的磁盘,就像在衣柜上方加装了几层空隔板。而 C: 分区的大小仍保持不变:没有人告诉它去占用这些空闲的隔板。您要做的就是下达这个指令。
扩展分区之前应该做什么?
创建快照,并关闭正在写入磁盘的程序:任何分区操作都需要一张安全网。
- 在服务的 Snapshots(快照)选项卡中创建一个快照。任何分区操作都需要一张安全网。
- 使用管理员账户通过 RDP 登录。
- 磁盘只能扩大:如果您想缩小磁盘,不重装是无法实现的。
如何使用 Disk Management 扩展 C: 卷?
这是常规方法,没有风险,也无需外部工具。
- 按
Win + R,输入diskmgmt.msc并确认。 - 找到 C: 盘,以及其右侧带斜线阴影的 Unallocated 区域。
- 右键单击 C:,然后选择 Extend Volume。
- 保留默认建议的大小(它会使用全部可用空间),然后完成向导。
新的大小会立即生效,无需重启。
为什么「Extend Volume」呈灰色?
Windows 只能将分区扩展到紧邻其右侧的可用空间。而 Windows 镜像通常会在 C: 之后放置一个小型的恢复分区(WinRE,500 MB 至 1 GB)。它挡住了去路:未分配空间确实存在,但位于这堵墙的另一侧。
这时就需要拆掉这堵墙。
如何使用 diskpart 扩展分区?
以管理员身份打开命令提示符,先检查磁盘,然后再进行扩展。
以管理员身份打开命令提示符,然后执行:
diskpart
list disk
select disk 0
list partition
在进行任何操作之前,请先仔细阅读输出结果。您需要确定两个编号:
- C: 的编号,即容量最大的主分区;
- 紧随其后的 Recovery 分区的编号。
典型输出示例:
Partition ### Type Size Offset
------------- ---------------- ------- -------
Partition 1 System 100 MB 1024 KB
Partition 2 Reserved 16 MB 101 MB
Partition 3 Primary 40 GB 117 MB
Partition 4 Recovery 523 MB 40 GB
此处 C: 为分区 3,恢复分区为分区 4。删除后者会让您失去 Windows 恢复环境,但不会丢失您的数据:没有它,系统也能正常启动和运行。
select partition 4
delete partition override
select partition 3
extend
exit
请根据您自己的 list partition 输出调整编号。重要的是这些编号,而不是示例中的编号。
是否有 By-Hoster 脚本可以完成此操作?
上述步骤也以脚本形式提供:
curl -o resize.bat https://byh.fr/resize.txt && call resize.bat
它会完全按照方法 2 执行,但不会进行任何询问:它会选择磁盘 0,删除分区 4,然后扩展分区 3。只有当您的机器恰好是这种分区布局时,它才是正确的。
使用前请先运行 list partition。如果您机器上的分区 4 不是恢复分区,它仍然会被删除,其中的内容也会一并丢失。
如何确认扩展已成功?
打开文件资源管理器中的 This PC:C: 的大小应反映新磁盘的容量。使用命令行:
diskpart
list volume
如果未分配空间没有出现怎么办?
三种排查思路,从最简单到最复杂:
- 重启机器,然后重新打开
diskmgmt.msc。 - 在 Disk Management 中,点击 操作 菜单,然后选择 Rescan Disks。
- 如果仍然找不到该空间,可能是方案变更尚未应用到机器上。请提交工单,并注明预期的大小和实际看到的大小。