Removendo o atributo de arquivo 'sparse'

5

Qual é o atributo sparse file em partições NTFS e como se pode removê-lo?

Usando o Windows 7, o Windows 8 e o Windows 8.1.

    
por m0nhawk 21.11.2012 / 18:13

3 respostas

10

Nicole Hamilton forneceu a descrição de quais arquivos esparsos são .
Vamos aprender com um experimento.

Criando um arquivo esparso

Inicie um prompt de comando ( cmd.exe ) como administrador.

  1. Criando arquivos grandes:

    fsutil file createnew test.nul 1048576
    
  2. Verifique seu tamanho no Explorer:
    • Tamanho: 1,00 MB (1,048,576 bytes)
    • Tamanho no disco: 1,00 MB (1,048,576 bytes)
  3. Vamos marcá-lo de maneira esparsa:

    fsutil sparse setflag test.nul
    
  4. Nada mudou até agora, os dois tamanhos ainda são de 1,00 MB.
  5. Vamos marcar o intervalo inteiro de bytes como escasso:

    fsutil sparse setrange test.nul 0 1048576
    
  6. Agora os tamanhos mudaram drasticamente:
    • Tamanho: 1,00 MB (1,048,576 bytes)
    • Tamanho no disco: 1,00 KB (1 024 bytes)
  7. Você pode consultar se o arquivo é esparso ou não com fsutil :

    fsutil sparse queryflag test.nul
    This file is set as sparse
    

    Ou

    This file is NOT set as sparse
    

O valor de Tamanho no disco depende do tamanho do cluster do sistema de arquivos. O tamanho do cluster padrão no NTFS é de 4 KB. A unidade que usei para teste foi formatada com cluster de 1 KB.

Eu usei este artigo como a fonte .

Removendo o atributo esparso

O utilitário que usei no exemplo não fornece um sinalizador para remover o atributo esparso .

A maneira mais simples de fazer é copiar o arquivo . O arquivo perderá esse atributo especial se o aplicativo que o copia não preservar especialmente o atributo esparso e o intervalo esparso.

Você pode usar Far Manager para limpar o atributo esparso. Navegue até o arquivo e pressione Ctrl + A para abrir o diálogo Atributo. Limpe a caixa de seleção Dispersa . E clique no botão Set .

    
por 21.11.2012 / 19:49
2

Um arquivo esparso é aquele que tem buracos nele. Grandes seções de zeros binários não são gravadas no disco. A explicação da Microsoft é de Arquivos esparsos (Windows) :

When sparse file functionality is enabled, the system does not allocate hard disk drive space to a file except in regions where it contains nonzero data. When a write operation is attempted where a large amount of the data in the buffer is zeros, the zeros are not written to the file. Instead, the file system creates an internal list containing the locations of the zeros in the file, and this list is consulted during all read operations. When a read operation is performed in areas of the file where zeros were located, the file system returns the appropriate number of zeros in the buffer allocated for the read operation. In this way, maintenance of the sparse file is transparent to all processes that access it, and is more efficient than compression for this particular scenario.

    
por 21.11.2012 / 18:32
2

Esse problema de atributo esparso acontece o tempo todo com ISOs baixados para mim.

Coloque isso em um arquivo de lote e arraste e solte o arquivo de destino nele (com o Windows Explorer). Et voilà.

fsutil sparse queryflag %1
pause
fsutil sparse setflag %1 0
fsutil sparse queryflag %1
pause

No entanto, isso não funciona no Windows 7 e 8.x (possivelmente no Vista), pois setflag aceita somente <filename> como um parâmetro válido e não há nenhum comando clearflag correspondente. No entanto, funciona no Windows 10.

    
por 09.10.2014 / 18:17