Một trong những server (chạy Windows Server 2016) đã hết dung lượng ổ đĩa hệ thống (C:\\). Tôi đã kiểm tra và dọn dẹp tất cả các vị trí tiêu tốn tài nguyên (WinSxS, thư mục TEMP, hồ sơ người dùng không hoạt động, file cập nhật cũ, v.v.), nhưng không mang lại hiệu quả rõ rệt. Vẫn chưa đủ dung lượng ổ đĩa. Cuối cùng tôi phát hiện phần lớn ổ đĩa hệ thống bị chiếm dụng bởi thư mục System Volume Information. Trong bài viết này, tôi sẽ giải thích thư mục System Volume Information được sử dụng như thế nào trên Windows, lưu trữ những gì và cách dọn dẹp nó đúng cách.
Cách truy cập thư mục System Volume Information trên Windows?
Thư mục System Volume Information được tạo tự động ở thư mục gốc của mỗi ổ đĩa (ổ HDD cục bộ, SSD, USB flash drive tháo lắp, thẻ SD). Nó lưu trữ dữ liệu hệ thống liên quan đến Khôi phục hệ thống (System Restore), Chỉ mục tìm kiếm (Indexing), Lịch sử tệp (File History), v.v.
Mặc định, thư mục System Volume Information bị ẩn và chỉ tài khoản NT AUTHORITY\SYSTEM mới có quyền truy cập.
Để hiển thị thư mục này, bạn cần tắt tùy chọn "Ẩn file hệ thống vận hành được bảo vệ" trong File Explorer hoặc chạy script 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
Ngay cả quản trị viên cũng không thể mở và xem nội dung thư mục. Nếu bạn thử mở thư mục System Volume Information trong File Explorer dưới bất kỳ tài khoản nào (kể cả tài khoản administrator tích hợp), bạn sẽ nhận được lỗi từ chối truy cập:
Location is not available. C:\System Volume Information is not accessible. Access is denied.
Để xem nội dung thư mục, bạn phải gán mình làm chủ sở hữu thư mục và cấp quyền NTFS cho tài khoản của mình (có thể thực hiện qua tab Security trong thuộc tính thư mục). Nhưng nhanh hơn là gán chủ sở hữu và cấp quyền truy cập từ command prompt:
takeown /f "C:\System Volume information"
icacls "C:\System Volume Information" /grant woshub\jwolf:F
Kiểm tra trong thuộc tính thư mục trên tab Security xem tài khoản của bạn đã có quyền Full Control chưa.
Bạn cũng có thể xem nội dung thư mục System Volume Information bằng cách chạy PowerShell console với đặc quyền NT AUTHORITY\SYSTEM:
PsExec.exe -i -s powershell.exe
Để xem nội dung thư mục, chạy lệnh:
Get-ChildItem 'C:\System Volume Information\'
Kích thước thư mục có thể tìm thấy bằng lệnh PowerShell sau:
(Get-ChildItem 'C:\System Volume Information\' | measure Length -s).sum / 1Gb
Để khôi phục quyền hạn ban đầu trên thư mục System Volume Information, chạy:
icacls "C:\System Volume Information" /setowner "NT Authority\System"
icacls "C:\System Volume Information" /remove woshub\jwolf
Thư mục System Volume Information trong Windows là gì?
Thư mục System Volume Information lưu trữ gì? Tôi tìm thấy thông tin về các dịch vụ sau lưu trữ file của chúng trong thư mục này (danh sách không đầy đủ):
- WindowsImageBackup — điểm khôi phục hệ thống trên các phiên bản Windows desktop hoặc bản sao lưu System State được thực hiện bằng Windows Server Backup (
wbadmin) trên hệ điều hành server; - Cơ sở dữ liệu của dịch vụ Chỉ mục (Indexing Service) dùng để tìm kiếm file nhanh (bao gồm tìm kiếm Outlook);
- Cơ sở dữ liệu dịch vụ Theo dõi liên kết phân tán (Distributed Link Tracking Service);
- Ảnh chụp nhanh ổ đĩa (Volume Shadow Copy), có thể dùng để khôi phục phiên bản cũ hơn của file. Mỗi ảnh chụp tạo một file riêng với tên là ID dài;
- Cài đặt hạn mức ổ đĩa NTFS;
- Cơ sở và chunk của dịch vụ Khử trùng lặp dữ liệu (Data Deduplication);
- Cơ sở dữ liệu DFS Replication (dfsr.db);
- File WPSettings.dat — được tạo bởi dịch vụ lưu trữ (StorSvc);
- Ổ USB cũng lưu file IndexerVolumeGuid xác định nhãn ổ đĩa duy nhất được dùng bởi dịch vụ Windows Search;
- AppxProgramDataStaging, AppxStaging — bản sao lưu ứng dụng UWP Windows (có thể dùng để khôi phục sau khi gỡ cài đặt).
Nếu bạn sử dụng shadow copies trên máy tính hoặc server để quay lại phiên bản cũ của file/trạng thái hệ thống, hãy nhớ rằng mỗi ảnh chụp VSS mới lưu dữ liệu vào thư mục System Volume Information, làm tăng kích thước thư mục này. Càng thường xuyên tạo shadow copies và càng thường xuyên file trên ổ đĩa thay đổi, thư mục này càng nhanh lớn lên.
Trong ảnh chụp màn hình dưới đây, bạn thấy trong thư mục System Volume Information có file hệ thống lớn hơn 160 GB.
Cách dọn dẹp thư mục System Volume Information?
Lưu ý. Không khuyến khích xóa thủ công file trong thư mục System Volume Information, vì nó lưu trữ thông tin cho khôi phục hệ thống và dữ liệu cho các dịch vụ quan trọng.
Bạn có thể dọn dẹp triệt để thư mục System Volume Information bằng cách tắt điểm khôi phục hệ thống và Lịch sử tệp. Nhưng điều này không phải lúc nào cũng chấp nhận được.
Trước hết, hãy xem thư mục này lưu trữ gì. Hiển thị thống kê sử dụng shadow copies:
vssadmin list shadowstorage
Như bạn thấy, 10% dung lượng ổ hệ thống (C:\) được cấp phát cho file shadow copy và chỉ 2% được sử dụng. Nếu giá trị Maximum Shadow Copy Storage space được đặt là UNBOUNDED, nghĩa là không có giới hạn cho shadow copies và chúng có thể tiềm tàng chiếm dụng toàn bộ dung lượng trống. Windows mặc định cấp phát 10% tổng dung lượng ổ đĩa để lưu shadow copies.
Bạn có thể giảm giới hạn sử dụng ổ đĩa của VSS xuống 2 GB bằng lệnh vssadmin. Cú pháp lệnh vssadmin như sau:
vssadmin resize shadowstorage /on=[drive letter]: /For=[drive letter]: /MaxSize=[maximum size]
Trong ví dụ của chúng ta sẽ như sau:
vssadmin resize shadowstorage /on=c: /for=c: /maxsize=2GB
Nếu bạn tạo bản sao lưu trạng thái hệ thống bằng WSB (Windows Server Backup), tất cả các bản sao trạng thái hệ thống cũ có thể xóa như sau (trên các phiên bản Windows Server):
wbadmin delete systemstatebackup -keepversions:0
Để nhanh chóng dọn dẹp các phiên bản cũ của VSS snapshots trên Windows Server, dùng công cụ diskshadow:
DiskShadow
Delete shadows OLDEST c:\
Mỗi lần chạy lệnh, shadow copy (ảnh chụp nhanh) cũ nhất của volume sẽ bị xóa.
Khi chạy lệnh wbadmin delete systemstatebackup trên Windows 10, sẽ xuất hiện lỗi: "The DELETE BACKUP command is not supported in this version of Windows". Thực tế trên hệ điều hành desktop (Windows 10/8.1/7), điểm khôi phục và giới hạn chỉ có thể quản lý từ giao diện Windows GUI. Mở System Properties và click tab System Protection.
Chọn ổ hệ thống và click nút Configure. Hộp thoại cấu hình hạn mức lưu trữ điểm khôi phục hệ thống sẽ mở ra. Bạn có thể giảm dung lượng ổ đĩa để lưu shadow copies. Ở đây bạn có thể xóa tất cả điểm khôi phục hiện có (nút Delete), hoặc tắt hoàn toàn việc tạo điểm khôi phục bằng cách chọn Disable system protection.
Để giảm kích thước thư mục System Volume Information, bạn cũng có thể:
- Di chuyển dữ liệu VSS sang ổ NTFS khác (
vssadmin add shadowstorage /for=c: /on=d: /maxsize=30%); - Tắt hoặc cấu hình lại tính năng Windows File History;
- Dọn dẹp file hệ thống bằng công cụ tích hợp cleanmgr.exe (properties ổ đĩa -> Disk Cleanup).
Dọn dẹp Dedup ChunkStore trong System Volume Information
Khi phân tích nội dung thư mục System Volume Information trên Windows Server, bạn có thể nhận thấy thư mục Dedup\ChunkStore tiêu tốn nhiều dung lượng. Điều này có nghĩa là tính năng khử trùng lặp file (file deduplication) được bật cho volume này.
Nếu dịch vụ Windows Data Deduplication tìm thấy các chunk (mảnh) giống nhau trong các file trên volume, nó thay thế chúng bằng liên kết đến chunk duy nhất, được lưu trong thư mục System Volume Information. Nếu bạn di chuyển hoặc xóa file đã tối ưu hóa từ volume đã khử trùng lặp, các chunk cũ không bị xóa ngay lập tức. Các block này bị xóa bởi job GarbageCollection đặc biệt chạy một lần mỗi tuần. Đó là lý do tại sao dung lượng trên volume bật deduplication không được giải phóng ngay lập tức.
Để ngay lập tức bắt đầu quá trình xóa chunk không sử dụng, chạy lệnh PowerShell:
start-dedupjob -Volume C: -Type GarbageCollection
Job dedup tiếp theo sẽ kiểm tra tính toàn vẹn của các chunk còn lại:
start-dedupjob -Volume C: -Type DataScrubbing
Để giám sát các task này, dùng cmdlet Get-DedupJob.
Sau khi các task hoàn thành, các chunk không sử dụng trong thư mục System Volume Information sẽ bị xóa, và dung lượng ổ đĩa thêm được giải phóng.
Cẩn thận khi tắt khử trùng lặp dữ liệu cho volume bằng lệnh Start-DedupJob -Volume D: -Type Unoptimization. Lệnh này sẽ xóa tất cả chunk trong thư mục System Volume Information và file chưa tối ưu hóa trên volume sẽ quay lại kích thước gốc. Do đó, trước khi tắt tối ưu hóa, hãy chắc chắn rằng có đủ dung lượng ổ đĩa trống.