Dev Drive & Defender

How to Create a Dev Drive (ReFS) and Enable Defender Performance Mode

Introduction
If you write code on Windows, you’ve probably felt the pain of slow dependency installs, sluggish git status, or heavy antivirus overhead on huge source trees. Windows 11’s Dev Drive solves this by giving you a developer-optimized volume based on ReFS, paired with Microsoft Defender’s Performance Mode to reduce scanning overhead for trusted developer workloads. This guide explains exactly what Dev Drive and Performance Mode are, when they help, how to create and verify them, and how to tune and troubleshoot for maximum throughput.

What you’ll get:

  • A practical explanation of Dev Drive, ReFS, and Defender Performance Mode
  • Step-by-step instructions to create a Dev Drive via GUI or PowerShell
  • How to verify that Performance Mode is enabled and effective
  • Best practices for folder layout, exclusions, and integrity settings
  • Troubleshooting playbook and benchmarking ideas

Use this as your definitive, bookmarkable playbook for speeding up Git, Node/PNPM/Yarn, NuGet, Gradle, Unreal/UBT builds, and large artifact caches on Windows 11.

H2: Overview: What Dev Drive, ReFS, and Defender Performance Mode Do
H3: Dev Drive in plain language
A Dev Drive is a special-purpose data volume for developer workloads on Windows 11. It uses ReFS (Resilient File System) and default settings tuned for developer patterns (millions of small files, frequent metadata updates, heavy read/write churn). Dev Drive is separate from your system drive and is intended to host:

  • Source code and repos (.git, .hg)
  • Dependency trees (node_modules, packages, NuGet, pip, Cargo, Gradle caches)
  • Build intermediates and outputs (obj, bin, DerivedDataCache, Binaries/Intermediate)
  • Toolchains, SDKs, and container layers (Docker image/cache data)

H3: Why ReFS helps
ReFS is a modern Windows file system designed for resiliency and performance. For developer workloads, its metadata design and default Dev Drive tuning can improve:

  • Directory enumeration (faster git status, faster npm/pnpm/yarn operations)
  • Small-file I/O (dependency trees, headers, shared object stubs)
  • Snapshot-like behaviors and data integrity options designed to minimize overhead when not needed

H3: Microsoft Defender Performance Mode
Defender Performance Mode is a scanning profile that automatically applies to Dev Drive volumes when Microsoft Defender Antivirus is your active AV. It reduces antivirus overhead for trusted dev workloads while maintaining protection. The result: less friction during checkouts, installs, and builds.

Typical scenarios where Dev Drive shines:

  • Front-end stacks (Node + NPM/Yarn/PNPM) with massive node_modules trees
  • C/C++ builds (MSBuild, Ninja, CMake, Unreal/UBT) that hammer file metadata
  • .NET/NuGet restore/build loops
  • Python/pip/venv and scientific packages
  • Java/Gradle/Maven caches
  • Git operations over large monorepos or many submodules
  • Docker image extraction and build cache on Windows

H2: Quick Reference Table (Commands You’ll Use Often)
Command | Purpose | Example Output
— | — | —
Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion’ | Check Windows version/build | DisplayVersion: 23H2; CurrentBuild: 22631
Get-Command -Name “DevDrive” | Check if Dev Drive cmdlets exist | CommandType: Function; Name: New-DevDrive
Get-Volume -FileSystem ReFS | List ReFS volumes | DriveLetter FileSystem Label HealthStatus Size Remaining; R ReFS DevDrive Healthy 476 GB 320 GB
fsutil fsinfo volumeinfo R: | Inspect volume info | File System Name: ReFS; Supports Integrity Streams: Yes
fsutil integrity query R:\src | Check ReFS integrity setting for a directory | Integrity on R:\src: DISABLED
fsutil integrity set R:\src disable | Disable integrity for heavy-churn folders | Successfully disabled integrity on R:\src
Get-MpComputerStatus | Verify Defender status | AntivirusEnabled: True; RealTimeProtectionEnabled: True
Get-MpPreference | View Defender exclusions | ExclusionPath: {R:.git, R:\node_modules}
Measure-Command { git -C R:\repo status } | Simple timing benchmark | TotalMilliseconds : 842.63
robocopy R:\dataset S:\dataset /E /NFL /NDL /NP /NJH /NJS | File copy benchmark | Times: Total: 0:00:12, Ended: …

