Come vengono archiviati i metadati dei file in Windows?


13

(Sto usando Windows XP ma immagino che sia simile in tutte le versioni recenti di Windows.)

Quando crei ad esempio un nuovo documento di testo vuoto , nelle sue proprietà troverai dimensioni pari a 0 byte. Zero byte significa nessuna informazione . Nessun dato.
Tuttavia, il file ha un nome, può ancora contenere le date dell'ultimo accesso, modifica e creazione. Trasporta le informazioni sia che si tratti di file nascosto o meno, che siano di sola lettura o meno ...

Quindi dove sono archiviati tutti i metadati?


non c'è magia qui. Leggi queste risposte qui: stackoverflow.com/questions/4954991/…
HighTechGeek

Molto tempo fa ricordo di avere un tipo di virus che in qualche modo corrompeva un paio di file nel mio PC in modo che sembrassero avere una dimensione di circa 100 GB. Ognuno di loro. Sul mio hard disk da 40 GB. Quindi ci deve essere stata una sorta di magia ...
MrGreen

Risposte:


11

Ti è stato insegnato che i dischi rigidi contengono file, ma non è tutta la verità. In realtà, i dischi rigidi contengono un numero molto, molto grande espresso da molti bit singoli. Ma questa interpretazione non ha alcun senso per te e per il tuo computer, perché l'elaborazione di singoli grandi numeri non è molto comune (e sto parlando di numeri DAVVERO ENORMI). Al contrario, il computer lo divide in "parole" più piccole (8 bit, 16 bit, 32 bit o altro) e le utilizza in questo modo. Tuttavia, sono solo un mucchio di parole (supponiamo che le parole a 8 bit, ovvero i byte).

Ora, quell'unità è partizionata. Ho spiegato perché il partizionamento è una buona idea in questa risposta :

In generale, le unità possono essere utilizzate senza partizionamento. La maggior parte dei pendrive funziona così. L'uso delle partizioni ha molti vantaggi, solo per citarne alcuni:

  • È possibile avere due sistemi operativi seduti sullo stesso disco rigido e non interferire tra loro. Ognuno tratterà la propria partizione come un'unità logica e non si scherzerà con gli altri a meno che non lo si dica.
  • Puoi separare logicamente i tuoi dati. Se una partizione viene danneggiata per qualche motivo, molto probabilmente altre partizioni rimarranno intatte.
  • Usare le partizioni è meglio che usare più dischi rigidi più piccoli, perché il tuo sistema è più silenzioso, consuma meno energia e puoi ridimensionare, eliminare, spostarli ecc.
  • È possibile utilizzare alcune parti del disco rigido per alcuni scopi speciali.

Ora, ogni partizione ha il suo filesystem. Le versioni moderne di Windows utilizzano NTFS , ma FAT , FAT32 ed exFAT sono supportati per supporti esterni o partizioni legacy. Le installazioni Linux di uso quotidiano di solito usano filesystem ext , ext4 è l'ultimo.

Il filesystem definisce il modo in cui i file si trovano fisicamente sul disco. Puoi pensarlo in questo modo: se avessi un libro di 10000 pagine senza capitoli, numeri di pagina o interruzioni di riga, sarebbe molto difficile da usare. Naturalmente i numeri di pagina e i titoli dei capitoli occupano un po 'di spazio sulla pagina, ma rendono l'utilizzo del libro molto più semplice e veloce. Se vuoi saltare al capitolo, diciamo, 42, basta cercare nel sommario. Quindi sfogli il libro fino a trovare il capitolo che desideri. I tuoi file sono capitoli e il tuo filesystem è il libro. I metadati del filesystem, come i confini dei file, i nomi dei file, ecc. Occupano anche spazio, ma è una quantità relativamente piccola di spazio e rende le cose molto più veloci.

Se il tuo "capitolo" è vuoto, può comunque avere un'intestazione o un numero di pagina, giusto? Il file vuoto contiene zero byte di dati. I metadati occupano spazio, ma non fanno parte del file, ma del filesystem. Altrimenti vedresti nomi di file all'interno dei tuoi file di testo?

A proposito, ecco perché le prime versioni di DOS accettavano solo 8,3 nomi - lo spazio riservato ai nomi dei file era molto limitato. NTFS consente nomi di file lunghi 255 caratteri [1] .


Ancora un'altra parola sul tuo commento:

Avevo una specie di virus che in qualche modo corrompeva un paio di file nel mio PC in modo che sembrassero avere una dimensione di circa 100 GB. Ognuno di loro. Sul mio hard disk da 40 GB. Quindi ci deve essere stato un qualche tipo di magia ... MrGreen

