Thư mục nén NTFS: có thể điều chỉnh tỷ lệ nén?


19

Dường như, Windows nén các thư mục nén NTFS với tỷ lệ nén thấp nhất có thể. Mặc dù điều này có thể tốt cho việc tăng tốc độ và giảm tải CPU, nhưng đối với các tệp hiếm khi được truy cập (thư mục sao lưu), sẽ có khả năng tăng tỷ lệ nén hơn. Có một số thông số có thể được điều chỉnh để đạt được điều này?



2
Họ nói về "định dạng nén": "Bất kỳ giá trị nào khác chỉ ra rằng một tệp được nén, sử dụng định dạng nén được chỉ định bởi giá trị trạng thái nén." Tôi không tìm thấy "định dạng" này có nghĩa là gì và nó được đặt như thế nào.
Al Berger

Câu trả lời:


14

Câu trả lời ngắn

Không, không thể vào lúc này.

Câu trả lời dài

Các tệp và thư mục 1 được nén và giải nén bằng cách chuyển FSCTL_SET_COMPRESSIONmã điều khiển và trạng thái nén cho DeviceIoControl hàm API . Trạng thái nén có thể là một trong những điều sau đây:

COMPRESSION_FORMAT_NONE = 0
COMPRESSION_FORMAT_DEFAULT = 1
COMPRESSION_FORMAT_LZNT1 = 2

Bất kỳ giá trị khác không có nghĩa là mục tiêu sẽ được nén. Từ tài liệu chính thức:

Thuật toán nén LZNT1 là thuật toán nén duy nhất được triển khai. Kết quả là thuật toán nén LZNT1 được sử dụng làm DEFAULTphương pháp nén.

Nguồn: Mã kiểm soát FSCTL_SET_COMPRESSION

Thuật toán LZNT1 được thiết kế cho tốc độ và không có cách nào để đặt mức nén tùy chỉnh.

1 Thư mục không thực sự được nén: thuộc tính nén của chúng chỉ cung cấp trạng thái nén mặc định cho các tệp và thư mục con mới.

Thông tin thêm

Khối lượng hệ thống tệp NTFS hỗ trợ nén tệp trên cơ sở tệp riêng lẻ. Thuật toán nén tệp được sử dụng bởi hệ thống tệp NTFS là nén Lempel-Ziv. Đây là một thuật toán nén không mất dữ liệu , có nghĩa là không có dữ liệu nào bị mất khi nén và giải nén tệp, trái ngược với các thuật toán nén mất dữ liệu như JPEG, trong đó một số dữ liệu bị mất mỗi lần xảy ra nén và giải nén dữ liệu.

Trên hệ thống tệp NTFS, nén được thực hiện trong suốt. Điều này có nghĩa là nó có thể được sử dụng mà không yêu cầu thay đổi đối với các ứng dụng hiện có.

Nếu bạn nén một tệp lớn hơn 30 gigabyte, việc nén có thể không thành công.

Nguồn: Nén và giải nén tệp

Các thuật toán nén trong NTFS được thiết kế để hỗ trợ kích thước cụm lên tới 4 KB. Khi kích thước cụm lớn hơn 4 KB trên ổ đĩa NTFS, không có chức năng nén NTFS nào khả dụng.

Nguồn: Nén tệp và thư mục

đọc thêm


12

Nói chung là không thể, như đã nêu trong câu trả lời của and31415 .

Tuy nhiên, Microsoft đã thêm một số tùy chọn và thuật toán nén NTFS mới trong Windows 10, vì vậy bây giờ có một cách để thay đổi tỷ lệ nén:

COMPACT [/C | /U] [/S[:dir]] [/A] [/I] [/F] [/Q] [/EXE[:algorithm]]
        [/CompactOs[:option] [/WinDir:dir]] [filename [...]]
...
  /EXE       Use compression optimized for executable files which are read
             frequently and not modified.  Supported algorithms are:
             XPRESS4K  (fastest) (default)
             XPRESS8K
             XPRESS16K
             LZX       (most compact)

Các thuật toán mới được dành cho tính năng Compact OS mới (như bạn có thể thấy trong /CompactOstùy chọn ở trên). Ý tưởng là nén các tệp hệ thống chỉ đọc, sao lưu và ít truy cập với tỷ lệ cao nhất. Phân vùng khôi phục được xóa và tệp nén sau đó sẽ được sử dụng cho cả thực thi (nếu đó là phiên bản mới nhất) và mục đích khôi phục

