计划
核心目标:把盘1 交还给 NixOS —— 旧 Win 分区让位到盘尾,盘首腾给 NixOS(2026-10-08 定案)
【盘1 现有布局】
p1 BWINEFI 551 MiB vfat 旧 Win 的 ESP
p2 s500win 295.1 GiB ntfs 旧 Win 的 C 盘
未分配 约 1.57 TiB
【目标布局】
[NIXOS ESP 2 GiB][root 约 1.57 TiB(1609 GiB)ext4 → …………][BWINEFI][s500win]
盘首起连续排布;/s500data 是 root 内的目录,不单独划分数据分区
【执行步骤】
1. 搬移:把 BWINEFI 与 s500win 整体搬到盘尾(保留旧 Win,不删)
工具:傲梅分区助手 / MiniTool Partition Wizard / GParted
—— Windows 磁盘管理不支持移动分区
前置:sgdisk --backup 存分区表;s500win 内容已有 200G VHDX 副本兜底
复核:搬完先验固件引导菜单还能进 Windows
(GPT 下固件按分区 GUID 定位 ESP,搬移工具一般保留 GUID)
退路:万一引导失效,PE 里 bcdboot X:\Windows /s Y: /f UEFI 重建
2. 新建:腾出的盘首空间划两段
NIXOS ESP 2 GiB —— 克隆入盘1 时才写引导(见计3)
root 约 1.57 TiB ext4 —— 占其余全部
复核:分区表起止不重叠且无空洞;root 的 ext4 可 mount、可 fsck
【为什么 Win 放盘尾】将来若放弃物理 Win,腾出的 0.29 TiB 紧接 root 尾部,
可免费并入(growpart + resize2fs 在线完成)。当前 root 拿满,不留闲置洞。
【Win VM 数据剥离接口设计(保留设计,执行归「5. 浴火重生」)】
核心目标:D 盘数据从虚拟机中剥离回宿主机数据盘,实现 Win VM “无状态化”
1. 数据回迁:将移动硬盘中原 D 盘数据完整回迁至 /s500data
2. KVM XML 映射配置(在 VM 配置文件中添加):
<filesystem type='mount' accessmode='passthrough'>
<source dir='/s500data'/>
<target dir='s500data'/>
</filesystem>
【Win VM 环境】
3. 依赖安装:Win VM 内安装 WinFsp(VirtioFS 的 Windows 依赖)
4. 启用服务:以管理员权限注册并自启 VirtioFS Windows 服务
sc create VirtioFsSvc binpath="C:\Program Files\Virtio-Win\VioFS\virtiofs.exe"
sc config VirtioFsSvc start=auto
net start VirtioFsSvc
5. 盘符替换:将 VirtioFS 映射为系统盘符(如 Z: 盘或直接顶替原 D: 盘)
6. 重启验证:重启 VM,确认映射自动恢复且读写正常
【⚠️ 降级预案 (Plan B)】
若 VirtioFS 在 Windows 处理 >10GB 单文件时出现缓存击穿/性能骤降,
立即在 NixOS 宿主启用 Samba (SMB) 共享,Win VM 改用网络驱动器映射。执行清单
本计只做盘1 的分区几何,不碰盘2 现有系统,也不启动任何 VM。做完后机器仍从盘2 启动;克隆入盘1 在「3. 反客为主」。编号:S = 分区几何(Step)。(2026-10-08 新增,承接计1 移交的分区事项)
- 动作:用第三方工具(傲梅分区助手 / MiniTool Partition Wizard / GParted)把 BWINEFI(551 MiB)与 s500win(295.1 GiB)整体搬到盘尾;保留旧 Win,不删。Windows 磁盘管理不支持移动分区
- 前置:sgdisk --backup 存分区表;s500win 内容已有 200G VHDX 副本兜底
- 复核:搬完先验固件引导菜单还能进 Windows(GPT 下固件按分区 GUID 定位 ESP,搬移工具一般会保留 GUID);万一失效,PE 里 bcdboot X:\Windows /s Y: /f UEFI 重建
- 注意:物理搬移 0.29 TiB,中途断电 = 分区表损坏;可再搬回来,不是单向门
- 已完成(2026-10-09 实测):p1 BWINEFI 起始 LBA 3380763320、p2 s500win 结束 LBA 4000797326(≈盘尾 4000797359),盘首腾出 34..3380763319 共 1.5737 TiB 连续空闲;两个分区的类型 GUID 未变
- 动作:腾出的盘首空间划两段 —— NIXOS ESP 2 GiB(克隆入盘1 时才写引导)、root 约 1.57 TiB(1609 GiB,ext4,占其余全部)
- 复核:分区表起止不重叠且无空洞;root 的 ext4 可 mount、可 fsck
- 注意:不单独划分数据分区;/s500data 是 root 内的目录(见计3)
- 已完成(2026-10-09,经 pkexec 以 root 执行;脚本带前置断言,p1/p2 位置或类型不符即中止)
- 结果:
p3 NIXESP LBA 2048..4196351(2.00 GiB)vfat FAT32 / LABEL=NIXESP / UUID=8BE3-50EF / PARTUUID=f4bb77fa-b2be-4a83-966d-fc1e28ef1dd5
p4 nixos-root LBA 4196352..3380763319(1610.07 GiB)ext4 / LABEL=nixos-root / UUID=75ebd049-5ac5-43fe-a290-2cddeb7b748e / PARTUUID=da073886-aa65-47f3-9234-cb4663e55d52 - 实测验证(非“应该能用”):fsck.ext4 -n 无错(12 个 inode / 422070871 块,0% 不连续);ext4 挂载 rw 后写入→回读→删除均正常,df 报 1.6T 可用;vfat 同样挂载 rw 并读写正常,df 报 2.0G 可用
- 动作:记录最终分区表(起止 LBA + PARTUUID + 卷标)存档,供计3 克隆时直接用
- 复核:盘1:ESP 2 GiB + root ~1.57 TiB + BWINEFI + s500win 四段,无未分配空洞;盘2:/boot 与 / 未变,系统仍可正常启动
- 盘1 四段无空洞:p3 2048..4196351 → p4 4196352..3380763319 → p1 3380763320..3381891727 → p2 3381891728..4000797326
- 盘2 未受影响(实测):/ 与 /boot 挂载正常;nvme0n1p2 类型 GUID 仍为 0FC63DAF-8483-4772-8E79-3D69D8477DE4(Linux filesystem)、分区名 root —— 分区工具报的「root 标记损坏」经查是它不认识 ext4 的误报,分区表一个字未损
- 存档位置:/home/cat/.hermes/profiles/nixos-u533b-u751f/backups/partition-tables/(两盘 GPT 头/尾各 1 MiB 原样镜像 + sfdisk 文本 dump + blkid);操作脚本在同级 partition-scripts/