2011-10-18 15 views
5

Sto indovinando che un filesystem tipico tende a mantenere un qualche tipo di checksum/CRC/hash di tutti i file che gestisce, in modo che possa rilevare la corruzione del file.Ottenere un file di checksum direttamente dal file system invece di calcolare esplicitamente

È che indovinare giusta? E se sì, c'è un modo per accedervi?

Sono principalmente interessato a Windows e NTFS, ma i commenti su altre piattaforme sarebbero benvenuti ... La lingua non è importante a questo punto, ma vorrei evitare l'assembler se possibile.

Grazie.

+3

controllo No. CRC è il lavoro del disco. –

+0

@HansPassant A livello di blocco, sicuro. Ma per quanto riguarda il livello del file? –

+0

a seconda del sistema operativo e del filesystem che può essere vero ... ad esempio per ZFS (disponibile per Sun, Linux e OSX) ... comunque se viene calcolato/memorizzato dal filesystem di solito non è accessibile tramite un'API documentata. .. per arrivare ad esso di solito è necessario scavare in profondità e utilizzare parecchie cose non documentate che in alcuni casi hanno bisogno di permessi specifici (Amministratore, root o persino un modulo/driver del kernel) ... che di solito è molto più difficile del semplice calcolo del proprio checksum ... qual è esattamente il tuo obiettivo? – Yahia

risposta

1

Nella maggior parte dei file system e l'hardware di storage che avrebbero tenere checksum di allocation units, non i file completi.

I checksum nell'hardware non sono probabilmente accessibili in generale e il checksum dei cluster del filesystem non sarebbe molto utile nella maggior parte dei casi, quindi sarebbe difficile da ottenere, se possibile.