Windows Server 2016이 설치된 서버의 시스템 드라이브(C:\) 여유 공간이 부족해지는 문제가 발생했습니다. WinSxS, TEMP 폴더, 비활성 사용자 프로필, 오래된 업데이트 파일 등 디스크 공간을 많이 차지하는 위치를 모두 점검하고 정리했지만 눈에 띄는 효과가 없었고, 여전히 디스크 공간이 부족한 상태였습니다. 마침내 시스템 드라이브의 상당 부분을 System Volume Information(시스템 볼륨 정보) 폴더가 차지하고 있다는 사실을 발견했습니다.
이 글에서는 Windows에서 System Volume Information 폴더가 어떤 용도로 사용되는지, 어떤 데이터가 저장되어 있는지, 그리고 이를 올바르게 정리하는 방법까지 자세히 소개합니다.
Windows에서 시스템 볼륨 정보 폴더에 접근하는 방법
System Volume Information 폴더는 각 드라이브(로컬 HDD, SSD, 이동식 USB 메모리, SD 카드 등)의 루트에 자동으로 생성됩니다. 이 폴더에는 시스템 복원, 인덱싱, 파일 기록(File History) 등과 관련된 시스템 데이터가 저장됩니다.
기본적으로 이 폴더는 숨김 처리되어 있으며 NT AUTHORITY\SYSTEM 계정만 접근할 수 있습니다. 폴더를 표시하려면 파일 탐색기에서 '보호된 운영 체제 파일 숨기기' 옵션을 해제하거나 다음 PowerShell 스크립트를 실행하면 됩니다.
$regkey = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
Set-ItemProperty $regkey Hidden 1
Set-ItemProperty $regkey HideFileExt 0
Set-ItemProperty $regkey ShowSuperHidden 1
Stop-Process -ProcessName explorer관리자 계정으로도 이 폴더를 열어 내용을 확인할 수 없습니다. 어떤 사용자(내장 관리자 계정 포함)로 파일 탐색기에서 System Volume Information 폴더를 열려고 하면 액세스 거부 오류가 발생합니다.
Location is not available.
C:\System Volume Information is not accessible.
Access is denied.
폴더 내용을 보려면 해당 디렉터리의 소유자로 지정하고 계정에 NTFS 권한을 부여해야 합니다(폴더 속성의 보안 탭에서 설정 가능). 하지만 명령 프롬프트에서 소유권을 할당하고 접근 권한을 부여하는 편이 훨씬 빠릅니다.
takeown /f "C:\System Volume information"
icacls "C:\System Volume Information" /grant woshub\jwolf:F폴더 속성의 보안 탭에서 해당 계정에 모든 권한이 부여되었는지 확인합니다.
또는 NT AUTHORITY\SYSTEM 권한으로 PowerShell 콘솔을 실행하여 System Volume Information 디렉터리의 내용을 확인할 수도 있습니다.
PsExec.exe -i -s powershell.exe폴더 내용을 보려면 다음 명령을 실행합니다.
Get-ChildItem 'C:\System Volume Information\'폴더 크기는 다음 PowerShell 명령으로 확인할 수 있습니다.
(Get-ChildItem 'C:\System Volume Information\' | measure Length -s).sum / 1GbSystem Volume Information 폴더의 원래 권한을 복원하려면 다음 명령을 실행합니다.
icacls "C:\System Volume Information" /setowner "NT Authority\System"
icacls "C:\System Volume Information" /remove woshub\jwolfWindows의 시스템 볼륨 정보 폴더란?
그렇다면 System Volume Information 폴더에는 무엇이 저장되어 있을까요? 이 폴더에 파일을 저장하는 주요 서비스는 다음과 같습니다(전체 목록은 아닙니다).
- WindowsImageBackup — 데스크톱 Windows 버전의 시스템 복원 지점 또는 서버 OS에서 Windows Server Backup(
wbadmin)으로 생성한 시스템 상태 백업 - 빠른 파일 검색(Outlook 검색 포함)에 사용되는 인덱싱 서비스 데이터베이스 내용
- 분산 링크 추적 서비스(Distributed Link Tracking Service) 데이터베이스
- Volume Shadow Copy가 생성한 디스크 스냅샷 — 파일의 이전 버전 복구에 사용되며, 각 스냅샷마다 긴 ID를 이름으로 하는 별도의 파일이 생성됩니다.
- NTFS 디스크 할당량 설정
- 데이터 중복 제거(Data Deduplication) 서비스의 베이스 및 청크
- DFS 복제 데이터베이스(dfsr.db)
- WPSettings.dat 파일 — 스토리지 서비스(StorSvc)가 생성
- USB 드라이브에는 Windows Search 서비스가 사용하는 고유 디스크 레이블을 정의하는 IndexerVolumeGuid 파일도 저장됩니다.
- AppxProgramDataStaging, AppxStaging — Windows UWP 앱 백업(삭제 후 복구에 사용 가능)
컴퓨터나 서버에서 섀도우 복사본을 사용해 파일 또는 시스템 상태를 이전 버전으로 롤백하는 경우라면 주의할 점이 있습니다. 새 VSS 스냅샷이 생성될 때마다 데이터가 System Volume Information 디렉터리에 저장되어 크기가 계속 증가합니다. 섀도우 복사본이 자주 생성되고 디스크의 파일 변경이 잦을수록 이 디렉터리의 크기는 더욱 빠르게 늘어납니다.
실제로 아래와 같이 System Volume Information 폴더 안에 160GB가 넘는 시스템 파일이 존재하는 경우를 확인할 수 있습니다.
시스템 볼륨 정보 폴더를 정리하는 방법
참고: System Volume Information 폴더에는 시스템 복구에 필요한 정보와 일부 중요 서비스의 데이터가 저장되어 있으므로, 파일을 수동으로 삭제하는 것은 권장하지 않습니다.
시스템 복원 지점과 파일 기록을 비활성화하면 System Volume Information 디렉터리를 근본적으로 정리할 수 있지만, 이것이 항상 허용되는 방법은 아닙니다.
먼저 이 디렉터리에 무엇이 저장되어 있는지 확인해 보겠습니다. 섀도우 복사본 사용 통계를 표시하려면 다음 명령을 실행합니다.
vssadmin list shadowstoragevssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2013 Microsoft Corp.
Shadow Copy Storage association
For volume: (E:)\\?\Volume{5a419164-9eba-11e5-84c5-004046bbefbb}\
Shadow Copy Storage volume: (E:)\\?\Volume{5a419164-9eba-11e5-84c5-004046bbefbb}\
Used Shadow Copy Storage space: 3.08 MB (0%)
Allocated Shadow Copy Storage space: 896 MB (1%)
Maximum Shadow Copy Storage space: 19.0 GB (29%)
Shadow Copy Storage association
For volume: (C:)\\?\Volume{843c6330-9866-11e5-80b3-806e6f6e6942}\
Shadow Copy Storage volume: (C:)\\?\Volume{843c6330-9866-11e5-80b3-806e6f6e6942}\
Used Shadow Copy Storage space: 912 MB (2%)
Allocated Shadow Copy Storage space: 1.20 GB (3%)
Maximum Shadow Copy Storage space: 3.98 GB (10%)
출력 결과를 보면 시스템 드라이브(C:) 공간의 10%가 섀도우 복사본 파일에 할당되어 있고, 실제로는 그중 2%만 사용 중임을 알 수 있습니다. 만약 Maximum Shadow Copy Storage space 값이 UNBOUNDED로 표시된다면 섀도우 복사본에 대한 크기 제한이 설정되지 않은 것이므로, 잠재적으로 사용 가능한 모든 여유 디스크 공간을 차지할 수 있습니다. Windows는 기본적으로 전체 디스크 크기의 10%를 섀도우 복사본 저장 공간으로 할당합니다.
vssadmin 명령을 사용하면 VSS의 디스크 사용 한도를 2GB로 줄일 수 있습니다. 명령 구문은 다음과 같습니다.
vssadmin resize shadowstorage /on=[drive letter]: /For=[drive letter]: /MaxSize=[maximum size]예를 들어 다음과 같이 입력합니다.
vssadmin resize shadowstorage /on=c: /for=c: /maxsize=2GBvssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2013 Microsoft Corp.
Successfully resized the shadow copy storage association
WSB(Windows Server Backup)를 사용해 시스템 상태 백업을 생성하는 경우, Windows Server 에디션에서는 다음 명령으로 모든 이전 시스템 상태 백업을 삭제할 수 있습니다.
wbadmin delete systemstatebackup -keepversions:0Windows Server에서 오래된 VSS 스냅샷을 빠르게 정리하려면 diskshadow 도구를 사용합니다.
DiskShadow
Delete shadows OLDEST c:\이 명령을 실행할 때마다 가장 오래된 볼륨 섀도우 복사본(스냅샷)이 하나씩 삭제됩니다.
반면 Windows 10에서 wbadmin delete systemstatebackup 명령을 실행하면 '이 버전의 Windows에서는 DELETE BACKUP 명령이 지원되지 않습니다'라는 오류가 나타납니다. 데스크톱 OS(Windows 10/8.1/7)에서는 복원 지점과 저장 한도를 Windows GUI에서만 관리할 수 있기 때문입니다. 시스템 속성을 연 후 시스템 보호 탭을 클릭합니다.
시스템 드라이브를 선택하고 구성 버튼을 클릭하면 시스템 복원 지점 저장 할당량 구성 대화 상자가 열립니다. 여기서 섀도우 복사본 저장용 디스크 크기를 줄일 수 있으며, 삭제 버튼으로 기존 복원 지점을 모두 삭제하거나, 시스템 보호 해제를 선택해 복원 지점 생성을 완전히 비활성화할 수도 있습니다.
이 외에도 System Volume Information 디렉터리의 크기를 줄이는 방법은 다음과 같습니다.
- VSS 데이터를 다른 NTFS 드라이브로 이동 (
vssadmin add shadowstorage /for=c: /on=d: /maxsize=30%) - Windows 파일 기록(File History) 기능 비활성화 또는 재구성
- 내장 도구 cleanmgr.exe(디스크 속성 → 디스크 정리)를 사용한 시스템 파일 정리
시스템 볼륨 정보 내 Dedup ChunkStore 정리하기
Windows Server에서 System Volume Information 폴더의 내용을 분석하다 보면 Dedup\ChunkStore 디렉터리가 많은 공간을 차지하는 경우가 있습니다. 이는 해당 볼륨에 파일 중복 제거(Data Deduplication) 기능이 활성화되어 있다는 의미입니다.
Windows 데이터 중복 제거 서비스는 볼륨의 파일에서 동일한 청크(조각)를 발견하면 이를 고유 청크에 대한 링크로 대체하며, 고유 청크는 System Volume Information 디렉터리에 저장됩니다. 중복 제거가 적용된 볼륨에서 최적화된 파일을 이동하거나 삭제하더라도 오래된 청크는 즉시 삭제되지 않습니다. 이러한 블록은 일주일에 한 번 실행되는 특수 GarbageCollection 작업에 의해 제거되기 때문에, 중복 제거가 활성화된 볼륨에서는 공간이 바로 회수되지 않습니다.
사용하지 않는 청크 제거 프로세스를 즉시 시작하려면 다음 PowerShell 명령을 실행합니다.
start-dedupjob -Volume C: -Type GarbageCollection이어지는 dedup 작업이 남은 청크의 무결성을 검사합니다.
start-dedupjob -Volume C: -Type DataScrubbing이러한 작업의 진행 상황을 모니터링하려면 Get-DedupJob cmdlet을 사용합니다.
작업이 완료되면 System Volume Information 디렉터리에서 사용하지 않는 청크가 삭제되고 추가 디스크 공간이 확보됩니다.
주의: Start-DedupJob -Volume D: -Type Unoptimization 명령으로 볼륨의 데이터 중복 제거를 비활성화할 때는 각별히 주의해야 합니다. 이 명령은 System Volume Information 디렉터리의 모든 청크를 삭제하며, 볼륨의 파일들은 최적화가 해제되면서 원래 크기로 되돌아갑니다. 따라서 최적화를 비활성화하기 전에 반드시 충분한 여유 디스크 공간이 있는지 확인하시기 바랍니다.