13Aug

Qu'est-ce que 'Verify Disc' fait réellement après la gravure pour vérifier les données?

click fraud protection

La fonction 'vérifier le disque' est idéale pour s'assurer que votre disque fraîchement gravé a bien tourné, mais comment fonctionne-t-il exactement? Le SuperUser Q & A d'aujourd'hui a la réponse à la question d'un lecteur curieux.

Question d'aujourd'hui &La session de réponse nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A.

Photo publiée avec l'aimable autorisation de cobalt123( Flickr).

La question

SuperUser reader user1301428 veut savoir comment les disques sont vérifiés après leur gravure:

Qu'est-ce que le disque de vérification après la gravure fait réellement pour vérifier les données? J'imagine que c'est une sorte de comparaison entre les fichiers originaux et les fichiers qui ont été gravés sur le disque, mais quelqu'un sait-il comment cela se fait vraiment à un niveau bas?

Je veux dire, crée-t-il un hachage du contenu de la source et de la destination, puis les compare? Si oui, stocke-t-il le hachage du contenu gravé dans la RAM?Ou l'enregistre-t-il dans un fichier temporaire sur le disque dur? Y a-t-il un fichier journal de ce qui se passe?

instagram viewer

Juste curieux de savoir exactement comment cette fonctionnalité fonctionne. Et je parle de Windows Image Burner.

Comment fonctionne le processus de vérification du disque?

La réponse

SuperUser contributeurs Frank Thomas et Synetech ont la réponse pour nous. Tout d'abord, Frank Thomas:

Consultez ces pages MSDN sur l'API Windows pour l'interface IBurnVerification et l'enum IMAPI_BURN_VERIFICATION_LEVEL.

Pour les disques de données, il semble qu'en mode rapide, il ne vérifie pas le disque entier, juste une sélection de secteurs. Il s'assure ensuite que l'API appelle READ_DISC_INFO et READ_TRACK_INFO sur le nouveau disque.

Pour une vérification complète, il effectue les vérifications ci-dessus, puis exécute une somme de contrôle complète sur la dernière session du nouveau disque par rapport à une somme de contrôle calculée sur le flux de mémoire en cours de gravure. Les sommes de contrôle doivent être stockées dans le RAM, mais il s'agit probablement de valeurs de courte durée. Notez que la comparaison est faite par rapport à l'image du disque dans la RAM, et non au support source lui-même, donc si les données source n'ont pas été lues correctement, elles seront écrites de manière incorrecte. La vérification ne détectera pas cela.

Pour les disques de musique, il se concentre sur la vérification de READ_TRACK_INFO et de la table des matières du disque, mais n'effectue pas de calcul de somme de contrôle. Il n'y a pas de mode de vérification complet pour la musique.

Suivi de la réponse de Synetech:

Frank a bien expliqué la vérification spécifique à Windows. Je vais donner une réponse plus générale.

  • Que vérifie réellement le disque après la gravure pour vérifier les données?
  • Je veux dire, crée-t-il un hachage du contenu de la source et de la destination, puis les compare? Si oui, stocke-t-il le hachage du contenu gravé dans la RAM?Ou l'enregistre-t-il dans un fichier temporaire sur le disque dur? Y a-t-il un fichier journal de ce qui se passe?

C'est certainement une façon de mettre en œuvre une comparaison: hacher un fichier( avec un algorithme de collision à faible probabilité de lecture suffisamment grande), répéter pour l'autre et comparer les hachages. Si c'est ainsi que la vérification est mise en œuvre, vous pourrez voir le voyant DEL du lecteur clignoter pendant un moment, puis le voyant CD / DVD clignotera pendant un moment.

Une autre façon d'implémenter la vérification est de lire un bloc d'un fichier, puis le même bloc de l'autre fichier, de les comparer, puis de répéter jusqu'à la fin du fichier. Dans ce cas, vous verrez alternativement les DEL des deux lecteurs.

Bien sûr, si le disque dur et le lecteur optique n'ont pas de LED, alors ce ne sera pas aussi évident. Mais vous pouvez toujours le voir avec quelque chose comme ProcessMonitor, car il enregistrera une série de lectures de l'une, puis l'autre soit dans une seule, grande rafale ou en alternance, de petites rafales.

  • J'imagine que c'est une sorte de comparaison entre les fichiers originaux et les fichiers qui ont été gravés sur le disque, mais quelqu'un sait-il comment cela se fait vraiment à un niveau bas?

En fait, tout ce qu'il fait est de vider le cache du disque pour que la fonction de comparaison lise les données du disque réel plutôt que du cache mémoire. Il s'agit évidemment d'une étape critique car si la vérification est effectuée à partir du cache, elle ne représente pas ce qui est réellement sur le disque, de sorte que la corruption peut facilement passer inaperçue.

Vous pouvez voir si une comparaison est effectuée à partir du lecteur ou du cache dans la RAM par la vitesse à laquelle il se produit. Si vous faites manuellement une comparaison simple( à savoir avec WinDiff, WinMerge, ou en les hachant avec un outil de hachage), vous remarquerez que la comparaison se produit beaucoup plus rapidement que prévu car il lit les fichiers du cache mémoire. Vous devez vider le cache pour le forcer à lire sur le disque. Pour les lecteurs optiques( et autres supports amovibles tels que les lecteurs flash et les cartes mémoire), il suffit d'éjecter le lecteur pour vider le cache, mais pour les disques durs, ce n'est pas aussi simple que cela.la nouvelle copie est celle que vous voulez tester).

Avoir quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.