NTFS sıkıştırılmış klasörleri: sıkıştırma oranını değiştirmek mümkün mü?


19

Göründüğü gibi, Windows NTFS sıkıştırılmış klasörlerini mümkün olan en düşük sıkıştırma oranıyla sıkıştırır. Bu, hızı artırmak ve CPU yükünü azaltmak için iyi olsa da, nadiren erişilen dosyalar için (yedekleme klasörleri) sıkıştırma oranını artırma olasılığına sahip olmak daha mantıklı olacaktır. Bunu başarmak için değiştirilebilecek bazı parametreler var mı?



2
"Sıkıştırma biçimi" hakkında derler: "Başka herhangi bir değer, sıkıştırma durumu değeri tarafından belirtilen sıkıştırma biçimini kullanarak bir dosyanın sıkıştırıldığını gösterir." Bu "biçimin" ne anlama geldiğini ve nasıl ayarlandığını bulamadım.
Al Berger

Yanıtlar:


14

Kısa cevap

Hayır, şu anda mümkün değil.

Uzun cevap

Dosyalar ve klasörler 1 , API fonksiyonuna bir FSCTL_SET_COMPRESSIONkontrol kodu ve bir sıkıştırma durumu iletilerek sıkıştırılır ve açılır . Sıkıştırma durumu aşağıdakilerden biri olabilir:DeviceIoControl

COMPRESSION_FORMAT_NONE = 0
COMPRESSION_FORMAT_DEFAULT = 1
COMPRESSION_FORMAT_LZNT1 = 2

Sıfır olmayan herhangi bir değer, hedef öğenin sıkıştırılacağı anlamına gelir. Resmi belgelerden:

LZNT1 sıkıştırma algoritması, uygulanan tek sıkıştırma algoritmasıdır. Sonuç olarak, DEFAULTsıkıştırma yöntemi olarak LZNT1 sıkıştırma algoritması kullanılır .

Kaynak: FSCTL_SET_COMPRESSION kontrol kodu

LZNT1 algoritması hız için tasarlanmıştır ve özel bir sıkıştırma seviyesi ayarlamanın bir yolu yoktur.

1 Klasörler gerçekten sıkıştırılmaz: sıkıştırma öznitelikleri yeni dosyalara ve alt klasörlere yalnızca varsayılan bir sıkıştırma durumu verir.

Ek bilgi

NTFS dosya sistemi birimleri, tek tek dosya temelinde dosya sıkıştırmayı destekler. NTFS dosya sistemi tarafından kullanılan dosya sıkıştırma algoritması Lempel-Ziv sıkıştırmasıdır. Bu kayıpsız bir sıkıştırma algoritmasıdır, yani JPEG sıkıştırma gibi kayıplı sıkıştırma algoritmalarının aksine , veri sıkıştırma ve açma işlemlerinin her seferinde bazı verilerin kaybedildiği dosya sıkıştırılırken ve açılırken veri kaybı olmaz.

NTFS dosya sisteminde sıkıştırma saydam olarak gerçekleştirilir. Bu, mevcut uygulamalarda değişiklik yapılmasına gerek kalmadan kullanılabileceği anlamına gelir.

30 gigabayttan büyük bir dosyayı sıkıştırırsanız, sıkıştırma başarılı olmayabilir.

Kaynak: Dosya Sıkıştırma ve Açma

NTFS'deki sıkıştırma algoritmaları 4 KB'ye kadar küme boyutlarını destekleyecek şekilde tasarlanmıştır. Küme boyutu NTFS biriminde 4 KB'den büyük olduğunda, NTFS sıkıştırma işlevlerinden hiçbiri kullanılamaz.

Kaynak: Dosya ve Klasör Sıkıştırma

daha fazla okuma


12

Genellikle ve31415'in cevabında belirtildiği gibi mümkün değildir .

Ancak Microsoft, Windows 10'a bazı yeni NTFS sıkıştırma seçenekleri ve algoritmaları ekledi , bu yüzden şimdi sıkıştırma oranını değiştirmenin bir yolu var:

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)

Yeni algoritmalar, yeni Compact OS özelliği için tasarlanmıştır ( /CompactOsyukarıdaki seçenekte de görebileceğiniz gibi). Buradaki fikir, salt okunur, yedekleme ve daha az erişilen sistem dosyalarını en yüksek oranda sıkıştırmaktır . Kurtarma bölümü kaldırılır ve sıkıştırılmış dosya hem yürütme (zaten en son sürümse) hem de kurtarma amacıyla kullanılır

LZX algoritması arşivlemede oldukça etkilidir . Seçenek adı ve açıklaması "yürütülebilir dosyalar" ile ilgili olmasına rağmen, seçenek herhangi bir dosyaya uygulanabilir

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.

Ancak eski algoritmanın aksine, anında düzenlemeyi desteklemezler , bu nedenle dosyaya geri yazmak onu sıkıştırır.

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

Önemli bir not, klasörü, bu yeni algoritmaları kullanarak otomatik olarak sıkıştırılacak yeni dosyaları işaretleyecek şekilde ayarlayamamanızdır , çünkü yardım bölümünde belirtildiği gibi compact(vurgu benim)

  /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.

Bu nedenle, dosyaları yedekleme dosyaları için kullanmak istiyorsanız, yedekledikten sonra veya bir süre sonra periyodik olarak manuel olarak sıkıştırmak için bir komut dosyası çalıştırmanız gerekebilir

Ne yazık ki Windows 10'da bu yeni, bu nedenle eski sürümlerde kullanılamaz. Ancak NTFS-3g bunu destekliyor , bu nedenle Linux'tan erişimde sorun yaşamayacaksınız. Windows 10 kullanmıyorsanız, bu dosyaları açmak için bir Linux canlı USB veya Windows 10 PE çalıştırabilirsiniz


2

3. taraf uygulamalarla sıkıştırma oranını artırabilirsiniz. Bunun en iyi örneği zipmagic.com. Dizüstü bilgisayarımda bir yıl boyunca sorunsuz bir şekilde kullandım. Ancak NTFS veya Zipmagic sıkıştırmasını kullanmanın SSD sabit sürücüye ihtiyacı olduğunu unutmayın, çünkü sıkıştırma sürücünüzü tamamen parçalanmış ve işe yaramaz hale getirir! SSD sürücünüz varsa, devam edin ve keyfini çıkarın!


0

Bu amaçla 7-zip veya Winrar gibi bir arşivleyici kullanmanızı tavsiye ederim. Winrar ile bir arşivleyicinin içindeki bir dosyaya erişmek bile mümkündür. Dosyaya erişmeden önce tüm arşivi çıkaracağını ve dosyayı kapatıp kaydettiğinizde arşivi değişikliklerle güncelleyeceğini unutmayın. Bu, tüm süreci yavaşlatabilir, ancak iyi olması gereken bir yedek olduğu göz önüne alındığında.

Bunun tam bir yedekleme çözümü olmadığını unutmayın. Bu yerden tasarruf etmenin tek yolu.

Bunun üzerine, 7z ve rar arşivlerini sanal bir sürücü olarak bağlayabilen bir program var: http://www.winarchiver.com/virtual-drive.htm


6
Benim durumumda NTFS sıkıştırılmış sürücü çapraz platform yedek depolama olarak kullanılır ve katran dosyaları içerir. Linux arşivleyiciler arşivleri 7z veya xz gibi sıkıştırılmış formatta güncelleyemezler. NTFS, sıkıştırma işlemini Linux Tar arşivleyicisi için görünmez bir şekilde gerçekleştirir.
Al Berger
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.