/opt/buildhome/repo/hugo-site/content/posts/post-2/index.md
首页 ›Tech › 双系统分区调整:从 Windows D 盘分配 50GB 给 Arch Linux

双系统分区调整:从 Windows D 盘分配 50GB 给 Arch Linux

作者 Worthify 九月 5, 2026 4 分钟阅读# Tech
双系统分区调整:从 Windows D 盘分配 50GB 给 Arch Linux

双系统分区调整:从 Windows D 盘分配 50GB 给 Arch Linux

[!CAUTION] 🚨 Caution

操作前务必备份所有重要数据! 分区调整涉及磁盘底层数据结构,存在数据丢失风险。请将 Windows 和 Linux 中的重要文件备份到外部存储设备或云端。


操作概览

整个流程分为 4 个阶段:

flowchart LR
    A["阶段1\n准备工作"] --> B["阶段2\nWindows 缩小 D 盘"]
    B --> C["阶段3\nGParted 扩展 Linux 分区"]
    C --> D["阶段4\n验证与引导修复"]
阶段操作环境所需工具预计耗时
准备工作Windows系统设置10 分钟
缩小 D 盘Windows磁盘管理5 分钟
扩展 Linux 分区GParted Live USBGParted30-120 分钟
验证修复Arch Linux终端10-30 分钟

阶段 0:了解你的磁盘布局

在操作前,先搞清楚你当前的磁盘分区布局。典型的双系统布局可能如下:

┌──────┬──────────┬───────────┬────────────┬───────────────┐
│ EFI  │ Windows  │ Windows   │ Arch Linux │  (可能还有    │
│ 分区 │ C 盘     │ D 盘      │ 分区       │  其他分区)    │
│~300M │ ~500G    │ ~400G     │ ~80G       │               │
└──────┴──────────┴───────────┴────────────┴───────────────┘

[!IMPORTANT] ❗ Important

关键概念: 分区只能向「物理相邻」的未分配空间扩展。如果缩小 D 盘后产生的未分配空间和 Arch Linux 分区之间不相邻(中间隔着其他分区),你需要额外移动分区,这会增加复杂度和耗时。

先在 Windows 中查看当前分区布局

  1. 按 Win + R,输入 diskmgmt.msc,回车
  2. 截图或记录 整个磁盘的分区顺序、大小和类型
  3. 特别注意 D 盘和 Arch Linux 分区之间是否有其他分区

阶段 1:准备工作(在 Windows 中完成)

1.1 关闭 Windows 快速启动

快速启动会导致 NTFS 文件系统处于不干净状态,Linux 工具可能无法正确识别或操作分区。

  1. 打开 控制面板 → 电源选项
  2. 点击左侧 「选择电源按钮的功能」
  3. 点击 「更改当前不可用的设置」
  4. 取消勾选 「启用快速启动(推荐)」
  5. 点击 「保存修改」

1.2 关闭休眠功能(推荐)

休眠文件 hiberfil.sys 可能阻止分区缩小。以管理员身份打开 PowerShell:

powercfg /h off

1.3 关闭 BitLocker(如果已启用)

如果 D 盘启用了 BitLocker 加密,请先在 Windows 中解密:

  1. 打开 设置 → 隐私与安全 → 设备加密 (或搜索 BitLocker)
  2. 找到 D 盘,选择 「关闭 BitLocker」
  3. 等待解密完成

1.4 准备 GParted Live USB(或 Arch Linux 安装 U 盘)

你需要一个能启动 GParted 的 Live USB。有两种选择:

方案 A:使用 GParted Live(推荐)

  1. 从 gparted.org/download.php 下载 GParted Live ISO
  2. 使用 Rufus 或 Ventoy 将 ISO 写入 U 盘

方案 B:使用 Arch Linux 安装 U 盘

  • 如果你还保留着当初安装 Arch 时的安装 U 盘,可以直接使用
  • Arch Live 环境中可以安装 GParted:pacman -Sy gparted

阶段 2:在 Windows 中缩小 D 盘

2.1 打开磁盘管理

  1. 按 Win + R,输入 diskmgmt.msc,回车
  2. 或者右键点击 开始按钮 → 选择 「磁盘管理」

2.2 缩小 D 盘

  1. 找到 D 盘 对应的分区
  2. 右键 D 盘分区 → 选择 「压缩卷…」
  3. 等待系统计算可用空间
  4. 在 「输入压缩空间量(MB)」 中输入:51200(50GB = 50 × 1024 = 51200 MB)
  5. 点击 「压缩」

