Jak przechowywane są metadane plików w systemie Windows?

13

(Korzystam z systemu Windows XP, ale wydaje mi się, że jest podobny we wszystkich najnowszych wersjach systemu Windows).

Kiedy tworzysz na przykład nowy pusty dokument tekstowy, zobaczysz we właściwościach, że ma on rozmiar 0 bajtów. Zero bajtów oznacza brak informacji . Brak danych.
Mimo to plik ma jakąś nazwę, może nadal zawierać daty ostatniego dostępu, modyfikacji i utworzenia. Przenosi informacje, czy jest to ukryty plik, czy nie, czy jest tylko do odczytu, czy nie ...

Gdzie są więc przechowywane wszystkie metadane?

Jeyekomon
źródło
nie ma tutaj magii. Przeczytaj odpowiedzi tutaj: stackoverflow.com/questions/4954991/…
HighTechGeek,
Dawno, dawno temu pamiętam, że miałem pewnego rodzaju wirusa, który w jakiś sposób uszkodził kilka plików na moim komputerze, tak że miały rozmiar około 100 GB. Każdy z nich. Na moim twardym dysku 40 GB. Więc musiała być jakaś magia ... :-D
Jeyekomon
1
Na przykład: ntfs.com/ntfs_basics.htm
Koray Tugay

Odpowiedzi:

11

Nauczono cię, że dyski twarde zawierają pliki, ale to nie jest cała prawda. W rzeczywistości dyski twarde zawierają jedną bardzo, bardzo dużą liczbę wyrażoną przez wiele pojedynczych bitów. Ale ta interpretacja nie ma sensu ani dla ciebie, ani dla twojego komputera, ponieważ przetwarzanie pojedynczych dużych liczb nie jest zbyt powszechne (a mówię o NAPRAWDĘ OGROMNYCH liczbach). Zamiast tego komputer dzieli go na mniejsze „słowa” (8-bitowe, 16-bitowe, 32-bitowe lub cokolwiek innego) i używa w ten sposób. Mimo to jest to tylko kilka słów (załóżmy 8-bitowe słowa, tj. Bajty).

Teraz ten dysk jest podzielony na partycje. Wyjaśniłem, dlaczego partycjonowanie jest dobrym pomysłem w tej odpowiedzi :

Ogólnie mówiąc, dyski mogą być używane bez partycjonowania. Większość pendrivów działa w ten sposób. Ale korzystanie z partycji ma wiele zalet, aby wymienić tylko niektóre z nich:

  • Możesz mieć dwa systemy operacyjne siedzące na tym samym dysku twardym i nie kolidujące ze sobą. Każdy z nich będzie traktował swoją partycję jako dysk logiczny i nie będzie bałaganił się z innymi, chyba że to zrobisz.
  • Możesz logicznie oddzielić swoje dane. Jeśli z jakiegoś powodu jedna partycja ulegnie uszkodzeniu, inne partycje najprawdopodobniej pozostaną nietknięte.
  • Korzystanie z partycji jest lepsze niż używanie wielu mniejszych dysków twardych, ponieważ system jest cichszy, zużywa mniej energii i można zmieniać jego rozmiar, usuwać, przenosić itp.
  • Możesz użyć niektórych części dysku twardego do specjalnych celów.

Teraz każda partycja ma własny system plików. Nowoczesne wersje systemu Windows używają NTFS , ale FAT , FAT32 i exFAT są obsługiwane dla zewnętrznych nośników lub starszych partycji. Codzienne instalacje Linuksa zwykle używają systemów plików ext , ext4 jest najnowszym.

System plików określa sposób fizycznego umieszczenia plików na dysku. Możesz myśleć o tym w ten sposób: gdybyś miał 10000-stronicową książkę bez rozdziałów, numerów stron i podziałów linii, bardzo trudno byłoby z niej korzystać. Oczywiście numery stron i tytuły rozdziałów zajmują trochę miejsca na stronie, ale znacznie ułatwiają i przyspieszają korzystanie z książki. Jeśli chcesz przejść do rozdziału, powiedzmy 42, po prostu spójrz na spis treści. Następnie przeglądasz książkę, aż znajdziesz odpowiedni rozdział. Twoje pliki to rozdziały, a twój system plików to książka. Metadane systemu plików, takie jak granice plików, nazwy plików itp., Również zajmują miejsce, ale jest to stosunkowo niewielka ilość miejsca i sprawia, że ​​wszystko działa znacznie szybciej.

Jeśli „rozdział” jest pusty, może mieć nagłówek lub numer strony, prawda? Pusty plik zawiera zero bajtów danych. Metadane zajmują miejsce, ale nie jest to część pliku, ale system plików. W przeciwnym razie zobaczysz nazwy plików w swoich plikach tekstowych?

Nawiasem mówiąc, dlatego wczesne wersje DOS przyjmowały tylko 8,3 nazw - przestrzeń zarezerwowana dla nazw plików była bardzo ograniczona. NTFS zezwala na nazwy plików o długości 255 znaków [1] .


Jeszcze tylko jedno słowo w komentarzu:

Kiedyś miałem pewnego rodzaju wirusa, który w jakiś sposób uszkodził kilka plików na moim komputerze, tak że miały rozmiar około 100 GB. Każdy z nich. Na moim twardym dysku 40 GB. Więc musiała być jakaś magia ... :-D