È completamente possibile avere file validi più grandi del tuo disco rigido grazie a una funzione chiamata file sparsi . Hennes ha un'eccellente spiegazione di questi nel suo commento su questa domanda :

Immagina un raccoglitore in grado di contenere 100 pagine. Se usi quel raccoglitore come un normale file potresti inserire 100 pagine. Potresti leggere tutti i 100. Potresti scrivere a tutti i 100. Ora immagina un raccoglitore scarso. Inserisci la prima pagina che scrivi "pagina 1: Contenuto A". Quindi inserisci una seconda pagina in cui scrivi "pagina 9999: contenuto b:". Ogni volta che provi a leggere una pagina, guardi se esiste. In caso contrario, la tua risposta sarà questa è una pagina vuota. Se esiste, si restituisce il contenuto della pagina. Ogni volta che scrivi su una pagina che non esiste ancora nel raccoglitore aggiungi un nuovo foglio di carta.


Altrimenti vedresti nomi di file all'interno dei tuoi file di testo? Bene, molti tipi di file ricchi come immagini o file PDF possono contenere molti metadati. Anche i semplici file di testo con codifica UTF-8 contengono una sequenza EFBBBF che è nascosta dalla maggior parte degli editor di testo, quindi mi aspettavo che i metadati del file fossero solo un'altra parte nascosta e inaccessibile del file. Ad ogni modo, saresti un insegnante fantastico! Ogni risposta data qui è stata (e sarà) davvero utile in qualche modo, ma apprezzo molto il tuo sforzo.
Jeyekomon,

Questo non risponde alla domanda, vero? Quindi dove sono archiviati tutti i metadati?
Koray Tugay,

@KorayTugay Credo che la vera domanda fosse: "Come vengono archiviati i metadati dei file in Windows in modo che non occupino spazio ". A mio avviso, la migliore risposta che puoi dare in un post di Super User è spiegare che sono memorizzati nel filesystem, non direttamente nel file, ed è per questo che non contano nella dimensione del file. Sono nel libro, ma non come parte del testo.
gronostaj,

7

Ho appena imparato oggi su Windows Alternate Data Streams (ADS). Questo è un fork di risorse nascosto che è allegato a un file. Fa parte di NTFS da Windows NT 3.1.

Ad esempio, se si dispone di un file di testo vuoto ma si inseriscono alcune delle informazioni di riepilogo nel tag delle proprietà del file, viene creato un file ADS nascosto e allegato al file di testo. La maggior parte delle versioni di Windows non include la dimensione del file ADS quando si segnala la dimensione del file originale.

È possibile creare e visualizzare i file ADS da un prompt dei comandi.

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

creerà un file test.txt con un file ADS chiamato hidden.txt

puoi usare questo comando per modificare il file:

notepad test.txt:hidden.txt

Ecco un articolo di facile lettura che approfondisce i dettagli.


Questa è davvero una cosa interessante! In realtà non ne ho mai sentito parlare ... Grazie.
Jeyekomon,

@Jeyekomon sembra che il 'tipo' non lo supporti, pastebin.com/raw/4Ae3GGkN ma vedo fare l'eco e il blocco note (testato in win7)
barlop

2

Ho fatto una ricerca e mi sono imbattuto in una domanda simile posta su Stack Overflow.

Sostanzialmente dice che il file è stato creato e occupa pochi byte o un cluster del disco rigido, ecc. Dipende dalla granularità del disco rigido e del file system, ecc.

Ne discutono qui: /programming/4954991/are-0-bytes-files-really-0-bytes

con collegamenti aggiuntivi per ulteriori ricerche.


2

Su un volume NTFS queste informazioni sono archiviate in metafile. In particolare, il nome del file e i timestamp sono memorizzati in un metafile chiamato $ MFT. I metafile non sono accessibili dai normali metodi di Windows come Explorer o il prompt dei comandi.

Per ulteriori letture:

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

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


Grazie. Quindi la risposta sta nella comprensione più profonda del filesystem del mio HDD ... E solo per curiosità: conosci qualche metodo di Windows "non normale"? Quello che è effettivamente utile per accedere a quei metafile? Un paio di parole chiave per google sarebbero sufficienti ...
Jeyekomon,

1
@Jeyekomon Devi usare un editor di settori. C'è un esempio qui: blogs.technet.com/b/askcore/archive/2013/03/01/…
David Marshall
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.