[!NOTE] ✏️ Note

如果系统显示可压缩的空间小于 51200 MB,可能是由于不可移动的系统文件。尝试以下方法:

  • 清空回收站
  • 禁用系统还原点:右键「此电脑」→ 属性 → 系统保护 → 选择 D 盘 → 配置 → 禁用
  • 重启后再试
  • 如果以上都不行,可以在后续用 GParted 来缩小

2.3 确认结果

操作完成后,你应该能在磁盘管理中看到 D 盘后面出现了 约 50GB 的「未分配」空间(显示为黑色条)。

[!WARNING] ⚠️ Warning

不要 在 Windows 磁盘管理中对这块未分配空间做任何操作(不要新建卷),直接保持未分配状态。


阶段 3:使用 GParted 扩展 Arch Linux 分区

这是最关键的一步,需要根据你的具体分区布局来操作。

3.1 从 Live USB 启动

  1. 插入准备好的 GParted Live USB 或 Arch 安装 U 盘
  2. 重启电脑
  3. 在启动时按对应按键进入 BIOS/UEFI 引导菜单(通常是 F2、F12、Delete 或 Esc)
  4. 选择从 USB 设备 启动
  5. 进入 GParted Live 环境(选择默认选项即可)

3.2 打开 GParted 并识别分区

  1. GParted 会自动启动(如果没有,从菜单中打开)
  2. 在右上角的 下拉菜单 中选择你的硬盘(如 /dev/sda 或 /dev/nvme0n1)
  3. 你会看到所有分区的图形化表示

此时,请确认以下关键信息:

  • 未分配空间(Unallocated)的位置
  • Arch Linux 根分区的位置(通常是 ext4 或 btrfs 文件系统)
  • 两者之间是否有其他分区

3.3 根据布局选择操作方案


情况 A:未分配空间与 Linux 分区相邻 ✅ 最简单

如果缩小 D 盘后的未分配空间刚好紧挨着 Arch Linux 分区(D 盘在 Linux 分区的左边),操作非常简单:

缩小前: [ D 盘 400G ][ Arch Linux 80G ]
缩小后: [ D 盘 350G ][ 未分配 50G ][ Arch Linux 80G ]

但这种情况下未分配空间在 Linux 分区的左边,你需要:

  1. 右键点击 Arch Linux 分区 → 选择 「Resize/Move」
  2. 将分区的左边界向左拖动,占满未分配空间
  3. 或者在 「Free space preceding」 中输入 0
  4. 点击 「Resize/Move」

如果未分配空间在 Linux 分区的右边:

  1. 右键点击 Arch Linux 分区 → 选择 「Resize/Move」
  2. 将分区的右边界向右拖动,占满未分配空间
  3. 点击 「Resize/Move」

情况 B:未分配空间与 Linux 分区之间有其他分区 ⚠️ 需要移动分区

缩小后: [ D 盘 350G ][ 未分配 50G ][ 恢复分区 ][ Arch Linux 80G ]

你需要先将中间的分区移动,使未分配空间与 Linux 分区相邻:

  1. 右键点击中间的分区(如恢复分区) → 选择 「Resize/Move」
  2. 将其向左拖动,使其占据未分配空间的左侧位置
  3. 点击 「Resize/Move」
  4. 现在未分配空间应该移到了 Linux 分区旁边
  5. 然后按 情况 A 的方式扩展 Linux 分区

[!WARNING] ⚠️ Warning

移动分区是高风险操作,尤其是移动 Windows 相关分区。移动过程非常耗时(可能数小时),期间绝对不能断电或中断。笔记本电脑请确保接通电源。


情况 C:使用新分区 + LVM 或挂载点(替代方案)

如果移动分区风险太大,可以考虑:

  1. 在未分配空间上创建一个新的 Linux 分区(ext4)
  2. 将其挂载到 Arch Linux 的某个目录(如 /home/extra)

这样不需要移动任何分区,是最安全的方案,但缺点是空间不是直接加到根分区上。

3.4 应用所有更改

  1. 确认所有待执行的操作(窗口底部会列出)
  2. 点击工具栏上的 绑色勾号 ✓(Apply All Operations)
  3. 在确认对话框中点击 「Apply」
  4. 耐心等待 操作完成,不要中断!

