Arquivos esparsos em sistemas de arquivos Windows, Linux e MacOS, NTFS, REFS, Ext3, Ext4, BTRFS e APFS
Este artigo falará sobre arquivos esparsos. Falaremos sobre seus pontos fortes e fracos, quais sistemas de arquivos suportam tais arquivos. Além disso, como criá-los ou convertê-los do normal.
- A diferença entre arquivos compactados e esparsos
- Vantagens e desvantagens
- Criar um arquivo esparso no Windows
- Como criar um arquivo esparso no Linux
- Como aumentar
- Arquivos esparsos no ApFS
- Recuperação deste tipo de dados
- Conclusão
- Perguntas e respostas
- Comentários
Sparse são arquivos especiais que usam o sistema de arquivos de forma mais eficiente, eles não permitem que o sistema de arquivos ocupe espaço livre no disco de mídia quando as partições não estão cheias. Ou seja, o “espaço vazio” só será usado quando necessário. Informações vazias na forma de zeros serão armazenadas no bloco de metadados FS. Portanto, arquivos esparsos ocupam inicialmente menos volume de mídia do que seu volume real.
Este tipo suporta a maioria dos sistemas de arquivos: BTRFS, NILFS, ZFS, NTFS, ext2, ext3, ext4, XFS, JFS, ReiserFS, Reiser4, UFS, Rock Ridge, UDF, ReFS, APFS, F2FS.
Todos esses sistemas de arquivos suportam totalmente esse tipo, mas ao mesmo tempo não fornecem acesso direto às suas funções por meio de sua interface padrão. Suas propriedades só podem ser gerenciadas usando comandos na linha de comando.
A diferença entre arquivos compactados e esparsos
Todos os sistemas de arquivos listados acima também suportam o recurso de compactação padrão. Ambas as ferramentas têm o benefício de economizar espaço em disco, mas atingem esse objetivo de maneiras diferentes. A principal desvantagem de usar a compactação é que ela pode diminuir o desempenho do sistema ao realizar operações de leitura/gravação. Porque usará recursos adicionais para descompactar ou compactar os dados. Mas alguns produtos de software não são compatíveis com compactação.
Vantagens e desvantagens
A maior vantagem dos arquivos esparsos é que o usuário pode criar arquivos grandes que ocupam muito pouco espaço de armazenamento. O espaço de armazenamento é alocado automaticamente à medida que os dados são gravados nele. Arquivos esparsos grandes são criados em um tempo relativamente curto porque o sistema de arquivos não precisa alocar espaço em disco antecipadamente para gravar zeros.
Os benefícios são limitados apenas pelos aplicativos que os suportam. Se um aplicativo não tiver a capacidade de reconhecê-los ou usá-los, ele os salvará em seu estado original e não compactado, o que não trará nenhum benefício. Você também precisa ter cuidado com eles, porque um arquivo de alguns megabytes pode crescer repentinamente para vários gigabytes quando copiado para seu destino por aplicativos não suportados.
Outra desvantagem é que você não pode copiar ou criar tal arquivo se seu tamanho nominal exceder o espaço livre disponível (ou limites de tamanho de cota impostos às contas de usuário). Por exemplo, se o tamanho original (com todos os bytes nulos) for 500 MB e houver um limite de cota de 400 MB para a conta de usuário usada para criá-lo. Isso causará um erro mesmo que o espaço em disco real ocupado seja de apenas 50 MB.
As unidades que armazenam esses dados também são propensas à fragmentação, pois o sistema de arquivos gravará dados em arquivos esparsos conforme necessário. Com o tempo, isso pode levar à degradação do desempenho. Além disso, alguns utilitários de gerenciamento de disco podem não exibir com precisão a quantidade de espaço livre disponível. Quando o sistema de arquivos está quase cheio, isso pode levar a resultados inesperados. Por exemplo, erros de “estouro de disco” podem ocorrer quando os dados são copiados sobre uma parte existente que foi marcada como esparsa.
Vantagens | Desvantagens |
---|---|
Uso eficiente do espaço em disco, pois os arquivos ocupam apenas os blocos realmente usados | Possível perda de dados se o disco encher, pois o arquivo pode ser gravado parcialmente |
Aumento da velocidade de criação de arquivos grandes | Nem todos os sistemas de arquivos suportam arquivos dispersos |
Economia de espaço ao trabalhar com backups e arquivos grandes | O uso de arquivos dispersos pode levar à fragmentação de dados no disco |
Capacidade de criar e alocar rapidamente grandes quantidades de espaço em disco | O monitoramento do uso real do espaço em disco pode ser mais complicado |
Suportado por muitos sistemas operacionais e plataformas de virtualização | Requer uma gestão mais cuidadosa do espaço em disco para evitar problemas |
Criar um arquivo esparso no Windows
Para fazer isso no sistema operacional Windows, usaremos a linha de comando. Procure por cmd e execute como administrador.
O Windows usa o fsutil (utilitário do sistema de arquivos) para gerenciar esses dados. Quando create é executado, por padrão o arquivo é criado normalmente. Vá para a pasta onde você deseja criá-lo e digite:
fsutil file createnew sparse-file 1000000000
Onde sparse-file – é o nome e seu tamanho em bytes no final.
Para definir o arquivo como "esparso", digite:
fsutil sparse setflag sparse-file
Para remover este sinalizador, execute o seguinte comando:
fsutil sparse setflag sparse-file 0
E para atribuir o atributo novamente:
fsutil sparse setflag sparse-file
Revisamos:
fsutil sparse queryflag sparse-file
O atributo por si só ainda não economiza espaço em disco. Para isso, é necessário particionar uma área vazia que será liberada em seu interior.
Para marcar uma área vazia, digite:
fsutil sparse setrange sparse-file 0 1000000000
No final, o deslocamento e o comprimento são especificados em bytes. No meu caso, de zero a 1 GB.
Para definir um arquivo totalmente esparso, especifique o volume inteiro. Se necessário, você pode aumentar o arquivo especificando um valor maior aqui.
Para garantir que o arquivo tenha esse atributo, execute layout
fsutil file layout sparse-file
Este atributo pode ser definido em qualquer arquivo. Basta executar este comando com seu nome e definir o tamanho desejado.
Nas propriedades do arquivo criado acima você pode ver que com tamanho de 1GB. o arquivo ocupa 0 bytes no disco.
Este conjunto de comandos é adequado para todos os sistemas de arquivos do Windows que suportam este tipo de dados (NTFS, ReFS...).
Como criar um arquivo esparso no Linux
No Linux, o processo de criação desse tipo de dado é um pouco mais fácil, pois existem vários comandos para criá-lo. Este conjunto é adequado para todos os sistemas de arquivos Linux.
Aqui você pode usar o comando dd, truncate.
O primeiro comando é o seguinte:
dd if=/dev/zero of=file-sparse bs=1 count=0 seek=2G
Onde file-sparse – é o nome, e seu tamanho é especificado no final, pode ser definido em bytes, megabytes, etc.
O segundo comando é mais simples, fica assim:
truncate -s2G file-sparse
Onde o valor s indica o tamanho seguido pelo nome.
Comparado ao Windows, no Linux, quando você cria um arquivo desse tipo com um dos comandos, ele será "esparso" por padrão.
Para converter normal em esparso, existe um comando separado:
cp --sparse=always ./025.jpg ./0251.jpg
Onde 025.jpg é o nome do normal.
0251.jpg – o nome do meio do vira-lata.
Como aumentar
Se você deseja ampliar um arquivo existente, use o primeiro comando, alterando o nome aqui e especificando o tamanho desejado.
dd if=/dev/zero of=025.jpg bs=1 contagem=0 busca=2G
Isso aumentará seu tamanho para 2 GB.
Para verificar o tamanho, execute o seguinte comando:
du -h --apparent-size 025.jpg
Arquivos esparsos no ApFS
Na verdade, esse conjunto de comandos também é adequado para o sistema de arquivos da Apple, ApFS, já que Linux e MacOS usam a arquitetura do kernel Unix em seu kernel, ambos fornecendo acesso a comandos Unix e Linux. Membrana Bash.
Execute o terminal e execute qualquer um dos comandos que usei no Linux.
No MacOS Catalina, apenas o primeiro comando funciona e o tamanho deve ser especificado em bytes, caso contrário, o comando falhará.
sudo dd if=/dev/zero of=sparse_APFS bs=1 count=0 seek=1000000000
O sistema de arquivos ApFS cria arquivos esparsos por padrão se certas condições forem atendidas, então a opção pode ser usada:
dd if=/dev/zero of=187.jpg bs=1 contagem=0 busca=500000000
Vamos definir o tamanho, por exemplo, para 500Mb, no MacOS o tamanho deve ser especificado em bytes.
Nas propriedades você pode ver que seu tamanho aumentou para 500 Mb.
Recuperação deste tipo de dados
Se você acidentalmente apagou ou formatou seu disco com dados importantes e ele ficou escasso? Por favor, use o Hetman Partition ou RAID Recovery para restaurá-los. Nosso programa suporta esses tipos de arquivos em todos os sistemas operacionais e sistemas de arquivos mostrados neste vídeo. Baixe, instale e execute o programa, verifique a mídia.
Como você pode ver, o programa encontra facilmente arquivos esparsos existentes e excluídos e exibe seu conteúdo. Ao abrir o arquivo no editor HEX, você pode ver que ele está completamente preenchido com zeros.
O programa encontrou dados excluídos anteriormente no disco com sistemas de arquivos NTFS, REFS, BtrFS, Ext3, Ext4 e ApFS. Resta apenas clicar no botão Restaurar.
Quando o processo estiver concluído, todos os dados necessários estarão na pasta especificada. Verifique as propriedades, os arquivos estão totalmente restaurados.
Conclusão
Antes de usar esta funcionalidade em qualquer sistema operacional, é fundamental que você conheça todas as suas vantagens e desvantagens. Conhecer esses recursos ajudará você a evitar possíveis problemas no futuro.
NTFS: O NTFS (File Allocation Table) é um sistema de arquivos usado em sistemas operacionais Windows. Ele é otimizado para acesso aleatório a arquivos, com suporte a arquivos esparsos para economizar espaço em disco.
ReFS: O ReFS (Resilient File System) é um sistema de arquivos desenvolvido pela Microsoft para sistemas operacionais Windows. Ele oferece melhorias significativas em relação ao NTFS, incluindo maior resistência a falhas de hardware, melhor suporte a arquivos esparsos e maior escalabilidade.
ext3: O ext3 (Third Extended File System) é um sistema de arquivos usado em sistemas operacionais Linux. Ele oferece suporte a arquivos esparsos, mas não tem as mesmas características avançadas que o ReFS e o NTFS.
ext4: O ext4 (Fourth Extended File System) é um sistema de arquivos usado em sistemas operacionais Linux. Ele oferece suporte a arquivos esparsos, além de melhorias significativas em relação ao ext3, incluindo maior tamanho de arquivo e maior desempenho.
Btrfs: O Btrfs (B-tree File System) é um sistema de arquivos usado em sistemas operacionais Linux. Ele oferece suporte a arquivos esparsos, além de características avançadas, como snapshots, compressão e criptografia.
APFS: O APFS (Apple File System) é um sistema de arquivos usado em sistemas operacionais macOS. Ele oferece suporte a arquivos esparsos, além de características avançadas, como snapshots, compressão e criptografia.