2011-10-18 9 views
5

Zgaduję, że typowy system plików ma tendencję do utrzymywania pewnego rodzaju sumy kontrolnej/CRC/wartości mieszania każdego pliku, którym zarządza, dzięki czemu może wykryć uszkodzenie plików.Uzyskiwanie sumy kontrolnej pliku bezpośrednio z systemu plików zamiast obliczania jej jawnie

Czy to prawda? A jeśli tak, czy istnieje sposób, aby uzyskać do niego dostęp?

Zainteresowałem się przede wszystkim systemami Windows i NTFS, ale komentarze na innych platformach również byłyby mile widziane ... W tym momencie język jest nieistotny, ale w miarę możliwości chciałbym omijać asembler.

Dzięki.

+3

sprawdzanie nr CRC jest zadaniem dysku. –

+0

@HansPassant Na poziomie bloku, na pewno. Ale co z poziomem pliku? –

+0

w zależności od systemu operacyjnego i systemu plików, który może być prawdziwy ... na przykład dla ZFS (dostępny dla Sun, Linux i OSX) ... w każdym razie IF, który jest obliczany/przechowywany przez system plików, zwykle nie jest dostępny za pośrednictwem udokumentowanego API. ... aby się do niego dostać, zwykle musisz sięgnąć głęboko i użyć kilku nieudokumentowanych rzeczy, które w niektórych przypadkach wymagają konkretnych uprawnień (Administrator, root, a nawet moduł/sterownik jądra) ... to zwykle znacznie więcej problemów niż tylko obliczenie własnego suma kontrolna ... jaki dokładnie jest twój cel? – Yahia

Odpowiedz

1

W większości systemów plików i sprzętu pamięci masowej utrzymywałyby sumy kontrolne allocation units, a nie pełne pliki.

Sumy kontrolne w sprzęcie są prawdopodobnie ogólnie niedostępne, a suma kontrolna klastrów systemu plików nie byłaby bardzo przydatna w przeważającej większości przypadków, więc byłoby to trudne, jeśli było to możliwe.

Powiązane problemy