Note: Replace R: and S: with your Dev Drive/NTFS letters as applicable.

H2: Setup and Key Concepts
H3: Prerequisites

  • Windows 11 23H2 or later recommended (Dev Drive is generally available here). Some Moment updates on 22H2 also support Dev Drive, but 23H2+ is the safe baseline.
  • Administrator rights to create/format a new volume or a VHDX-backed Dev Drive.
  • Sufficient free space (at least 50 GB recommended, 100–250 GB is common).
  • Microsoft Defender Antivirus as the active antivirus if you want Performance Mode. If a third-party AV is active, Performance Mode is not available.
  • Backup important data before partitioning or major storage changes.
See also  Dev Drive vs NTFS: Real-World Git/Node Build Benchmarks

H3: Check your Windows version and Defender status
Run in PowerShell (as a normal user is fine):

  • Windows version
    PowerShell:
    Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion’ | Select-Object DisplayVersion, CurrentBuild, CurrentBuildNumber

  • Defender status
    PowerShell:
    Get-MpComputerStatus | Select-Object AntivirusEnabled, AMServiceEnabled, RealTimeProtectionEnabled

AntivirusEnabled and RealTimeProtectionEnabled should be True for Performance Mode to apply once you create a Dev Drive.

H3: ReFS and Dev Drive support

  • Dev Drive uses ReFS automatically when created via the Windows Settings Dev Drive wizard.
  • Creating a generic ReFS volume outside the Dev Drive flow may be limited on some editions/builds. If you can’t format ReFS manually, use the Dev Drive wizard in Settings or upgrade to Windows 11 23H2+.

H2: Step-by-Step Guide
H3: Step 1 — Decide: GUI or PowerShell

  • Easiest: Use Settings to create a Dev Drive (VHDX-backed or from unallocated disk space).
  • Scriptable: Use PowerShell. Some builds provide a friendly New-DevDrive cmdlet. If not, you can still create a ReFS volume manually.

H3: Step 2 — Create a Dev Drive using the GUI (recommended)

  1. Open Settings > System > Storage.
  2. Click Advanced storage settings > Disks & volumes.
  3. Click Create Dev Drive.
  4. Choose:
    • Create as a virtual disk (VHDX) stored on an existing drive, or
    • Use unallocated space on a physical disk.
  5. Size: 100–250 GB is a good starting point for active repos and caches.
  6. Assign a drive letter (for example, R:) and a label (DevDrive).
  7. Finish and let Windows create and mount the new ReFS Dev Drive.

Verification:

  • Press Win + X > Disk Management or run Get-Volume -DriveLetter R in PowerShell. You should see FileSystem ReFS and Label DevDrive.

H3: Step 3 — Create a Dev Drive via PowerShell (if cmdlet exists)
Check if the cmdlet is available:
PowerShell:
Get-Command -Name “DevDrive

If you see New-DevDrive (or similar), you can use it:
PowerShell (example):

Creates a 200 GB Dev Drive on a VHDX file under C:\Dev\

New-Item -ItemType Directory -Path “C:\Dev” -Force | Out-Null
$VhdPath = “C:\Dev\DevDrive.vhdx”

Size example: 200GB

New-DevDrive -Size 200GB -VhdPath $VhdPath -DriveLetter R -Label “DevDrive”

Notes:

  • Parameters may vary by build; use Get-Help New-DevDrive -Detailed for exact syntax.
  • The Dev Drive cmdlet sets recommended defaults and ensures the volume is recognized as a Dev Drive so Performance Mode is applied.

H3: Step 4 — Create a ReFS Dev Drive manually (universal fallback)
If the New-DevDrive cmdlet isn’t available, you can still create a ReFS volume. There are two common approaches:

Option A: Back the Dev Drive with a VHDX file (keeps everything in one file)
PowerShell (Admin):

1) Create and mount a VHDX

