全部文章

Windows 重装部署清单(详情)

面向重装 / 新装系统后的严格顺序手册,覆盖盘符规划、环境变量、包管理器分工、工具恢复与验证。

目录 39 节

Windows 重装部署清单(详情)

  • 主入口:Windows 重装部署顺序指南
  • 默认基线:Windows 主开发
  • 适用场景:重装 / 新装系统后,按依赖关系恢复开发机
  • 核心原则:这不是购物清单,而是顺序手册

适用前提与默认工作流

本手册默认以下前提:

  • Windows 是主要代码、运行时和命令执行环境
  • WSL 保留给 Linux 工具链验证、Docker 集成和兼容性场景
  • winget / scoop / mise分工建议,不是绝对强制
  • 但恢复顺序本身是强约束:先规划,再写环境变量,再装工具

如果你打算把 WSL 作为主开发环境,这份顺序仍可参考,但阶段 5 到 6 的重心会不同。

盘符规划与目录树

先定目录,再开始任何安装。默认按双盘机器规划:

路径用途
C:\系统、用户目录、Windows 组件、必须跟随系统安装器的软件
D:\Workspace\代码仓库和长期保留的项目目录
D:\Tools\可迁移工具数据、版本管理器数据、局部二进制
D:\Cache\可重建缓存,例如 Bun、uv
D:\Backup\导出清单、SSH 公钥、配置备份、安装日志

如果机器只有单盘,统一降级为:

C:\Workspace\
C:\Tools\
C:\Cache\
C:\Backup\

推荐目录树

D:\
├─ Workspace\
│  ├─ domivault\
│  └─ other-projects\
├─ Tools\
│  ├─ Scoop\
│  ├─ ScoopGlobal\
│  ├─ mise\
│  │  ├─ data\
│  │  └─ config\
│  └─ Bun\
├─ Cache\
│  ├─ uv\
│  └─ bun\
└─ Backup\
   ├─ machine-setup\
   ├─ ssh\
   └─ exports\

先把这些路径决定好,后面所有环境变量和工具安装都围绕它展开。

包管理器分工原则

推荐分工如下:

入口推荐职责
winget系统级或 GUI 软件优先,例如 PowerShell、VS Code、Docker、浏览器
scoopCLI 工具优先,例如开发辅助命令和便于迁移的工具
mise语言运行时与版本切换优先,例如 Node、Python
manual仅保留确有理由的例外,例如当前仍用官方脚本安装的 Bun

这套分工是为了降低以下问题:

  • 同一个工具被多个入口重复管理
  • PATH 顺序随安装顺序漂移
  • 重装后无法判断“到底该从哪一个入口升级”

环境变量初始化顺序

顺序固定为:

  1. 先定目录
  2. 再写用户级环境变量
  3. 再安装 scoop / mise
  4. 再装语言与 CLI
  5. 最后装 GUI、WSL、Docker 和恢复配置

需要先写清楚的变量

变量名推荐值说明
WORKSPACE_ROOTD:\Workspace文档约定的仓库根目录
CACHE_ROOTD:\Cache文档约定的缓存根目录
SCOOPD:\Tools\ScoopScoop 用户目录,安装前就要设好
SCOOP_GLOBALD:\Tools\ScoopGlobal可选,全局安装目录
MISE_DATA_DIRD:\Tools\mise\datamise 数据目录
MISE_CONFIG_DIRD:\Tools\mise\config可选,mise 配置目录
UV_CACHE_DIRD:\Cache\uvuv 缓存目录
BUN_INSTALLD:\Tools\BunBun 安装目录

用户级环境变量示例

[Environment]::SetEnvironmentVariable('WORKSPACE_ROOT', 'D:\Workspace', 'User')
[Environment]::SetEnvironmentVariable('CACHE_ROOT', 'D:\Cache', 'User')
[Environment]::SetEnvironmentVariable('SCOOP', 'D:\Tools\Scoop', 'User')
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', 'D:\Tools\ScoopGlobal', 'User')
[Environment]::SetEnvironmentVariable('MISE_DATA_DIR', 'D:\Tools\mise\data', 'User')
[Environment]::SetEnvironmentVariable('MISE_CONFIG_DIR', 'D:\Tools\mise\config', 'User')
[Environment]::SetEnvironmentVariable('UV_CACHE_DIR', 'D:\Cache\uv', 'User')
[Environment]::SetEnvironmentVariable('BUN_INSTALL', 'D:\Tools\Bun', 'User')

写完后重新打开 PowerShell 7 再继续。

每阶段操作步骤

1. 规划盘符与目录结构

目标

把代码、工具数据、缓存和备份目录分开,避免后续迁移时重新搬家。

操作

  1. 确认机器是否有第二块数据盘
  2. 创建 WorkspaceToolsCacheBackup
  3. 决定单盘降级路径
  4. 记录到 Backup\machine-setup\ 或你自己的安装记录中

本阶段不要做的事

  • 不要先装 Scoop 再想目录放哪
  • 不要先装语言运行时再回头改缓存目录
  • 不要让仓库先散落在 Downloads 或桌面上

2. 系统引导与主 Shell

目标

保证后续命令都从稳定的 PowerShell 7 与 winget 发起。

操作

  1. 检查 winget 是否可用
  2. 安装 PowerShell 7
  3. 确认后续命令统一在 PowerShell 7 中执行
winget --version
winget install --exact --id Microsoft.PowerShell --accept-package-agreements --accept-source-agreements
pwsh

