Pastas compactadas NTFS: é possível ajustar a taxa de compactação?

15

Como parece, o Windows compacta as pastas compactadas NTFS com a menor taxa de compactação possível. Embora isso possa ser bom para aumentar a velocidade e diminuir a carga da CPU, para os arquivos raramente acessados (pastas de backup), seria mais sensato ter a possibilidade de aumentar a taxa de compactação. Existem alguns parâmetros que podem ser ajustados para conseguir isso?

    
por Al Berger 30.06.2014 / 12:35

4 respostas

13

Resposta curta

Não, não é possível no momento.

Resposta longa

Os arquivos e pastas 1 são compactados e descompactados passando-se um código de controle FSCTL_SET_COMPRESSION e um estado de compactação para a DeviceIoControl API . O estado de compactação pode ser um dos seguintes:

COMPRESSION_FORMAT_NONE = 0
COMPRESSION_FORMAT_DEFAULT = 1
COMPRESSION_FORMAT_LZNT1 = 2

Qualquer valor diferente de zero significa que o item de destino será compactado. Da documentação oficial:

The LZNT1 compression algorithm is the only compression algorithm implemented. As a result, the LZNT1 compression algorithm is used as the DEFAULT compression method.

Source: FSCTL_SET_COMPRESSION control code

O algoritmo LZNT1 é projetado para velocidade e não há como definir um nível de compactação personalizado.

1 As pastas não são realmente compactadas: o atributo de compactação apenas fornece um estado de compactação padrão para novos arquivos e subpastas.

Informações adicionais

The NTFS file system volumes support file compression on an individual file basis. The file compression algorithm used by the NTFS file system is Lempel-Ziv compression. This is a lossless compression algorithm, which means that no data is lost when compressing and decompressing the file, as opposed to lossy compression algorithms such as JPEG, where some data is lost each time data compression and decompression occur.

On the NTFS file system, compression is performed transparently. This means it can be used without requiring changes to existing applications.

If you compress a file that is larger than 30 gigabytes, the compression may not succeed.

Source: File Compression and Decompression

The compression algorithms in NTFS are designed to support cluster sizes of up to 4 KB. When the cluster size is greater than 4 KB on an NTFS volume, none of the NTFS compression functions are available.

Source: File and Folder Compression

Leitura adicional

por 30.06.2014 / 18:24
9

Geralmente não é possível, conforme indicado na resposta do e31415 .

No entanto, a Microsoft adicionou algumas novas opções de compactação NTFS e algoritmos no Windows 10, então agora há uma maneira de alterar a taxa de compactação:

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 novos algoritmos são destinados ao novo recurso Compact OS (como você pode ver na opção /CompactOs acima ). A idéia é comprimir somente leitura, backup e arquivos de sistema menos acessados com a maior taxa. A partição de recuperação é removida e o arquivo compactado será usado para a execução (se já é a versão mais recente) e para a finalidade de recuperação

O algoritmo LZX é bastante eficiente no arquivamento. E apesar do nome e descrição da opção serem todos sobre "arquivos executáveis", a opção pode ser aplicada a qualquer arquivo

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.

No entanto, ao contrário do algoritmo antigo, eles não suportam a edição on-the-fly , portanto, escrever de volta no arquivo o descompacta.

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

Uma observação importante é que você não pode definir a pasta como marcar novos arquivos a serem compactados automaticamente usando esses novos algoritmos , porque como indicado na parte de ajuda de compact (grifo meu)

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

Portanto, se você quiser usá-los para arquivos de backup, pode ser necessário executar um script para compactar manualmente após o backup ou periodicamente após algum tempo

Infelizmente isso é novo no Windows 10, portanto não pode ser usado em versões mais antigas. No entanto, o NTFS-3g oferece suporte , portanto, você não terá problema de acessá-lo do Linux. Se você não usa o Windows 10, pode executar um Linux live USB ou o Windows 10 PE para abrir esses arquivos

    
por 26.11.2016 / 06:08
2

Você pode aumentar a taxa de compactação por aplicativos de terceiros. O principal exemplo é zipmagic.co Eu usei no meu laptop por um ano sem qualquer problema. Mas observe que o uso de compactação NTFS ou Zipmagic precisa de um disco rígido SSD, pois a compactação tornará sua unidade totalmente fragmentada e inutilizável! Se você tem drive SSD, então vá em frente e divirta-se!

    
por 21.10.2015 / 10:16
0

Eu aconselho usar um arquivador como o 7-zip ou o Winrar para este propósito. Com o Winrar, é possível acessar um arquivo dentro de um arquivador. Observe que primeiro ele extrairá todo o arquivo antes de poder acessar o arquivo e atualizará o arquivo com modificações quando você fechar e salvar no arquivo. Isso pode tornar todo o processo lento, mas considerando que é um backup que deve ficar bem.

Observe que esta não é uma solução de backup completo. É apenas uma maneira de economizar espaço.

Por outro lado, existe um programa que pode montar arquivos 7z e rar como uma unidade virtual: link

    
por 30.06.2014 / 13:03