NTFS圧縮フォルダー:圧縮率を調整することは可能ですか?


19

考えられるように、WindowsはNTFS圧縮フォルダを可能な限り低い圧縮率で圧縮します。これは、速度の向上とCPU負荷の軽減には役立つかもしれませんが、まれにしかアクセスされないファイル(バックアップフォルダー)の場合は、圧縮率を上げる可能性があります。これを達成するために調整できるパラメーターはありますか?



2
彼らは「圧縮形式」について言います:「他の値は、圧縮状態値によって指定された圧縮形式を使用して、ファイルが圧縮されることを示します。」この「フォーマット」の意味と設定方法がわかりませんでした。
アルバーガー14年

回答:


14

短い答え

いいえ、現時点ではできません。

長い答え

ファイルとフォルダー1は、FSCTL_SET_COMPRESSION制御コードと圧縮状態DeviceIoControl API関数に渡すことで圧縮および解凍されます。圧縮状態は次のいずれかです。

COMPRESSION_FORMAT_NONE = 0
COMPRESSION_FORMAT_DEFAULT = 1
COMPRESSION_FORMAT_LZNT1 = 2

ゼロ以外の値は、ターゲットアイテムが圧縮されることを意味します。公式文書から:

LZNT1圧縮アルゴリズムは、実装されている唯一の圧縮アルゴリズムです。その結果、LZNT1圧縮アルゴリズムがDEFAULT圧縮方法として使用されます。

ソース:FSCTL_SET_COMPRESSION制御コード

LZNT1アルゴリズムは速度を重視して設計されており、カスタムの圧縮レベルを設定する方法はありません。

1フォルダーは実際には圧縮されません。圧縮属性は、新しいファイルとサブフォルダーにデフォルトの圧縮状態を与えるだけです。

追加情報

NTFSファイルシステムボリュームは、個々のファイルベースでのファイル圧縮をサポートしています。NTFSファイルシステムで使用されるファイル圧縮アルゴリズムは、Lempel-Ziv圧縮です。これはロスレス圧縮アルゴリズムです。つまり、JPEGなどの非可逆圧縮アルゴリズムではデータの圧縮と解凍が発生するたびに一部のデータが失われるのに対し、ファイルの圧縮と解凍時にデータは失われません。

NTFSファイルシステムでは、圧縮は透過的に実行されます。つまり、既存のアプリケーションを変更することなく使用できます。

30ギガバイトを超えるファイルを圧縮すると、圧縮が成功しない場合があります。

ソース:ファイルの圧縮と解凍

NTFSの圧縮アルゴリズムは、最大4 KBのクラスターサイズをサポートするように設計されています。NTFSボリュームでクラスターサイズが4 KBを超える場合、NTFS圧縮機能は使用できません。

ソース:ファイルとフォルダーの圧縮

参考文献


12

and31415の回答に示されているように、一般的には不可能です。

ただし、MicrosoftはWindows 10にいくつかの新しいNTFS圧縮オプションとアルゴリズムを追加したため、現在、圧縮率を変更する方法があります。

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)

新しいアルゴリズムは、新しいコンパクトOS機能を対象としてい/CompactOsます(上記のオプションをご覧ください)。読み取り専用、バックアップ、およびアクセス頻度の低いシステムファイルを最高の比率で圧縮するという考え方です。リカバリパーティションが削除され、圧縮ファイルは実行(既に最新バージョンの場合)とリカバリの両方に使用されます

LZXアルゴリズムはアーカイブに非常に効率的です。オプション名と説明はすべて「実行可能ファイル」に関するものですが、オプションはどのファイルにも適用できます

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.

ただし、古いアルゴリズムとは異なり、オンザフライ編集をサポートていないため、ファイルに書き戻すと圧縮が解除されます。

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

重要な注意事項は、あなたがするフォルダを設定することができないということですこれらの新しいアルゴリズムを使用して自動的に圧縮される新しいファイルをマークのヘルプ一環で述べたようにするので、compact(強調鉱山)

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

したがって、それらをバックアップファイルに使用する場合は、バックアップ後に手動で圧縮するか、しばらくしてから定期的に圧縮するスクリプトを実行する必要があります。

残念ながら、これはWindows 10の新機能であるため、古いバージョンでは使用できません。ただし、NTFS-3gはこれをサポートしているため、Linuxからのアクセスに問題はありません。Windows 10を使用しない場合は、LinuxライブUSBまたはWindows 10 PEを実行してこれらのファイルを開くことができます


2

サードパーティのアプリによって圧縮率を上げることができます。一番の例はzipmagic.co です。私はラップトップで1年間問題なく使用しました。ただし、NTFSまたはZipmagic圧縮を使用するにはSSDのハードドライブが必要であることに注意してください。圧縮によりドライブが完全に断片化され、使用できなくなります。SSDドライブをお持ちの場合は、どうぞお楽しみください!


0

この目的には、7-zipやWinrarなどのアーカイバを使用することをお勧めします。Winrarでは、アーカイバ内のファイルにアクセスすることさえ可能です。ファイルにアクセスする前に最初にアーカイブ全体を抽出し、ファイルを閉じて保存すると、変更を加えてアーカイブを更新することに注意してください。これにより、プロセス全体が遅くなる可能性がありますが、それが問題ないバックアップであることを考えると。

これは完全バックアップソリューションではないことに注意してください。スペースを節約する唯一の方法です。

さらに、7zおよびrarアーカイブを仮想ドライブとしてマウントできるプログラムがありますhttp ://www.winarchiver.com/virtual-drive.htm


6
私の場合、NTFS圧縮ドライブはクロスプラットフォームのバックアップストレージとして使用され、tarファイルが含まれています。Linuxアーカイバは、7zやxzなどの圧縮形式のアーカイブを更新できません。NTFSは、Linux Tarアーカイバの目に見えない圧縮をオンザフライで実行します。
アルバーガー14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.