Os metadados não ocupam tamanho algum?


51

Eu coloquei 4096 caracteres em um arquivo de texto e salvar it.Since cada personagem é 1 byte, tamanho do arquivo de texto deve ser 4K byte.As que você vê abaixo é OK:

insira a descrição da imagem aqui

Eu conecto minha memória flash ao meu computador. o espaço livre na memória flash é 1,717,518,336bytes :

insira a descrição da imagem aqui

Eu criei uma cópia do arquivo na minha memória flash. E, novamente, dê uma olhada no espaço livre. possui 1,717,514,240bytes de espaço livre:

insira a descrição da imagem aqui

Vamos ver qual é a diferença:

1.717.518.336 - 1.717.514.240 =4096 bytes


Minha pergunta :

Q1:

Como você pode ver na última foto acima, o único espaço que o arquivo ocupa no flash é o espaço para seu conteúdo [caracteres]. Então, onde está o arquivo de metadados?

Quero dizer, quando movo o arquivo para outro computador, como ele entende o nome do arquivo, o proprietário do arquivo, a data de criação e modificação e ...?

Não ocupa nenhum tamanho? !!

Q2:

Posso ver o arquivo de metadados na memória flash?

insira a descrição da imagem aqui

Aprecie seu tempo e consideração.


10
os metadados estariam contidos no próprio sistema de arquivos. que não faz parte do tamanho do arquivo relatado pelo Windows. Além disso, os metadados FAT32 e NTFS seriam diferentes.
Ramhound

@ Ramhound quando movo o arquivo de texto para a memória flash, seu arquivo de metadados também se move para a memória flash, certo? como eu posso ver isso?
TheGoodUser


11
Além de entender os aspectos internos do sistema operacional (vale a pena por si só), provavelmente não há motivo para examinar ou modificar essas informações, a menos que você esteja gravando um programa de reparo / recuperação de disco. Para uso normal, você nunca desejaria alterar as informações nesse nível, pois elas poderiam minar facilmente a integridade do sistema de arquivos e de tudo que o utiliza.
Joe Joe

3
Resposta curta: ocupa espaço, mas não é contabilizado como parte do tamanho do arquivo.
user253751

Respostas:


50

Sim, os metadados ocupam espaço. No NTFS, ele ocupa 1024 bytes, para ser específico. No entanto, as informações não são armazenadas no arquivo, mas na tabela de arquivos mestre MFT. Especificamente no registro MFT nº 4 $AttrDef.

Consulte este artigo da Technet para obter detalhes: a tabela 3.5 contém todos os registros MFT definidos.

Quando um volume é formatado com NTFS, um arquivo MFT (Master File Table) e outras partes de metadados são criados. Metadados são os arquivos que o NTFS usa para implementar a estrutura do sistema de arquivos. O NTFS reserva os 16 primeiros registros da MFT para arquivos de metadados.

O NTFS cria um registro de arquivo para cada arquivo e um registro de diretório para cada diretório criado em um volume NTFS. A MFT inclui um registro de arquivo separado para a própria MFT. Esses registros de arquivos e diretórios são armazenados na MFT. Os atributos do arquivo são gravados no espaço alocado na MFT. Além dos atributos do arquivo, cada registro contém informações sobre a posição do registro na MFT.

Observe que outros sistemas de arquivos podem lidar de maneira diferente com os metadados.

EDIT: Na seção de comentários, foi indicado que esta resposta está faltando porque o OP solicitou metadados nos sistemas de arquivos FAT32, não no NTFS. Se eu soubesse, removeria o atributo "resposta correta". Portanto, forneço informações adicionais que respondem à pergunta em relação ao FAT32.

O FAT32 salva metadados simples, como visibilidade ou tempo de modificação de cada arquivo e pasta em uma entrada na pasta pai do arquivo ou pasta, criando uma árvore a partir da pasta raiz do FS. Conforme indicado no NTFS, este não é um arquivo, mas salvo na estrutura de dados da pasta. A entrada originalmente tinha 32 bytes e continha os seguintes atributos:

Name (8.3) xxxxxxxx.yyy. (88 bits)

Attribute byte (8 bits of information, described later in this section).

One reserved byte.

Create time (24 bits).

Create date (16 bits).

Last access date (16 bits).

Two reserved bytes.

Last modified time (16 bits).

Last modified date (16 bits).

Starting cluster number in the file allocation table (16 bits).

File size (32 bits).

A lista foi retirada deste artigo da Microsoft Technet e refere-se ao FAT16. Como o tamanho do cluster do FAT32 pode ser de 32 bits e o nome dos arquivos pode ser maior que 8,3, a tabela não é totalmente precisa. Para acomodar nomes de arquivos longos e discos maiores, o FAT32 modifica algum comportamento que pode ser lido na Wikipedia aqui, mas a idéia básica é válida.


