Como os metadados do arquivo são armazenados no Windows?

13

(Estou usando o Windows XP, mas acho que é semelhante em todas as versões recentes do Windows.)

Ao criar, por exemplo, um novo documento de texto vazio , você encontrará em suas propriedades que ele tem tamanho de 0 bytes. Zero bytes significa nenhuma informação . Sem dados.
Mas, ainda assim, o arquivo tem algum nome, ainda pode conter as datas do último acesso, modificação e criação. Ele carrega as informações, seja um arquivo oculto ou não, seja somente leitura ou não ...

Então, onde estão todos os metadados armazenados?

Jeyekomon
fonte
Não há mágica aqui. Leia estas respostas aqui: stackoverflow.com/questions/4954991/…
HighTechGeek 13/13
Há muito tempo, lembro-me de que eu costumava ter um tipo de vírus que de alguma forma corrompia alguns arquivos no meu PC, de modo que pareciam ter cerca de 100 GB de tamanho. Cada um deles. No meu disco rígido de 40GB. Portanto, não deve ter sido algum tipo de magia ... :-D
Jeyekomon
1
Por exemplo: ntfs.com/ntfs_basics.htm
Koray Tugay

Respostas:

11

Você aprendeu que os discos rígidos contêm arquivos, mas essa não é a verdade completa. Na verdade, os discos rígidos contêm um número muito, muito grande, expresso por muitos bits únicos. Mas essa interpretação não faz sentido para você nem para o seu computador, porque o processamento de grandes números únicos não é muito comum (e estou falando de números REALMENTE ENORMES). Em vez disso, o computador divide-o em 'palavras' menores (8 bits, 16 bits, 32 bits ou o que for) e usa assim. Ainda assim, isso é apenas um monte de palavras (vamos assumir palavras de 8 bits, ou seja, bytes).

Agora, essa unidade está particionada. Expliquei por que o particionamento é uma boa ideia nesta resposta :

De um modo geral, as unidades podem ser usadas sem particionamento. A maioria dos pendrives funciona assim. Mas o uso de partições tem muitas vantagens, apenas para citar algumas delas:

  • Você pode ter dois sistemas operacionais no mesmo disco rígido e sem interferir um no outro. Cada um deles tratará sua partição como uma unidade lógica e não mexerá com outras, a menos que você solicite.
  • Você pode separar logicamente seus dados. Se uma partição for corrompida por algum motivo, é provável que outras partições permaneçam intactas.
  • Usar partições é melhor do que usar vários discos rígidos menores, porque seu sistema é mais silencioso, consome menos energia e você pode redimensionar, excluir, movê-los etc.
  • Você pode usar algumas partes do disco rígido para alguns fins especiais.

Agora, toda partição tem seu próprio sistema de arquivos. Versões modernas do Windows usam NTFS , mas FAT , FAT32 e exFAT são suportados para mídia externa ou partições herdadas. As instalações Linux de uso diário geralmente usam sistemas de arquivos ext , sendo o ext4 o mais recente.

O sistema de arquivos define a maneira como os arquivos estão fisicamente localizados no disco. Você pode pensar assim: se você tivesse um livro de 10000 páginas sem capítulos, números de páginas ou quebras de linha, seria muito difícil de usar. É claro que os números das páginas e os títulos dos capítulos ocupam algum espaço na página, mas facilitam e agilizam o uso do livro. Se você quiser pular para o capítulo, digamos, 42, basta procurar no índice. Então você folheia o livro até encontrar o capítulo que deseja. Seus arquivos são capítulos e seu sistema de arquivos é o livro. Os metadados do sistema de arquivos, como limites de arquivos, nomes de arquivos etc. também ocupam espaço, mas é uma quantidade comparativamente pequena de espaço e faz as coisas funcionarem muito mais rapidamente.

Se o seu "capítulo" estiver vazio, ele ainda poderá ter um cabeçalho ou um número de página, certo? O arquivo vazio contém zero bytes de dados. Os metadados ocupam espaço, mas não fazem parte do arquivo, mas do sistema de arquivos. Caso contrário, você veria os nomes de arquivos nos seus arquivos de texto?

A propósito, é por isso que as versões anteriores do DOS estavam aceitando apenas nomes 8.3 - o espaço reservado para nomes de arquivos era muito limitado. O NTFS permite nomes de arquivos com 255 caracteres [1] .


Apenas mais uma palavra no seu comentário:

Eu costumava ter um tipo de vírus que de alguma forma corrompia alguns arquivos no meu PC, para que parecessem ter cerca de 100 GB de tamanho. Cada um deles. No meu disco rígido de 40GB. Então deve ter havido algum tipo de mágica ... :-D