$VhdPath = “C:\Dev\DevDrive.vhdx”
New-Item -ItemType Directory -Path “C:\Dev” -Force | Out-Null
New-VHD -Path $VhdPath -SizeBytes 200GB -Dynamic | Out-Null
Mount-VHD -Path $VhdPath -PassThru | Get-Disk | Initialize-Disk -PartitionStyle GPT -PassThru | New-Partition -UseMaximumSize -DriveLetter R |
Format-Volume -FileSystem ReFS -NewFileSystemLabel “DevDrive” -Confirm:$false

Option B: Use unallocated space on a physical disk
PowerShell (Admin):

Replace 2 with the correct disk number from Get-Disk

Get-Disk
Initialize-Disk -Number 2 -PartitionStyle GPT
New-Partition -DiskNumber 2 -UseMaximumSize -DriveLetter R
Format-Volume -DriveLetter R -FileSystem ReFS -NewFileSystemLabel “DevDrive” -Confirm:$false

After creation:

  • Verify the ReFS volume:
    PowerShell:
    Get-Volume -DriveLetter R

  • If you used a VHDX, ensure it auto-mounts at sign-in:
    PowerShell (Admin):
    $TaskName = “Mount DevDrive VHDX”
    $Action = New-ScheduledTaskAction -Execute “PowerShell.exe” -Argument “-NoLogo -WindowStyle Hidden -Command "Mount-VHD -Path 'C:\Dev\DevDrive.vhdx'“”
    $Trigger = New-ScheduledTaskTrigger -AtLogOn
    Register-ScheduledTask -TaskName $TaskName -Action $Action -Trigger $Trigger -Description “Auto-mount Dev Drive VHDX at logon” -User “$env:USERNAME” | Out-Null

H3: Step 5 — Confirm Microsoft Defender Performance Mode
Performance Mode is automatic on Dev Drive volumes when Microsoft Defender Antivirus is:

  • The primary AV engine
  • Real-time protection is enabled

Verify Defender is active:
PowerShell:
Get-MpComputerStatus | Select-Object AntivirusEnabled, RealTimeProtectionEnabled

Optional UI check:

  • Open Windows Security > Virus & threat protection.
  • Scroll down to dev-related settings (Dev Drive). On current builds, Dev Drive volumes are recognized and managed here. If Defender isn’t your active AV, you’ll see messaging indicating that.
See also  Dev Drive for Unreal/Unity: Does It Actually Help? Test Plan

H3: Step 6 — Move developer workloads to the Dev Drive
Recommended layout on the Dev Drive (R: as example):

  • R:\src — your repositories (clone here)
  • R:\pkg — package caches (NuGet, npm/pnpm/yarn, pip, Cargo, Gradle)
  • R:\build — build intermediates and outputs
  • R:\tools — SDKs/toolchains that do heavy I/O

Set or move caches to Dev Drive:

  • npm
    npm config set cache R:\pkg\npm-cache –global

  • pnpm
    pnpm config set store-dir R:\pkg\pnpm-store

  • yarn
    yarn config set cache-folder R:\pkg\yarn-cache

  • NuGet/.NET
    setx NUGET_PACKAGES R:\pkg\nuget-packages
    setx DOTNET_NUGET_PACKAGES R:\pkg\nuget-packages

  • pip
    pip config set global.cache-dir R:\pkg\pip-cache

  • Cargo (Rust)
    setx CARGO_HOME R:\pkg\cargo
    setx CARGO_TARGET_DIR R:\build\cargo-target

  • Gradle
    setx GRADLE_USER_HOME R:\pkg\gradle

  • Docker Desktop (Windows engine)
    In Settings > Resources > Advanced, set disk image location to a folder on R:\ (or configure “data-root” if using Linux kit with dockerd).

H3: Step 7 — Tune ReFS Integrity Streams (per-folder)
ReFS supports data integrity streams. For hot developer trees, disabling integrity on specific folders avoids extra overhead.

Check integrity:
PowerShell:
fsutil integrity query R:\src

Disable on heavy-churn folders (safe for intermediate data and caches):
PowerShell:
fsutil integrity set R:\src disable
fsutil integrity set R:\pkg disable
fsutil integrity set R:\build disable