Całkowicie możliwe jest posiadanie prawidłowych plików większych niż dysk twardy dzięki funkcji zwanej rzadkimi plikami . Hennes doskonale je wyjaśnia w komentarzu do tego pytania :

Wyobraź sobie segregator mogący pomieścić 100 stron. Jeśli użyjesz tego segregatora jako zwykłego pliku, możesz wstawić 100 stron. Możesz przeczytać wszystkie 100. Możesz napisać do wszystkich 100. Teraz wyobraź sobie rzadkie spoiwo. Wstawiasz pierwszą stronę, którą piszesz „strona 1: Treść A”. Następnie wstawisz drugą stronę, którą piszesz „strona 9999: treść b:”. Ilekroć próbujesz przeczytać stronę, sprawdzasz, czy istnieje. Jeśli nie, odpowiedzią będzie pusta strona. Jeśli istnieje, zwracana jest zawartość strony. Za każdym razem, gdy piszesz na stronie, która nie istnieje jeszcze w segregatorze, dodajesz nowy arkusz papieru.

gronostaj
źródło
W przeciwnym razie zobaczysz nazwy plików w swoich plikach tekstowych? Cóż, wiele bogatych typów plików, takich jak zdjęcia lub pliki PDF, może zawierać wiele metadanych. Nawet proste pliki tekstowe zakodowane w UTF-8 zawierają sekwencję EFBBBF, która jest ukryta przez większość edytorów tekstu, więc spodziewałem się, że metadane pliku będą kolejną ukrytą i niedostępną częścią pliku. W każdym razie byłbyś wspaniałym nauczycielem! Każda podana tutaj odpowiedź była (i będzie) bardzo pomocna, ale najbardziej doceniam twój wysiłek.
Jeyekomon
To nie odpowiada na pytanie, prawda? Gdzie są więc przechowywane wszystkie metadane?
Koray Tugay,
@KorayTugay Myślę, że faktyczne pytanie brzmiało: „Jak metadane plików są przechowywane w systemie Windows , aby nie zajmowały miejsca ”. Moim zdaniem najlepszą odpowiedzią, jaką możesz udzielić w poście superużytkownika, jest wyjaśnienie, że są one przechowywane w systemie plików, a nie bezpośrednio w pliku, i dlatego nie liczą się do rozmiaru pliku. Są w książce, ale nie jako część tekstu.
gronostaj
7

Właśnie dowiedziałem się dzisiaj o alternatywnych strumieniach danych systemu Windows (ADS). To jest ukryty rozwidlenie zasobów, które jest dołączone do pliku. Jest częścią NTFS od Windows NT 3.1.

Na przykład, jeśli masz pusty plik tekstowy, ale wypełniasz niektóre informacje podsumowujące w znaczniku właściwości pliku, tworzony jest ukryty plik ADS i dołączany do pliku tekstowego. Większość wersji systemu Windows nie podaje rozmiaru pliku ADS przy zgłaszaniu rozmiaru oryginalnego pliku.

Możesz tworzyć i wyświetlać pliki ADS z wiersza poleceń.

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

utworzy plik test.txt z plikiem ADS o nazwie hidden.txt

możesz użyć tego polecenia do edycji pliku:

notepad test.txt:hidden.txt

Oto łatwy do przeczytania artykuł, który zawiera bardziej szczegółowe informacje.

HighTechGeek
źródło
To naprawdę interesująca rzecz! Tak naprawdę nigdy o tym nie słyszałem ... Dziękuję.
Jeyekomon,
@Jeyekomon wydaje się, że „typ” go nie obsługuje, pastebin.com/raw/4Ae3GGkN, ale widzę echo i notatnik (testowane w win7)
barlop
2

Przeprowadziłem wyszukiwanie i natrafiłem na podobne pytanie zadane w przypadku przepełnienia stosu.

Mówi w zasadzie, że plik jest tworzony i zajmuje kilka bajtów lub klaster dysku twardego itp. Zależy to od ziarnistości dysku twardego i systemu plików itp.

Omawiają to tutaj: /programming/4954991/are-0-bytes-files-really-0-bytes

z dodatkowymi linkami do dalszych badań.

HighTechGeek
źródło
2

Na woluminie NTFS informacje te są przechowywane w metaplikach. W szczególności nazwa pliku i znaczniki czasu są przechowywane w metapliku o nazwie $ MFT. Metapliki nie są dostępne za pomocą zwykłych metod systemu Windows, takich jak Explorer lub wiersz polecenia.

Więcej lektur:

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

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

David Marshall
źródło
Dziękuję Ci. Więc odpowiedź leży w głębszym zrozumieniu systemu plików mojego dysku twardego ... I właśnie z ciekawości - czy znasz jakąś „nienormalną” metodę Windows? Ten, który jest naprawdę przydatny do uzyskiwania dostępu do tych metaplików? Wystarczy kilka słów kluczowych dla google ...
Jeyekomon
1
@Jeyekomon Musisz użyć edytora sektora. Jest tutaj przykład: blogs.technet.com/b/askcore/archive/2013/03/01/…
David Marshall