前言
大家熟悉的docker、Python,但对于Windows上有一套开配合开发的相对底层的环境设置,包括powershell、winget、WSL、还有开发驱动器什么的,我准备系统学一下,不然地基不牢,也盖不起冲天高楼~
本节,介绍在 Windows 11 上设置开发驱动器。开发人员驱动器是一种新形式的存储卷,可用于提高关键开发人员工作负荷的性能。
往期参考
【基础】Windows开发设置入门1:各种终端比较-CSDN博客
【基础】Windows开发设置入门2:Windows 终端Windows Terminal-CSDN博客
本文对应官网文档
在 Windows 11 上设置开发驱动器 | Microsoft Learn
正文开始。。。。。。
一、开发驱动器的定义与优势
开发驱动器(Dev Drive)是 Windows 11 为开发者设计的专用存储卷,基于 弹性文件系统(ReFS) 和 Microsoft Defender 防病毒性能模式优化,可显著提升开发工作负载(如代码编译、包缓存管理)的性能。其优势包括:
- 性能提升:通过延迟防病毒扫描、优化文件访问速度,编译速度可提高高达 30% 。
- 安全控制:开发者可灵活设置信任级别,平衡安全与性能 。
- 专用存储:适合存储源代码、项目文件、包缓存(如 npm、NuGet)等,但不建议用于安装开发工具(如 Visual Studio)。
二、先决条件
-
系统要求:
- Windows 11 Build 10.0.22621.2338 或更高版本(需更新至最新系统)。
- 内存:至少 8GB(推荐 16GB)。
- 磁盘空间:至少 50GB 可用空间 。
- 管理员权限:本地管理员权限。
三、创建开发驱动器的详细步骤
存储形式说明
首先明确一下,创建开发驱动器有两种形式,一个是物理磁盘,一个是虚拟磁盘:
1、物理磁盘:创建磁盘分区,直接使用物理磁盘,要求是“未分配空间”,就是没使用的磁盘空间,创建卷,然后有选"创建开发人员驱动器”选项,进行格式化,优点:更快的性能;缺点:不太灵活,因为调整分区的大小可能更为复杂且风险更大,而且可移植性较低,不像虚拟磁盘,是一个文件,可以拷来拷去。
2、虚拟磁盘:不需要单独的物理磁盘,在现有磁盘空间,创建虚拟硬盘 (VHD) ,将开发人员驱动器存储在虚拟硬盘 (VHD) 中。缺点:可能会稍微降低性能。 优点:VHD 能动态调整大小(如果需要高效管理磁盘空间), VHD 也高度可移植,允许将 VHD 文件传输到其他计算机或备份位置。
但请记住,将 VHD 托管在固定磁盘(HDD 或 SSD)上时,不建议复制 VHD,而应将其移至其他计算机,然后继续将其用作开发人员驱动器。
下面是操作步骤,本人只验证了方法1,方法2供参考。
方法 1:通过系统设置(GUI)=》本文验证方法
-
进入存储设置:
打开 设置(Win + I
)→ 系统 → 存储 → 高级存储设置 → 磁盘和卷 。
选择创建方式,点击 “创建开发人员驱动器”,进入下面界面:
选择以下三种方式之一:
- 1)创建新 VHD/VHDX(推荐):无需调整现有分区,避免数据丢失,就是上面所说的用“虚拟磁盘”的形式 。
- 2)调整现有卷大小:需确保原分区有至少 50GB 未分配空间 ,这是用“物理磁盘”的形式,但需要,现从调整现有磁盘大小,中划分一块磁盘空间出来。
- 3)使用未分配空间(如果有):直接在空白磁盘区域创建 ,这也是用“物理磁盘”的形式,直接使用未分配的磁盘空间。
这三种方式分别说明如下。
1)创建新的 VHD
选择创建新的 VHD选项,进入如下界面:
- 虚拟硬盘名称:为 VHD(开发驱动器)命名。
- 位置:指定计算机上开发驱动器 VHD 所在的目录路径。
- 虚拟硬盘大小:分配将分配给卷使用的磁盘空间量,最小大小为 50 GB。
- 虚拟硬盘格式:
- VHD:支持最大大小为 2040 GB 的虚拟磁盘。
- VHDX(推荐):支持最大 64 TB,并针对因停电等问题导致的意外 IO 故障提供更具弹性的保护。
- 磁盘类型:
- 固定大小 - 此虚拟硬盘文件在创建时分配了最大大小。
- 动态扩展 - 随着数据被写入磁盘,虚拟硬盘文件会增长到其最大大小。 (推荐使用)
本文填写示例:
点击创建:
MBR是比较传统的分区表,而GPT是较新的标准。
GPT (GUID 分区表) 与 MBR (主启动记录) 核心区别参考:
特性 GPT (推荐) MBR 兼容性 仅支持 UEFI 启动的现代系统(Windows 11/10/8+,Linux 等) 兼容传统 BIOS 和旧系统(如 Windows 7 及更早版本) 最大磁盘容量 支持 18EB (艾字节) ,适合大容量 SSD/HDD 最大 2TB,超过此容量可能导致分区无法识别 分区数量 理论上无限制(Windows 中最多 128 个主分区) 最多 4 个主分区(需扩展分区才能创建更多逻辑分区) 数据安全性 通过 冗余分区表备份 防止数据损坏 无备份机制,分区表损坏可能导致数据丢失 系统启动 必须搭配 UEFI 固件引导系统 可通过 BIOS 或 UEFI (CSM 模式) 引导 适用场景 推荐用于现代设备(如 SSD、NVMe 硬盘) 仅限旧设备或需要兼容传统系统的外接存储设备
按默认选项,点击“初始化”:
填写标签,驱动器号,高级选项有,“要装入的文件夹路径”必须是空的文件夹,然后点击“格式”,在系统磁盘和卷中,就会增加一个虚拟磁盘,并且磁盘下面有一个卷,即Refs类型的开发驱动器:
这就完事了,你在电脑里就能看到:
在创建开发驱动器的文件夹中,可以看到这个vhdx的文件,就是存放开发驱动器F盘内容的,实际存储位置。
2)调整现有卷的大小
-
选择要调整大小的卷。
-
为卷选择新大小。 你需要至少有 50 GB 的未分配空间可用,这是开发驱动器所需的最小大小。 设置大小后,选择“下一步”。
-
要在新的可用空间上设置开发驱动器的格式,请指定“标签”(驱动器名称)、“驱动器号”和“大小”分配,就和前边虚拟磁盘创建开发驱动器步骤一样了。
3)使用现有磁盘上的未分配空间
要查找和使用现有驱动器上的未分配空间,可以打开系统>存储>磁盘和卷,浏览页面以查看是否有任何存储空间被列为“未分配”。 选择创建卷,然后系统会提供创建简单卷(标准 NTFS 存储卷)和“创建开发人员驱动器”选项,步骤与上面相同。
方法 2:通过命令行(管理员权限)
- 创建 VHDX(可选):
New-VHD -Path "D:\DevDrive.vhdx" -SizeBytes 50GB -Dynamic
- 挂载并格式化:
diskpart
> select vdisk file="D:\DevDrive.vhdx"
> attach vdisk
> create partition primary
> format FS=ReFS quick label="DevDrive" /DevDrv
> assign letter=E
- 或直接格式化现有驱动器:
Windows CMD 命令:
Format E: /DevDrv /Q # 快速格式化并标记为开发驱动器 [[4, 12]]
PowerShell 命令
Format-Volume -DriveLetter D -DevDrive
四、开发驱动器的使用
应该在开发驱动器上放置什么内容?
开发驱动器适用于:
- 源代码存储库和项目文件
- 包缓存
- 生成输出和中间文件
在开发驱动器上存储包缓存
包缓存是应用程序用于存储已安装软件的文件的全局文件夹位置。 当你想要更新、卸载或修复已安装的软件时,需要这些源文件。 Visual Studio 是将其大部分数据存储在包缓存中的应用程序。 更改环境变量后,可能需要重启所有打开的控制台窗口,或重新启动设备 ,以便应用新值。
-
Npm 缓存 (NodeJS):在开发驱动器中创建 npm 缓存目录(例如
D:\packages\npm
),然后将全局环境变量npm_config_cache
设置为该路径(例如setx /M npm_config_cache D:\packages\npm
)。 如果已在计算机上安装 NodeJS,请将%AppData%\npm-cache
的内容移动到此目录中。 (在某些系统上,npm 缓存可能位于%LocalAppData%\npm-cache
中)。 有关详细信息,请参阅 npm 文档:npm-cache 和 npm config: cache。 -
NuGet 全局包文件夹:dotnet、MSBuild 和 Visual Studio 可使用 NuGet 全局包文件夹。 在 CopyOnWrite (CoW) 文件系统中创建特定于用户的 NuGet 目录。 例如:
D:\<username>\.nuget\packages
。 使用以下方法之一将默认位置的全局包文件夹更改为新创建的文件夹(以便管理全局安装的包):-
将全局环境变量
NUGET_PACKAGES
设置为该路径。 例如:setx /M NUGET_PACKAGES D:\<username>\.nuget\packages
。 -
在配置设置中将
globalPackagesFolder
(使用PackageReference
时)或repositoryPath
(使用packages.config
时)设置为该路径。 -
将
RestorePackagesPath
MSBuild 属性(仅限于 MSBuild)设置为该路径。要验证全局包文件夹,请运行 dotnet nuget locals 命令:
dotnet nuget locals global-packages --list
。 此还原操作会将包安装并下载到新路径中。 可以删除默认的 NuGet 全局包文件夹。
-
-
vcpkg 缓存:在开发驱动器中创建 vcpkg 缓存目录(例如
D:\packages\vcpkg
),然后将全局环境变量VCPKG_DEFAULT_BINARY_CACHE
设置为该路径(例如setx /M VCPKG_DEFAULT_BINARY_CACHE D:\packages\vcpkg
)。 如果已安装包,请将%LOCALAPPDATA%\vcpkg\archives
或%APPDATA%\vcpkg\archives
的内容移动到此目录中。 有关详细信息,请参阅 vcpkg 文档:vcpkg 二进制缓存。 -
Pip 缓存 (Python):在开发驱动器中创建 pip 缓存目录(例如
D:\packages\pip
),然后将全局环境变量PIP_CACHE_DIR
设置为该路径(例如setx /M PIP_CACHE_DIR D:\packages\pip
)。 如果已在计算机上还原 pip 包和 Wheel 包,请将%LocalAppData%\pip\Cache
的内容移动到此目录中。 有关详细信息,请参阅 pip 文档:pip 缓存,并参阅 StackOverflow 中的在 Linux 上更改 pip 缓存的目录?。 -
Cargo 缓存 (Rust):在开发驱动器中创建 Cargo 缓存目录(例如
D:\packages\cargo
),然后将全局环境变量CARGO_HOME
设置为该路径(例如setx /M CARGO_HOME D:\packages\cargo
)。 如果已在计算机上还原 Cargo 包,请将%USERPROFILE%\.cargo
的内容移动到此目录中。 有关详细信息,请参阅 Cargo 文档:Cargo 环境变量。 -
Maven 缓存 (Java):在开发驱动器中创建 Maven 缓存目录(例如
D:\packages\maven
),然后设置全局环境变量MAVEN_OPTS
以将配置设置添加到该路径(例如setx /M MAVEN_OPTS "-Dmaven.repo.local=D:\packages\maven"
)。 将%USERPROFILE%\.m2\repository
的内容移到此目录(这仅包括依赖项、插件和 Maven 下载到repository
文件夹中并用于项目的其他工件)。 有关详细信息,请参阅 Maven 文档,并参阅 StackOverflow 中的如何永久指定 .m2 文件夹或 settings.xml 的备用位置?。 -
Gradle 缓存 (Java):在开发人员驱动器中创建 Gradle 缓存目录,例如
D:\packages\gradle
。 然后,将全局环境变量GRADLE_USER_HOME
设为指向该路径;例如,在命令行中使用setx /M GRADLE_USER_HOME "D:\packages\gradle"
以将其设为系统范围内的设置。 设置此变量后,Gradle 将为其缓存和配置文件使用指定目录 (D:\packages\gradle
)。 如果存在现有 Gradle 文件,请将%USERPROFILE%\.gradle
的内容移至此新目录。 有关更多详细信息,可参考 Gradle 文档并浏览社区资源(例如 StackOverflow),以便获取有关管理 Gradle 配置和缓存目录的提示。
五、如何删除开发驱动器
打开 Windows 设置菜单,然后依次选择存储、高级存储设置和磁盘和卷,可在其中查找设备上存储卷的列表。 选择要删除的开发人员驱动器存储卷旁边的“属性”。 在驱动器的属性中,你将在格式标签下找到删除选项。
此时,开发人员驱动器将被删除。再分离虚拟磁盘,以便可以进一步删除托管开发人员驱动器的 VHD 文件,具体请执行以下步骤:
- 通过在任务栏的搜索框中输入“计算机管理”来打开磁盘管理工具。 在“存储”标题下选择磁盘管理。 选择开发人员驱动器的磁盘(而不是卷)。 右键单击托管开发人员驱动器的所选磁盘,然后从显示的菜单中选择分离 VHD。
- 随即显示一个弹出窗口,告知你分离虚拟硬盘会导致其不可用。
- 分离后,即可删除 VHD文件,回收该 VHD 使用的存储空间。
六、优化与安全配置
什么是“受信任的”开发驱动器?
在原始格式设置期间,会使用系统注册表中存储的标志自动将开发人员驱动器指定为受信任,从而默认提供最佳性能。 受信任的开发驱动器意味着使用该卷的开发人员对存储在其中的内容的安全性具有很高的信心。
将开发驱动器指定为受信任的驱动器:
- 通过右键单击并选择“以管理员身份运行”,使用提升的权限打开 PowerShell(或 CMD)。
- 要将开发驱动器指定为受信任的驱动器或不受信任模式,请输入以下命令(PowerShell)
- 受信任模式(默认):启用异步防病毒扫描,平衡性能与安全:
fsutil devdrv trust F: # F 为驱动器号
- 不受信任模式:强制同步扫描(安全性更高,性能较低):
fsutil devdrv untrust F:
- 要确认开发驱动器是否受信任,请输入以下命令:
fsutil devdrv query F:
什么是 Microsoft Defender 性能模式?
Microsoft Defender 性能模式现已在 Windows 11 上作为一项新的 Microsoft Defender 防病毒功能提供。 此功能可降低 Microsoft Defender 防病毒扫描对存储在指定开发驱动器上的文件的性能影响。
要启用性能模式,必须将开发驱动器指定为受信任的驱动器,并且 Microsoft Defender 实时保护必须设置为“开启”。
-
防病毒排除:
- 在 Windows 安全中心 → 病毒和威胁防护 → 管理设置 → 排除项 中添加开发驱动器,减少扫描干扰 。
七、注意事项与常见问题
-
限制:
- 无法将现有普通驱动器直接转换为开发驱动器,需重新格式化 。
- 开发驱动器不适用于安装应用程序或系统文件 。
-
故障排查:
- 驱动器未显示:检查是否已初始化并分配驱动器号。
- 权限问题:以管理员身份运行命令提示符或 PowerShell 。
- 版本兼容性:确保系统版本符合要求(
winver
命令查看)。
通过以上步骤,开发者可以高效配置 Windows 11 开发驱动器,显著提升开发效率。建议定期备份重要数据,并根据项目需求调整驱动器配置。