Domovská » jak » Co dokáže Verifikovat disk skutečně po spálení a ověřit údaje?

    Co dokáže Verifikovat disk skutečně po spálení a ověřit údaje?

    Funkce "ověřit disk" je skvělá pro to, abyste se ujistili, že se černě vypálený disk dobře ukázal, ale jak přesně funguje? Dnešní příspěvek SuperUser Q & A má odpověď na zvědavou otázku čtenáře.

    Dnešní zasedání Otázky a odpovědi nás přichází s laskavým svolením SuperUser - podřízené rozdělení Stack Exchange, které je založeno na komunitě prostřednictvím skupin webových stránek.

    Foto s laskavým svolením cobalt123 (Flickr).

    Otázka

    Uživatel čtečky SuperUser user1301428 chce vědět, jak jsou disky ověřeny po spálení:

    Co ověřuje, zda disk skutečně po spálení ověří údaje? Představuji si, že to je nějaké srovnání mezi původními soubory a soubory, které byly vypáleny na disku, ale někdo ví, jak to opravdu dělá na nízké úrovni?

    Myslím tím, že vytvoří hash zdrojového a cílového obsahu, pak je porovnává? Pokud ano, uchovává hash vypáleného obsahu v paměti RAM? Nebo ho uloží do dočasného souboru na pevném disku? Existuje protokol o tom, co se děje?

    Jen zvědaví, jak přesně tato funkce funguje. A mám na mysli Windows Image Burner.

    Jak funguje proces ověřování disku?

    Odpověď

    Přispěvatelé společnosti SuperUser Frank Thomas a Synetech mají pro nás odpověď. První, Frank Thomas:

    Podívejte se na tyto stránky MSDN v rozhraní Windows API pro rozhraní IBurnVerification a enum v IMAPI_BURN_VERIFICATION_LEVEL.

    U datových disků vypadá to, že v režimu rychlého přehrávání nekontroluje celý disk, pouze výběr sektorů. Poté zajistí, že rozhraní API vyvolá READ_DISC_INFO a READ_TRACK_INFO úspěšně proti novému disku.

    Pro úplné ověření provádí výše uvedené kontroly a pak provede úplný kontrolní součet poslední relace na novém disku proti kontrolnímu součtu vypočítanému na spuštěném paměťovém toku. Kontrolní součet musí být uložen v ram, ale jsou pravděpodobně krátkodobé hodnoty. Všimněte si, že porovnání je proti obrazu disku v paměti RAM, nikoliv samotné zdrojové médium, takže pokud zdrojová data nečte správně, bude zapsána nesprávně. Ověření to nezjistí.

    U hudebních disků se zaměřuje na kontrolu READ_TRACK_INFO a diskového obsahu, ale nevykonává výpočet kontrolního součtu. Pro hudbu neexistuje úplný režim ověření.

    Následuje odpověď společnosti Synetech:

    Frank pečlivě vysvětlil ověřování specifické pro systém Windows. Dám obecnější odpověď.

    • Co opravdu provede ověření disku po spálení a ověří data?
    • Myslím tím, že vytvoří hash zdrojového a cílového obsahu, pak je porovnává? Pokud ano, uchovává hash vypáleného obsahu v paměti RAM? Nebo ho uloží do dočasného souboru na pevném disku? Existuje protokol o tom, co se děje?

    To je jistě jeden způsob, jak lze provést srovnání: zkopírujte jeden soubor (snad s dostatečně velkým přečtením nízké šance na kolizní algoritmus), opakujte pro druhý a porovnejte hash. Pokud je to tak, jak je ověření implementováno, budete chvíli vidět blesk s LED diodami a po chvíli bliká LED dioda CD / DVD.

    Dalším způsobem, jak implementovat ověření, je čtení bloku jednoho souboru, pak stejný blok z druhého souboru, porovnání a opakování až do konce souboru. V takovém případě uvidíte diody LED obou pohonů, které se střídají dopředu a dozadu.

    Samozřejmě, pokud pevný disk a optická mechanika nemají LED, nebude to tak zřejmé. Ale stále můžete vidět něco jako ProcessMonitor, protože bude zaznamenávat sérii čtení z jednoho, pak druhého buď v jediném, velkém výbuchu nebo střídajícím se, malé výbuchy.

    • Představuji si, že to je nějaké srovnání mezi původními soubory a soubory, které byly vypáleny na disku, ale někdo ví, jak to opravdu dělá na nízké úrovni?

    Ve skutečnosti to všechno opravdu dělá, je vyprázdnit vyrovnávací paměť disku, takže porovnávací funkce čte data z aktuálního disku namísto z mezipaměti paměti. Je to samozřejmě kritický krok, protože pokud se ověření provádí z mezipaměti, nepředstavuje to, co je vlastně na disku, takže korupce může snadno proklouznout.

    Můžete zjistit, zda se porovnání provádí z jednotky nebo z mezipaměti v paměti RAM podle toho, jak rychle se to děje. Pokud ručně provedete jednoduché porovnání (např. S ​​WinDiff, WinMerge nebo pomocí hashování pomocí hashovacího nástroje), zjistíte, že porovnání se děje mnohem rychleji, než se očekávalo, protože čte soubory z mezipaměti paměti. Vymažte mezipaměť a vynucte její čtení ze skutečného disku. U optických jednotek (a jiných vyměnitelných médií, jako jsou flash disky a paměťové karty) stačí vysunout jednotku, aby vyprázdnila mezipaměť, ale pro pevné disky to není tak jednoduché (i když obvykle to nezáleží, protože nová kopie je ta, kterou chcete vyzkoušet).


    Musíte něco přidat k vysvětlení? Vyjměte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.