Page d'accueil » comment » Que fait réellement Vérifier le disque après la gravure pour vérifier les données?

    Que fait réellement Vérifier le disque après la gravure pour vérifier les données?

    La fonction 'Vérifier le disque' est idéale pour vous assurer que votre disque fraîchement gravé est bien tourné, mais comment fonctionne-t-il exactement? Le message Q & R du SuperUser d'aujourd'hui répond à une question d'un lecteur curieux.

    La séance de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté..

    Photo gracieuseté de cobalt123 (Flickr).

    La question

    Le lecteur superutilisateur User1301428 souhaite savoir comment les disques sont vérifiés après leur gravure:

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

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

    Juste curieux de savoir exactement comment cette fonctionnalité fonctionne. Et je me réfère à Windows Image Burner.

    Comment fonctionne le processus de vérification du disque?

    La réponse

    Les contributeurs du super utilisateur Frank Thomas et Synetech ont la solution pour nous. Tout d'abord, Frank Thomas:

    Consultez ces pages MSDN sur l'API Windows pour l'interface IBurnVerification et l'énumération IMAPI_BURN_VERIFICATION_LEVEL..

    Pour les disques de données, il semble qu'en mode rapide, la somme de contrôle ne soit pas globale, mais uniquement d'une sélection de secteurs. Il s'assure ensuite que les appels d'API READ_DISC_INFO et READ_TRACK_INFO réussissent sur le nouveau disque..

    Pour une vérification complète, il effectue les vérifications ci-dessus, puis effectue 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 bélier, mais ce sont probablement des valeurs de courte durée. Notez que la comparaison est basée sur l'image disque dans la RAM, et non sur le support source lui-même. Par conséquent, si les données source ne sont pas 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 fait 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 source et du contenu de destination, puis les compare? Si tel est le cas, stocke-t-il le hachage du contenu gravé dans la RAM? Ou le sauvegarde-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 un moyen de réaliser une comparaison: hachage d’un fichier (avec un algorithme de probabilité de collision suffisamment grand à lecture suffisamment large), répétez l’opération pour l’autre et comparez les hachages. Si tel est le cas, vous pourrez voir le voyant du lecteur clignoter pendant un moment, puis le voyant du CD / DVD clignoter pendant un moment..

    Une autre façon de mettre en œuvre la vérification consiste à lire un bloc d'un fichier, puis le même bloc de l'autre fichier, à les comparer, puis à répéter jusqu'à ce que la fin du fichier soit atteinte. Dans ce cas, les voyants des deux lecteurs s’alternent alternativement..

    Bien sûr, si le lecteur de disque dur et le lecteur optique ne possèdent pas de DEL, cela 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 de l'autre, en une seule ou grande rafale, ou en alternance, de petites rafales..

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

    En réalité, tout ce qu’il fait est de vider le cache du lecteur afin que la fonction de comparaison lise les données du disque lui-même plutôt que du cache de la mémoire. De toute évidence, il s'agit 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. Une corruption peut donc facilement passer à travers..

    Vous pouvez voir si une comparaison est effectuée à partir du lecteur ou du cache dans la RAM à la vitesse à laquelle elle se produit. Si vous effectuez manuellement une comparaison simple (par exemple avec WinDiff, WinMerge ou en le hachant avec un outil de hachage), vous remarquerez que la comparaison est beaucoup plus rapide que prévu car elle lit les fichiers dans la mémoire cache. Vous devez vider le cache pour le forcer à lire à partir du disque réel. 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 lecteurs durs, il n’est pas aussi simple (bien que cela n’importe généralement pas la nouvelle copie est celle que vous voulez tester).


    Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.