3. 包管理器策略与基础 PATH

目标

先把用户级环境变量和包管理职责固定,再安装 Scoop。

操作

  1. 先写入上一节的用户级环境变量
  2. 重新打开 PowerShell 7
  3. 安装 Scoop
  4. 仅按需添加 bucket,例如 extras
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
scoop --version
scoop bucket add extras

这一阶段要确认的事

  • PATH 中没有旧版 Node 管理器或 Python 安装器残留
  • SCOOP 目录已经落到规划路径
  • 你知道后面哪些工具会交给 winget,哪些交给 mise

4. Git / SSH / 基础命令行工具

目标

先恢复仓库访问能力和基础命令入口。

操作

winget install --exact --id Git.Git --accept-package-agreements --accept-source-agreements
git --version
ssh-keygen -t ed25519 -C "your@email"

然后恢复:

  • user.name / user.email
  • init.defaultBranch
  • core.autocrlf
  • SSH 公钥备份
  • 签名策略

如果你有 gitconfig 或 dotfiles,这一阶段就该恢复,而不是等编辑器装好后再说。

5. mise 与语言运行时

目标

先恢复版本管理器,再恢复语言本体。

操作

winget install --exact --id jdx.mise --accept-package-agreements --accept-source-agreements
mise activate pwsh | Out-String | Invoke-Expression
mise --version

mise use -g node@25.9.0
mise use -g python@3.14.4

winget install --exact --id astral-sh.uv --accept-package-agreements --accept-source-agreements
powershell -c "irm bun.sh/install.ps1 | iex"

关键顺序

  • mise
  • node
  • python
  • uv
  • 最后才是 Bun 这种例外入口

不要把 Node、Python 官方安装器和 mise 长期混作主入口。

6. 编辑器、WSL、Docker

目标

等命令行和运行时稳定后,再恢复开发平台的大件软件。

操作

winget install --exact --id Microsoft.VisualStudioCode --accept-package-agreements --accept-source-agreements
wsl --install -d Debian
wsl --update
winget install --exact --id Docker.DockerDesktop --accept-package-agreements --accept-source-agreements

之后完成以下动作:

  • VS Code 恢复扩展、profiles、终端设置
  • WSL 确认发行版、默认用户和更新状态
  • Docker Desktop 打开 WSL Integration

7. 默认应用、隔离工具、AI 工具

这一阶段才补:

  • Chrome
  • Firefox
  • Bandizip
  • PotPlayer
  • Sandboxie-Plus
  • Cherry Studio

它们很重要,但都不是前面阶段的前置条件,不要插队。

8. 恢复与验证

最后统一恢复:

  • Git 全局配置、SSH、公钥备份与签名策略
  • VS Code 扩展、settings.json、终端 profiles
  • Docker 与 WSL 集成配置
  • 浏览器登录状态、扩展和默认应用
  • Cherry Studio 的工作区、模型配置和 API 设置

同时把安装记录写回:

D:\Backup\machine-setup\

阶段验证命令

每个阶段至少跑一次以下验证:

winget --version
pwsh -NoLogo -Command "$PSVersionTable.PSVersion"
scoop --version
git --version
mise --version
node --version
python --version
uv --version
bun --version
code --version
wsl --status
docker version

建议把结果截图或写进安装记录,避免下次又从头排查。

重装后恢复项

优先恢复这些内容,而不是继续装更多软件:

  • SSH 密钥和公钥备份
  • .gitconfig、全局忽略文件、签名策略
  • VS Code settings.json、扩展同步、profiles
  • 终端配置和 PowerShell profile
  • Docker 登录、镜像加速和 WSL Integration
  • 浏览器同步、扩展和常用站点登录
  • AI 客户端工作区、模型目录和 API 配置

常见错误顺序示例

先装 Scoop,再回头改目录

结果通常是:

  • SCOOP 根目录留在用户目录
  • 迁移时要重新 reset / rebuild shim
  • 后续文档记录与实际机器不一致

先装 Node / Python,再决定版本管理器

结果通常是:

  • PATH 顺序被旧安装器抢走
  • mise 装好了但实际版本没切过去
  • VS Code 和终端看到的版本不一致

太早装 Docker / 浏览器 / AI 工具

结果通常是:

  • 主环境还没稳定,注意力已经被 GUI 配置打散
  • 出问题时很难判断是 PATH、运行时还是 Docker 集成

把 WSL 当主环境,但文档和目录却按 Windows 主开发走

结果通常是:

  • 仓库放置位置混乱
  • Git / SSH / Node / Python 两边各一套
  • Docker、VS Code Remote、终端配置互相打架

相关文档

阅读建议
  • - 先读标题和摘要,再结合目录决定从哪个章节开始精读。
  • - 看到具体命令、配置或步骤时,尽量在自己的环境里同步验证。
  • - Windows 相关文档通常要留意管理员权限、终端类型和路径差异。
适合谁看
  • - 希望把零散经验整理成长期可复用工作流的人
  • - 以 Windows 为主力系统,希望提升稳定性和效率的用户
  • - 希望阅读时顺手建立自己的操作清单或收藏体系的人
执行前检查
  • - 先浏览标题、摘要和目录,带着问题阅读会更高效
  • - 确认是否需要管理员终端,并在高风险操作前创建还原点或备份
  • - 如果页面里提到相关文档,尽量一起打开对照,效果通常更完整
同类内容