You can apply this recursively by setting it on a top-level folder before populating it. Avoid disabling integrity on archival or critical data you want checksummed.

H3: Step 8 — Optional: Defender exclusions for specific paths
Dev Drive + Performance Mode is usually enough. If certain tools still run slowly, consider targeted exclusions for intermediates/caches:
PowerShell (Admin):
Add-MpPreference -ExclusionPath “R:\build”,”R:\pkg\pnpm-store”,”R:\pkg\nuget-packages”

Verify:
PowerShell:
(Get-MpPreference).ExclusionPath

Be cautious: exclude only non-security-critical, high-churn build paths.

H3: Step 9 — Quick benchmarking to validate gains
Simple, repeatable tests:

  • Git status
    PowerShell:
    Measure-Command { git -C R:\src\your-repo status } | Select-Object TotalMilliseconds

  • Dependency install (example with pnpm)
    PowerShell:
    Measure-Command { pnpm install } | Select-Object TotalMilliseconds

  • File copy (large small-file set)
    PowerShell:
    robocopy R:\dataset R:_scratch\dataset_copy /E /NFL /NDL /NP /NJH /NJS

Compare runs on your NTFS dev folder vs the Dev Drive. You should see lower times and/or better consistency on Dev Drive when Performance Mode is active.

H2: Troubleshooting
H3: I can’t create a Dev Drive in Settings (button missing or grayed out)

  • Ensure you’re on Windows 11 23H2 or later.
  • Check you have sufficient free space (50+ GB recommended).
  • If using a managed device, your admin/organization may restrict the feature.
  • Try Windows Update and reboot.
  • As a fallback, create a VHDX-backed ReFS volume with PowerShell (Step 4, Option A).

H3: PowerShell errors when formatting ReFS

  • Error: “ReFS is not supported” or ReFS option not present
    • Upgrade to Windows 11 23H2+ and use the Dev Drive wizard in Settings.
    • Some older/consumer editions limited manual ReFS formatting; the Dev Drive flow re-enables it for developer scenarios.

H3: New-DevDrive not recognized

  • Your build might not include the convenience cmdlet. Use the manual ReFS approach in Step 4.
  • Check for typos or function scope: Get-Command -Name “DevDrive

H3: Defender Performance Mode not active

  • Ensure Microsoft Defender Antivirus is the active provider:
    PowerShell:
    Get-MpComputerStatus | Select AntivirusEnabled, RealTimeProtectionEnabled

  • If a third-party AV is installed and active, Performance Mode is unavailable. Switch back to Microsoft Defender or consult your admin.

  • Make sure you created a Dev Drive (not just a generic NTFS volume). Performance Mode applies to Dev Drive volumes.

H3: Git operations are still slow on Dev Drive

  • Ensure repo and node_modules actually live on the Dev Drive (R:\src\repo).

  • Disable ReFS integrity on high-churn folders (Step 7).

  • Consider enabling Git FSMonitor and other optimizations:
    PowerShell:
    git config –global core.fsmonitor true
    git config –global gc.auto 0

  • On Windows, also consider:

    • Use the latest Git for Windows.
    • Keep antivirus exclusions minimal but targeted (R:\build, R:\pkg\pnpm-store).
    • Avoid placing huge repos in WSL file systems unless you build inside WSL too.

H3: My VHDX-backed Dev Drive doesn’t remount after reboot

  • If you used the Settings wizard, it’s handled for you.
  • If you created it manually, create a scheduled task at logon that runs:
    PowerShell:
    Mount-VHD -Path “C:\Dev\DevDrive.vhdx”
See also  Moving Your Repo/Package Caches to Dev Drive Safely

H3: “Access denied” or “in use” errors when formatting

  • Close any Explorer windows or processes touching the target drive.
  • Use Disk Management or diskpart to clean the target disk/partition if needed:
    PowerShell (Admin):
    diskpart
    list disk
    select disk
    clean
    convert gpt
    exit
    Then retry Step 4 Option B.

H3: Space pressure or fragmentation concerns

  • ReFS handles allocation differently and generally resists pathological fragmentation better than NTFS for dev patterns.
  • If space gets tight, performance can degrade. Keep 15–25% free space and consider expanding your VHDX or resizing the partition.

