Τι κάνει Επαληθεύστε το δίσκο στην πραγματικότητα μετά την καύση για να επαληθεύσετε τα δεδομένα;
Η λειτουργία "επαλήθευση δίσκου" είναι ιδανική για να βεβαιωθείτε ότι ο φρεσκοαπωλημένος δίσκος σας ήταν καλά, αλλά πώς ακριβώς λειτουργεί; Η σημερινή θέση SuperUser Q & A έχει την απάντηση σε μια ερώτηση περίεργου αναγνώστη.
Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με το SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα που κατευθύνεται από τους ιστότοπους ερωτήσεων & απαντήσεων.
Φωτογραφία ευγενική προσφορά του cobalt123 (Flickr).
Το ερώτημα
Ο αναγνώστης SuperUser user1301428 θέλει να μάθει πώς επαληθεύονται οι δίσκοι μετά την εγγραφή τους:
Τι επαληθεύει ότι ο δίσκος μετά την εγγραφή κάνει πραγματικά για να επαληθεύσει τα δεδομένα; Φαντάζομαι ότι είναι κάποια σύγκριση μεταξύ των αρχικών αρχείων και των αρχείων που έχουν καεί στο δίσκο, αλλά κανείς δεν ξέρει πώς γίνεται πραγματικά σε χαμηλό επίπεδο?
Θέλω να πω, δημιουργεί ένα hash του περιεχομένου προέλευσης και προορισμού και στη συνέχεια τις συγκρίνει; Αν ναι, αποθηκεύει το hash του περιεχομένου που έχει καεί στη μνήμη RAM; Ή το αποθηκεύει σε ένα προσωρινό αρχείο στο σκληρό δίσκο; Υπάρχει ένα αρχείο καταγραφής του τι συμβαίνει?
Απλά περίεργος να γνωρίζετε ακριβώς πώς λειτουργεί αυτό το χαρακτηριστικό. Και αναφέρομαι στο Windows Image Burner.
Πώς λειτουργεί η διαδικασία επαλήθευσης δίσκου?
Η απάντηση
Οι συνεργάτες SuperUser Frank Thomas και Synetech έχουν την απάντηση για εμάς. Πρώτα, ο Φρανκ Θωμάς:
Ελέγξτε αυτές τις σελίδες MSDN στο παράθυρο API για τη διεπαφή IBurnVerification και το enum IMAPI_BURN_VERIFICATION_LEVEL.
Για τους δίσκους δεδομένων, φαίνεται ότι σε γρήγορη λειτουργία δεν ελέγχει ολόκληρο το δίσκο, μόνο μια επιλογή τομέων. Στη συνέχεια βεβαιώνεται ότι το API καλεί READ_DISC_INFO και READ_TRACK_INFO να επιτύχει κατά του νέου δίσκου.
Για πλήρη επαλήθευση, εκτελεί τους παραπάνω ελέγχους και στη συνέχεια κάνει ένα πλήρες άθροισμα ελέγχου στην τελευταία συνεδρία του νέου δίσκου έναντι ενός αθροίσματος ελέγχου που υπολογίζεται στο ρεύμα μνήμης που καίγεται. Τα αθροίσματα ελέγχου πρέπει να αποθηκεύονται σε ram, αλλά είναι πιθανώς βραχύβιες τιμές. Σημειώστε ότι η σύγκριση είναι αντίθετη με την εικόνα του δίσκου στη μνήμη RAM και όχι το ίδιο το μέσο προέλευσης, οπότε αν τα δεδομένα προέλευσης δεν διαβάζουν σωστά, θα γραφούν λανθασμένα. Η επαλήθευση δεν θα εντοπίσει αυτό.
Για δίσκους μουσικής, εστιάζει στον έλεγχο του READ_TRACK_INFO και του πίνακα περιεχομένων του δίσκου, αλλά δεν πραγματοποιεί υπολογισμό του αθροίσματος ελέγχου. Δεν υπάρχει πλήρης λειτουργία επαλήθευσης για τη μουσική.
Ακολουθούμενη από την απάντηση της Synetech:
Ο Frank εξήγησε καλά την επαλήθευση που αφορά τα Windows. Θα δώσω μια πιο γενική απάντηση.
- Τι πράγματι κάνει ο δίσκος επαλήθευσης μετά την εγγραφή για την επαλήθευση των δεδομένων?
- Θέλω να πω, δημιουργεί ένα hash του περιεχομένου προέλευσης και προορισμού και στη συνέχεια τις συγκρίνει; Αν ναι, αποθηκεύει το hash του περιεχομένου που έχει καεί στη μνήμη RAM; Ή το αποθηκεύει σε ένα προσωρινό αρχείο στο σκληρό δίσκο; Υπάρχει ένα αρχείο καταγραφής του τι συμβαίνει?
Αυτός είναι σίγουρα ένας τρόπος που μπορεί να εφαρμοστεί μια σύγκριση: κατακερματισμός ενός αρχείου (ελπίζουμε ότι με αρκετά μεγάλη πιθανότητα να διαβάσετε χαμηλή πιθανότητα αλγόριθμου σύγκρουσης), να επαναλάβετε την άλλη και να συγκρίνετε τα hashes. Εάν αυτό είναι ο τρόπος με τον οποίο πραγματοποιείται επαλήθευση, τότε θα μπορείτε να δείτε το φλας LED-οδηγού για λίγο, στη συνέχεια το CD / DVD-LED αναβοσβήνει για λίγο.
Ένας άλλος τρόπος για να εφαρμόσετε την επαλήθευση είναι να διαβάσετε ένα μπλοκ ενός αρχείου, στη συνέχεια το ίδιο μπλοκ από το άλλο αρχείο, να τα συγκρίνετε και στη συνέχεια να επαναλάβετε μέχρι να φτάσετε στο τέλος του αρχείου. Σε αυτήν την περίπτωση, θα δείτε τις λυχνίες LED των δύο δίσκων που εναλλάσσονται εμπρός και πίσω.
Φυσικά, εάν η μονάδα σκληρού δίσκου και η μονάδα οπτικού δίσκου δεν διαθέτουν LED, τότε δεν θα είναι τόσο προφανής. Αλλά μπορείτε ακόμα να το δείτε με κάτι σαν το ProcessMonitor επειδή θα καταγράψει μια σειρά από αναγνώσεις από το ένα, τότε το άλλο είτε σε ένα μόνο, μεγάλο burst ή εναλλασσόμενο, μικρές εκρήξεις.
- Φαντάζομαι ότι είναι κάποια σύγκριση μεταξύ των αρχικών αρχείων και των αρχείων που έχουν καεί στο δίσκο, αλλά κανείς δεν ξέρει πώς γίνεται πραγματικά σε χαμηλό επίπεδο?
Στην πραγματικότητα, το μόνο που πραγματικά κάνει είναι να ξεπλύνετε την προσωρινή μνήμη της μονάδας δίσκου έτσι ώστε η λειτουργία σύγκρισης να διαβάζει τα δεδομένα από τον πραγματικό δίσκο αντί για την μνήμη cache. Προφανώς αυτό είναι ένα κρίσιμο βήμα, διότι αν η επαλήθευση γίνει από την κρυφή μνήμη, τότε δεν αντιπροσωπεύει αυτό που είναι στην πραγματικότητα στο δίσκο, οπότε η διαφθορά μπορεί εύκολα να γλιστρήσει.
Μπορείτε να δείτε αν μια σύγκριση γίνεται από τη μονάδα δίσκου ή από τη μνήμη cache στη μνήμη RAM με το πόσο γρήγορα συμβαίνει. Εάν κάνετε χειροκίνητα μια απλή σύγκριση (δηλ. Με το WinDiff, το WinMerge ή με το hashing με ένα εργαλείο κατακερματισμού), θα παρατηρήσετε ότι η σύγκριση συμβαίνει πολύ πιο γρήγορα από το αναμενόμενο, επειδή διαβάζει τα αρχεία από τη μνήμη cache. Πρέπει να ξεπλύνετε την προσωρινή μνήμη για να την αναγκάσετε να την διαβάσετε από τον πραγματικό δίσκο. Για οπτικούς δίσκους (και άλλα αφαιρούμενα μέσα όπως δίσκους flash και κάρτες μνήμης), απλώς η εξαγωγή της μονάδας είναι αρκετή για να ξεπλύνετε την κρυφή μνήμη, αλλά για τους σκληρούς δίσκους, δεν είναι σχεδόν τόσο απλή (αν και συνήθως αυτό δεν έχει σημασία επειδή νέο αντίγραφο είναι αυτό που θέλετε να δοκιμάσετε).
Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.