D: Drive Full — Root Cause & Fix
Section titled “D: Drive Full — Root Cause & Fix”Date: 2026-06-23 Severity: Critical (D: completely full, Kopia backup failing)
What Happened
Section titled “What Happened”D: drive (1.86 TB) hit 0 bytes free. Kopia backup failed at 8:00 AM trying to write to D:\bak\Kopia_Static.
Root Cause
Section titled “Root Cause”Two large Windows backup stores had accumulated silently:
| Folder | Size | Cause |
|---|---|---|
D:\DESKTOP-TA\ | 750 GB | Windows File History, accumulating unnoticed |
D:\WindowsImageBackup\ | 228 GB | Old system image backup, never cleaned up |
Both folders are invisible to WSL (du) and non-elevated PowerShell — they require an elevated admin session to see. This is why the disk appeared to only have ~876 GB used from WSL, while Windows reported 1.86 TB used.
Why the System Image Accumulated
Section titled “Why the System Image Accumulated”create_system_image.py has been failing silently for months (March, May, June 2026) with:
[ERROR] Administrator privileges required for system image creationThe cron entry called cmd.exe from WSL, which does not run elevated. So is_admin() returned False and the script exited before running wbAdmin — meaning no retention cleanup ever ran either. The 228 GB was an old manual backup that was never purged.
Why File History Accumulated
Section titled “Why File History Accumulated”Windows File History was enabled and targeting D:, writing to D:\DESKTOP-TA\ (machine name). No retention limit was enforced. It had accumulated 750 GB over an unknown period.
Diagnosis Steps
Section titled “Diagnosis Steps”df -h /mnt/d— confirmed 100% fulldu -sh /mnt/d/*— showed only ~876 GB (WSL blind spot)- Elevated PowerShell script (
C:\tmp\disk_check.ps1) — revealed the two hidden folders vssadmin list shadowstorage /for=D:— ruled out VSS shadow copies (only 3.15 GB)
Fix Applied
Section titled “Fix Applied”- Deleted
D:\DESKTOP-TA\(750 GB) andD:\WindowsImageBackup\(228 GB) from elevated PowerShell - Disabled Windows File History service (
fhsvcset to Disabled) - Removed broken cron entry for
create_system_imagefrom WSL crontab - Created
run_system_image.batwrapper inmy_backup/for Task Scheduler use - Created
C:\tmp\setup_system_image_task.ps1to register a proper Task Scheduler task
Remaining Action (Manual)
Section titled “Remaining Action (Manual)”Run from elevated PowerShell to complete the fix:
& C:\tmp\setup_system_image_task.ps1This creates the Task Scheduler task \FSS\FSS System Image Backup (Monthly) that:
- Triggers on the 1st of every month at 4:00 AM
- Runs as the current user with RunLevel Highest (proper admin elevation)
- Logs to
my_backup/logs/system_image.log - Fires heartbeat to job monitor on completion
Prevention
Section titled “Prevention”- System Image: Task Scheduler (not WSL cron) is required for any job needing admin elevation. WSL cron → cmd.exe does NOT elevate.
- File History: Disabled. Kopia covers all file backup needs — File History is redundant and dangerous on a data drive without retention limits.
- Monitoring gap: Neither DESKTOP-TA nor WindowsImageBackup were visible from WSL or job monitor. Add a monthly disk-usage check from elevated context if this is a concern going forward.
- D: disk headroom: After fix, ~980 GB free. System image backups (3 max × ~75 GB ≈ 225 GB) will grow back into
D:\bak\System_Images\— retention is managed by the Python script.