H2: Performance Tips & Best Practices
H3: Recommended folder layout

  • R:\src — repos and working trees
  • R:\pkg — caches (npm/pnpm/yarn, NuGet, pip, Cargo, Gradle)
  • R:\build — intermediates and outputs (often the noisiest)
  • R:\tools — SDKs/toolchains that do lots of small I/O

H3: Place noisy, redundant data on Dev Drive

  • node_modules, pnpm store, .yarn cache
  • NuGet and Gradle caches
  • pip wheels/cache and virtual environments
  • Unreal Engine DerivedDataCache and Intermediate
  • Docker image/cache data

H3: Use integrity streams selectively

  • Default Dev Drive settings are tuned for performance. For the noisiest folders, explicitly disable integrity streams:
    PowerShell:
    fsutil integrity set R:\build disable
    fsutil integrity set R:\pkg disable

  • Keep integrity enabled (default) for important, less-frequently changing assets if you prefer extra resiliency.

H3: Keep Defender protections, but tune carefully

  • Dev Drive + Performance Mode is designed to minimize overhead while preserving protection.
  • If you must exclude, do it sparingly and only on reproducible, non-sensitive build artifacts.

H3: Measure improvements

  • Always benchmark before/after with your real workloads (git status, dependency installs, build loops).
  • Use Measure-Command for quick timings and robocopy for file churn simulations.
  • Record a baseline so you can verify that future changes help, not hurt.

H3: Consider VHDX-backed Dev Drives

  • Easy portability and cleanup.
  • Simple expansion: create a larger VHDX, robocopy/migrate data, switch letters.
  • Auto-mount at logon with a Scheduled Task if you created it manually.

H3: Keep your system current

  • Windows cumulative updates often include performance and reliability improvements for ReFS and Dev Drive behavior.

H2: Conclusion
A Dev Drive on ReFS, paired with Microsoft Defender Performance Mode, is one of the highest-impact upgrades you can make to a Windows 11 development machine. It targets exactly the hot path of modern developer workflows: millions of small files, rapid metadata churn, and frequent dependency restores. With the steps above, you can create a Dev Drive in minutes, verify that Performance Mode is active, place your repos and caches where they benefit most, and tune integrity and exclusions to match your tolerance for overhead versus protection. The result is faster Git, quicker installs/builds, and a smoother, more predictable developer experience—all without compromising security.

H2: FAQ
H4: Can I convert my existing NTFS dev folder into a Dev Drive without moving data?
No. A Dev Drive is a separate ReFS volume. Create the Dev Drive first, then move or clone your data into it.

H4: Do I need Microsoft Defender for Performance Mode?
Yes. Defender Performance Mode is available only when Microsoft Defender Antivirus is your active AV. If a third-party AV is active, Performance Mode won’t apply to the Dev Drive.

H4: Is BitLocker supported on a Dev Drive?
Yes. You can enable BitLocker on Dev Drive volumes. It works with ReFS and is recommended on laptops and shared machines.

H4: How big should my Dev Drive be?
For active development, 100–250 GB is a good starting point. If you host large monorepos, containers, or Unreal projects, consider 500 GB or more. Keep 15–25% free space for best performance.

H4: What should I put on the Dev Drive versus leaving on C:?
Put high-churn developer data on the Dev Drive: repos, node_modules, caches, build outputs, and container data. Leave lower-churn apps, documents, and system files on C:. If you keep SDKs/toolchains on Dev Drive, ensure your PATH and tool configs point there.

End of guide.

About the author

Jonathan Dudamel

Jonathan Dudamel

I'm Jonathan Dudamel, an experienced IT specialist and network engineer passionate about all things Windows. I have deep expertise in Microsoft project management, virtualization (VMware ESXi and Hyper-V), and Microsoft’s hybrid platform. I'm also skilled with Microsoft O365, Azure ADDS, and Windows Server environments from 2003 through 2022.

My strengths include Microsoft network infrastructure, VMware platforms, CMMS, ERP systems, and server administration (2016/2022).