Thuật toán LZX khá hiệu quả trong việc lưu trữ. Và mặc dù tên tùy chọn và mô tả là tất cả về "tệp thực thi", tùy chọn có thể được áp dụng cho bất kỳ tệp nào

E:\test>compact /a

 Listing E:\test\
 New files added to this directory will not be compressed.

  1050909 :   1050909 = 1.0 to 1   sometext.txt

...

E:\test>compact /c /exe:lzx sometext.txt

 Compressing files in E:\test\

sometext.txt          1050909 :    176128 = 6.0 to 1 [OK]

1 files within 1 directories were compressed.
1,050,909 total bytes of data are stored in 176,128 bytes.
The compression ratio is 6.0 to 1.

Tuy nhiên, không giống như thuật toán cũ, chúng không hỗ trợ chỉnh sửa nhanh , do đó, viết lại vào tệp để giải nén nó.

E:\test>echo x >> sometext.txt

E:\test>compact /a

 Listing E:\test\
 New files added to this directory will not be compressed.

  1050913 :   1050913 = 1.0 to 1   sometext.txt

Một lưu ý quan trọng là bạn không thể đặt thư mục đánh dấu các tệp mới được nén tự động bằng các thuật toán mới đó , vì như đã nêu trong phần trợ giúp của compact(phần nhấn mạnh của tôi)

  /C         Compresses the specified files.  Directories will be marked
             so that files added afterward will be compressed ***unless /EXE
             is specified***.
  /U         Uncompresses the specified files.  Directories will be marked
             so that files added afterward will not be compressed.  If
             /EXE is specified, only files compressed as executables will
             be uncompressed; if this is omitted, only NTFS compressed
             files will be uncompressed.

Do đó, nếu bạn muốn sử dụng chúng cho các tệp sao lưu, bạn có thể phải chạy tập lệnh để nén thủ công sau khi sao lưu hoặc định kỳ sau một thời gian

Thật không may, cái mới này trong Windows 10, do đó nó không thể được sử dụng trong các phiên bản cũ hơn. Tuy nhiên NTFS-3g không hỗ trợ nó , do đó bạn sẽ không gặp vấn đề khi truy cập nó từ Linux. Nếu bạn không sử dụng Windows 10, bạn có thể chạy USB trực tiếp Linux hoặc Windows 10 PE để mở các tệp đó


2

Bạn có thể tăng tỷ lệ nén bởi các ứng dụng của bên thứ 3. Ví dụ điển hình là zipmagic.co Tôi đã sử dụng nó trên máy tính xách tay của mình trong một năm mà không gặp vấn đề gì. Nhưng lưu ý rằng sử dụng nén NTFS hoặc Zipmagic cần ổ cứng SSD vì nén sẽ khiến ổ đĩa của bạn bị phân mảnh hoàn toàn và khiến nó trở nên vô dụng! Nếu bạn có ổ SSD, vì vậy hãy tiếp tục và tận hưởng!


0

Tôi sẽ khuyên bạn nên sử dụng một trình lưu trữ như 7-zip hoặc Winrar cho mục đích này. Với Winrar, thậm chí có thể truy cập tệp nằm trong bộ lưu trữ. Xin lưu ý rằng trước tiên nó sẽ trích xuất toàn bộ kho lưu trữ trước khi có thể truy cập tệp và nó sẽ cập nhật tệp lưu trữ với các sửa đổi khi bạn đóng và lưu vào tệp. Điều này có thể làm cho toàn bộ quá trình chậm, nhưng cho rằng đó là một bản sao lưu nên không sao.

Xin lưu ý rằng đây không phải là một giải pháp sao lưu đầy đủ. Nó chỉ là một cách để tiết kiệm không gian.

Trên đó, có một chương trình có thể lưu trữ 7z và rar lưu trữ dưới dạng ổ đĩa ảo: http://www.winarchiver.com/virtual-drive.htmlm


6
Ổ đĩa nén NTFS trong trường hợp của tôi được sử dụng làm bộ lưu trữ sao lưu đa nền tảng và chứa các tệp tar. Trình lưu trữ Linux không thể cập nhật tài liệu lưu trữ khi chúng ở định dạng nén như 7z hoặc xz. NTFS thực hiện việc nén một cách vô hình cho trình lưu trữ Linux Tar.
Al Berger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.