É completamente possível ter arquivos válidos maiores que o seu disco rígido, graças a um recurso chamado arquivos esparsos . Hennes tem uma excelente explicação sobre isso em seu comentário sobre esta questão :

Imagine um fichário capaz de conter 100 páginas. Se você usar esse fichário como um arquivo comum, poderá inserir 100 páginas. Você poderia ler todos os 100. Você poderia escrever para todos os 100. Agora imagine um encadernador esparso. Você insere a primeira página que escreve "página 1: Conteúdo A". Você insere a segunda página que você escreve "página 9999: conteúdo b:". Sempre que você tentar ler uma página, verifique se ela existe. Caso contrário, sua resposta será: esta é uma página vazia. Se existir, você retornará o conteúdo da página. Sempre que você escreve em uma página que ainda não existe no fichário, você adiciona uma nova folha de papel.

gronostaj
fonte
Caso contrário, você veria os nomes de arquivos nos seus arquivos de texto? Bem, muitos tipos de arquivos ricos, como fotos ou arquivos PDF, podem conter muitos metadados. Mesmo arquivos de texto codificados em UTF-8 simples contêm uma sequência EFBBBF que está oculta pela maioria dos editores de texto, então eu esperava que os metadados do arquivo fossem apenas mais uma parte oculta e inacessível do arquivo. Enfim, você seria um professor incrível! Todas as respostas dadas aqui foram (e serão) realmente úteis de alguma forma, mas eu aprecio muito o seu esforço.
Jeyekomon # 13/13
Isso não responde à pergunta, responde? Então, onde estão todos os metadados armazenados?
Koray Tugay
@KorayTugay Acredito que a pergunta real era "Como os metadados do arquivo são armazenados no Windows para que eles não ocupem espaço ". Na minha opinião, a melhor resposta que você pode dar em uma postagem de Superusuário é explicar que eles são armazenados no sistema de arquivos, não diretamente no arquivo, e é por isso que não contam para o tamanho do arquivo. Eles estão no livro, mas não como parte do texto.
gronostaj
7

Acabei de aprender hoje sobre o Windows Alternate Data Streams (ADS). Este é um fork de recurso oculto anexado a um arquivo. Faz parte do NTFS desde o Windows NT 3.1.

Por exemplo, se você tiver um arquivo de texto em branco, mas preencher algumas das informações de resumo na marca de propriedade do arquivo, um arquivo ADS oculto será criado e anexado ao arquivo de texto. A maioria das versões do Windows não inclui o tamanho do arquivo ADS ao relatar o tamanho do arquivo original.

Você pode criar e exibir arquivos ADS em um prompt de comando.

echo "ABCDE" > test.txt:hidden.txt

criará um arquivo test.txt com um arquivo ADS chamado hidden.txt

você pode usar este comando para editar o arquivo:

notepad test.txt:hidden.txt

Aqui está um artigo de fácil leitura que entra em mais detalhes.

HighTechGeek
fonte
Isso é realmente uma coisa interessante! Na verdade, eu nunca ouvi falar sobre isso também ... Obrigado.
Jeyekomon #
@Jeyekomon parece que 'type' não suporta, pastebin.com/raw/4Ae3GGkN , mas eu vejo o eco e o bloco de notas (testados no win7)
barlop
2

Eu fiz uma pesquisa e me deparei com uma pergunta semelhante feita no Stack Overflow.

Basicamente, diz que o arquivo é criado e ocupa alguns bytes ou um cluster de disco rígido, etc. Depende da granularidade do disco rígido e do sistema de arquivos, etc.

Eles discutem aqui: /programming/4954991/are-0-bytes-files-really-0-bytes

com links adicionais para pesquisas adicionais.

HighTechGeek
fonte
2

Em um volume NTFS, essas informações são armazenadas em metarquivos. Em particular, o nome do arquivo e os carimbos de data e hora são armazenados em um metarquivo chamado $ MFT. Os metarquivos não são acessíveis pelos métodos normais do Windows, como o Explorer ou o prompt de comando.

Para mais leitura:

http://ntfs.com/ntfs-system-files.htm

http://en.wikipedia.org/wiki/NTFS

David Marshall
fonte
Obrigado. Portanto, a resposta está em uma compreensão mais profunda do sistema de arquivos do meu HDD ... E apenas por curiosidade - você conhece algum método "anormal" do Windows? O que é realmente útil para acessar esses metarquivos? Um par de palavras-chave para o Google seria o suficiente ...
Jeyekomon
1
@Jeyekomon Você precisa usar um editor de setor. Há um exemplo aqui: blogs.technet.com/b/askcore/archive/2013/03/01/…
David Marshall