2
Você pode usar o NTFSinfo do conjunto Sysinternal para examinar os metadados e encontrar extensões. Você pode fazer o download aqui: technet.microsoft.com/en-us/sysinternals/default Existem vários editores de metadados por aí, mas não posso recomendar nenhum porque não os usei.
precisa saber é o seguinte

9
@ Os metadados TheGoodUser-Sp, pelo menos no NTFS, não são armazenados em "um arquivo" no sentido convencional, que é o que eu tenho a impressão que você está procurando. Não algo escondido na pasta \ windows em algum lugar sobre o qual não estamos falando; Os metadados do arquivo são parte integrante do próprio sistema de arquivos.
precisa

2
Nesse caso, o Flash Drive está formatado como FAT-32. Assim, a metada são armazenados em File Allocation Table (FAT) en.wikipedia.org/wiki/File_Allocation_Table
jnovacho

2
É importante observar que as tabelas de alocação para NTFS e FAT estão pré-alocadas. Ele difere de formato para formato, mas vários setores geralmente são ocupados com blocos pré-alocados vazios que devem ser usados ​​para armazenar metadados para reduzir a fragmentação.
Kaslai

2
O que faz você pensar que os metadados são de tamanho fixo? A lista de controle de acesso certamente pode variar bastante em complexidade; Eu não consigo ver como ele pode sempre se encaixam em 1024 bytes (juntamente com todos os outros metadados, como acesso e modificação vezes)
Ben Voigt

26

Não ocupa nenhum tamanho? !!

Sim, mas é uma pequena entrada em um grande bloco pré-alocado. Esse bloco é contado na parte "usada" do seu disco. Adicionar uma entrada dentro desse bloco não exige que o bloco seja expandido.

Dependendo do sistema de arquivos, eventualmente o bloco será preenchido e estendido de alguma forma após a adição de vários nomes de arquivos.

Posso ver o arquivo de metadados na memória flash?

Não facilmente

Como Ruslan e Blorgbeard comentaram. Você pode instalar um visualizador hexadecimal, como o HxD, que permitirá visualizar (e editar - tenha muito cuidado) os dados brutos do sistema de arquivos. Mas você terá que fazer a interpretação em relação a quais bytes pertencem a quais estruturas do sistema de arquivos. Para isso, você precisará de uma boa documentação do sistema de arquivos específico usado no disco flash. É provável que o FAT32 seja mais simples de entender do que qualquer uma das muitas variantes do NTFS. Consulte Noções básicas sobre sistemas de arquivos FAT32, por exemplo.


3
@TheGood Se privado do Google, eu provavelmente começaria inicializando o Linux e usando ddpara copiar o sistema de arquivos flash bruto para um arquivo em outro disco e use um visualizador hexadecimal para examiná-lo em conjunto com um bom trabalho de referência no sistema de arquivos específico (se não for proprietário e não divulgado). Eu posso fazer uma alteração de metadados touch, repetir dde usar um diff binário.
RedGrittyBrick

11
Ainda bem que não sou privada do Google.
Cthulhu

5
@Cthulhu: Os antigos não precisam do necronomicon. fhtagn.
RedGrittyBrick

2
Não é necessário alterar o SO para usar diretamente um visualizador hexadecimal no disco rígido. Basta usar um visualizador hexadecimal decente. (Parece que hiewpode fazê-lo, mas não tenho certeza desde que estava no Windows há muito tempo).
Ruslan

11
O HxD definitivamente fará isso no Windows. Menu extras, Abrir disco.
Blorgbeard

7

Os metadados não são armazenados (nem relatados pelas ferramentas comuns de gerenciamento de arquivos) como arquivos, são armazenados nos dados do sistema de arquivos em disco.

Dependendo da natureza / versão do sistema de arquivos, cada entrada precisará de uma quantidade de espaço em disco para representar as informações de metadados.

Além do espaço alocado na tabela mestre de arquivos, alguns sistemas de arquivos também manterão o diário sobre a troca de arquivos (ocupando espaço extra), e alguns sistemas de arquivos podem ser estendidos com campos extras contendo metadados para fins especiais.

Portanto, tecnicamente, os metadados ocupam espaço em disco, mas isso não é levado em consideração pela maioria dos utilitários de gerenciamento de arquivos que funcionam com a API do sistema de chamada que consulta o sistema de arquivos em busca de espaço no arquivo , não no espaço de metadados .

E essa abstração é apenas a ponta do iceberg, pois o próprio sistema de arquivos trabalha em uma abstração do espaço físico em disco subjacente, fornecido por rotinas de disco de baixo nível; portanto, apenas a lógica interna do disco saberá quantas posições de memória reais estão disponíveis para níveis mais altos. e quantos estão marcados como não confiáveis, reservados ou usados ​​para soma de verificação.


3