[!CAUTION] 🚨 Caution

此过程不可逆!一旦开始,严禁断电、拔出 U 盘或强制关机。如果涉及分区移动,可能需要 1-3 小时。

3.5 完成后关机

操作完成后,关闭 GParted,拔出 U 盘,正常关机。


阶段 4:验证与引导修复

4.1 尝试正常启动

  1. 先尝试启动 Arch Linux
  2. 再尝试启动 Windows

4.2 验证 Arch Linux 分区大小

启动进入 Arch Linux 后,打开终端运行:

# 查看分区大小
df -h

# 查看详细分区信息
lsblk

# 查看文件系统信息
sudo fdisk -l

确认根分区 / 的大小已经从 ~80G 增长到 ~130G。

4.3 如果 Arch Linux 无法启动(修复 GRUB)

如果移动了分区导致 GRUB 引导失败:

  1. 从 Live USB 再次启动
  2. 挂载 Arch Linux 分区:
# 查看分区设备名
lsblk

# 挂载根分区(替换 /dev/sdXn 为你的实际分区)
mount /dev/sdXn /mnt

# 如果使用 UEFI,挂载 EFI 分区
mount /dev/sdX1 /mnt/boot/efi   # 或 /mnt/boot,取决于你的配置

# chroot 进入系统
arch-chroot /mnt
  1. 重新安装 GRUB:
# UEFI 系统
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

# 重新生成配置
grub-mkconfig -o /boot/grub/grub.cfg
  1. 如果你使用的是 systemd-boot:
# 检查引导条目
bootctl status

# 确认配置文件中的分区 UUID 是否正确
blkid
cat /boot/loader/entries/*.conf

# 如果 UUID 变了,更新配置文件中的 UUID
  1. 退出 chroot 并重启:
exit
umount -R /mnt
reboot

4.4 如果 Windows 无法启动

通常缩小 D 盘不会影响 Windows 启动。但如果出问题:

  1. 使用 Windows 安装 U 盘启动
  2. 选择 「修复计算机」 → 「疑难解答」 → 「高级选项」 → 「启动修复」
  3. 或使用命令提示符:
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd

4.5 更新 fstab(如果分区 UUID 改变)

如果移动了分区,UUID 可能会改变。在 Arch Linux 中检查:

# 查看当前分区 UUID
blkid

# 查看 fstab 中配置的 UUID
cat /etc/fstab

# 如果不匹配,编辑 fstab
sudo nano /etc/fstab

常见问题 FAQ

Q: D 盘无法压缩到 50GB 怎么办?

A: 尝试以下操作后重试:

  1. 运行磁盘清理工具
  2. 关闭系统还原
  3. 禁用休眠 (powercfg /h off)
  4. 禁用页面文件(虚拟内存),重启后再缩小,缩小完再启用
  5. 运行磁盘碎片整理

Q: 是否可以在 Arch Linux 中直接操作?

A: 不能。正在运行的系统分区是被挂载的,无法对其进行大小调整。必须使用 Live USB 环境。

Q: btrfs 文件系统可以在线扩展吗?

A: 如果你的 Arch Linux 使用 btrfs,且未分配空间与分区相邻,可以在 GParted 中先扩展分区,然后在 Arch Linux 中运行:

sudo btrfs filesystem resize max /

Q: ext4 文件系统扩展后需要额外操作吗?

A: GParted 会自动调整文件系统大小,通常不需要额外操作。如果文件系统大小没有自动更新:

sudo resize2fs /dev/sdXn

Q: 操作大约需要多少时间?

A:

  • 如果只是简单扩展(情况 A):5-10 分钟
  • 如果需要移动分区(情况 B):1-3 小时,取决于数据量

推荐操作顺序清单

  • 备份所有重要数据(Windows 和 Linux)
  • 关闭 Windows 快速启动
  • 关闭休眠 (powercfg /h off)
  • 准备 GParted Live USB
  • 在 Windows 磁盘管理中缩小 D 盘 50GB
  • 确认出现 50GB 未分配空间
  • 从 GParted Live USB 启动
  • 在 GParted 中识别分区布局
  • 移动必要的分区(如需要)
  • 扩展 Arch Linux 根分区
  • 应用更改并等待完成
  • 重启并验证 Arch Linux 分区大小
  • 重启并验证 Windows 正常启动
  • 如有问题,修复引导