Os metadados dependem do sistema de arquivos. Os sistemas de arquivos mais básicos geralmente usados ​​em mídia intercambiável são baseados em um sistema de arquivos DOS (FAT). O DOS não possui usuários e permissões. Ou, mais corretamente, algumas dessas informações são transportadas no 8º bit de dados do nome do arquivo. A única sobrecarga de recurso usada em um DOS FS básico é contabilizar os blocos do arquivo ou o diretório em que ele está - e esse bloco provavelmente já está comprometido para manipular ".", Já. IOW, adicionar um arquivo vazio não adicionaria outro bit de armazenamento, mas mudaria alguns bits consumidos e alocados existentes.

Quando você usa sistemas de arquivos mais avançados, com diários e usuários de diário, obtém metadados e entradas de diário e, possivelmente, uma cadeia forense para recuperar versões anteriores de arquivos etc. etc. Em seguida, um pequeno arquivo pode explodir no armazenamento usado.

Então, verifique o tipo FS. Se for FAT, você provavelmente não terá um usuário registrado em metadados na mídia. Portanto ... não há espaço usado. :)

Um bom exemplo de um FAT FS é uma implementação de código aberto - e você pode ver que a lista de operações disponíveis não inclui "obter / configurar usuário" e "verificar o acesso pelo usuário". Sem identidade = sem armazenamento dessa identidade.


2

Como você pode ver na última foto acima, o único espaço que o arquivo ocupa no flash é o espaço para seu conteúdo [caracteres]. Então, onde está o arquivo de metadados?

O "arquivo de metadados" é o diretório que contém o arquivo. Isso é basicamente o que é um diretório - uma coleção de metadados que descrevem o conteúdo do diretório.

Quero dizer, quando movo o arquivo para outro computador, como ele entende o nome do arquivo, o proprietário do arquivo, a data de criação e modificação e ...?

Não ocupa nenhum tamanho? !!

Sim, no diretório Na maioria dos itens de arquivo, o mesmo arquivo pode ter dois nomes diferentes se estiver vinculado a dois diretórios diferentes.

Posso ver o arquivo de metadados na memória flash?

Se o seu sistema de arquivos suportar, você poderá vê-lo olhando o tamanho do diretório.


2

Onde os metadados são mantidos?

Quando falamos de metadados, existem dois tipos de metadados.

O primeiro tipo inclui data de criação, data da última modificação, data do último acesso. Dependendo do sistema de arquivos (NTFS / FAT / Ext3 etc ...), haverá diferentes "metadados" disponíveis, por exemplo, proprietário do Windows e permissão no NTFS.

O primeiro tipo se aplica a todos os arquivos, por exemplo, o arquivo .txt no seu exemplo.

Todos os sistemas de arquivos pré-alocam espaços para conter esses metadados na Tabela mestre de arquivos (MFT para NTFS, alguns outros nomes para outro sistema de arquivos), que não é diretamente acessível pelos usuários. Como a MFT não é contada como parte da capacidade da unidade, não há espaço de armazenamento "adicional" necessário.

O segundo tipo de "metadados" é definido pelo tipo de arquivo ou aplicativo. Por exemplo, os documentos do Office mantêm "Autor", "Assunto" e outros metadados; As imagens JPEG mantêm um conjunto de dados EXIF, incluindo "data da foto tirada", "modelo da câmera", "velocidade do obturador"; enquanto o som MP3 contém "album", "track #", "bitrate" ...

O segundo tipo ocupa espaço adicional, porque esses "metadados" fazem parte do arquivo.


Tamanho diferente na unidade diferente

Quando seu arquivo de texto está C:\ativado, ele ocupa 4K. Torna-se 1K de tamanho quando você o coloca na sua unidade flash H:\. Isso ocorre porque diferentes "tamanhos de bloco" para as diferentes partições.

Os arquivos têm espaços alocados em bloco. Portanto, em um sistema de arquivos com tamanho de bloco 4K, 1 byte é alocado em 4K, enquanto 4.097 bytes (4K + 1 byte) são alocados em 8K.

Aparentemente, você C:está formatado com tamanho de bloco 4K enquanto H:está formatado com tamanho de bloco de 1K, resultando na diferença.


Quando copio um arquivo de texto em branco para uma memória flash, seus metadados também são movidos para a memória flash. Agora, existe alguma maneira, no Linux, por exemplo, de ver o arquivo de metadados? em binário, por exemplo.
TheGoodUser

Se os metadados são copiados depende de como você o faz. Por exemplo, robocopyvocê pode optar por copiar carimbos de data e hora, atributos, informações do proprietário, listas de controle de acesso (ACL) etc. Depende também de o sistema de arquivos da memória flash suportar (por exemplo, o FAT32 não mantém as informações e o ACL do proprietário para que eles sejam descartado de qualquer maneira). Os metadados não estão na forma de um arquivo, portanto você não pode ver os dados brutos; se você quiser ver coisas de baixo nível que possa precisar ddno Linux, mas como interpretá-las é outra história.
Kenneth L
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.