โฮมเพจ » ทำอย่างไร » 'ตรวจสอบดิสก์' ทำอะไรจริงๆหลังจากเขียนเพื่อตรวจสอบข้อมูลแล้ว

    'ตรวจสอบดิสก์' ทำอะไรจริงๆหลังจากเขียนเพื่อตรวจสอบข้อมูลแล้ว

    คุณลักษณะ 'ตรวจสอบดิสก์' นั้นยอดเยี่ยมสำหรับการตรวจสอบให้แน่ใจว่าดิสก์ที่ถูกเผาใหม่ของคุณเปิดออกได้ดี แต่มันทำงานอย่างไร โพสต์ SuperUser คำถาม & คำตอบนี้มีคำตอบสำหรับคำถามของผู้อ่านที่อยากรู้อยากเห็น.

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    ภาพถ่ายมารยาทของ cobalt123 (Flickr).

    คำถาม

    ผู้อ่าน SuperUser ผู้ใช้ 1301428 ต้องการทราบวิธีการตรวจสอบความถูกต้องของแผ่นดิสก์หลังจากที่เขียนแล้ว:

    การตรวจสอบดิสก์หลังจากการเบิร์นทำเพื่อยืนยันข้อมูลจริง ๆ ฉันคิดว่ามันเป็นการเปรียบเทียบบางอย่างระหว่างไฟล์ต้นฉบับและไฟล์ที่ถูกเบิร์นบนดิสก์ แต่ไม่มีใครรู้ว่ามันทำได้อย่างไรในระดับต่ำ?

    ฉันหมายถึงมันสร้างแฮชของเนื้อหาต้นทางและปลายทางแล้วเปรียบเทียบกับเนื้อหาเหล่านั้นหรือไม่ ถ้าใช่จะเก็บแฮชของเนื้อหาที่ถูกเบิร์นใน RAM หรือไม่? หรือมันบันทึกไว้ในไฟล์ชั่วคราวบนฮาร์ดไดรฟ์? มีล็อกไฟล์ของสิ่งที่เกิดขึ้นหรือไม่?

    แค่อยากรู้ว่าคุณลักษณะนี้ทำงานอย่างไร และฉันหมายถึง Windows Image Burner.

    กระบวนการตรวจสอบดิสก์ทำงานอย่างไร?

    คำตอบ

    ผู้สนับสนุน SuperUser Frank Thomas และ Synetech มีคำตอบสำหรับเรา มาก่อน Frank Thomas:

    ตรวจสอบหน้า MSDN เหล่านี้บน windows API สำหรับอินเทอร์เฟซ IBurnVerification และ IMAPI_BURN_VERIFICATION_LEVEL enum.

    สำหรับดิสก์ข้อมูลดูเหมือนว่าในโหมดรวดเร็วที่ไม่ได้ตรวจสอบดิสก์ทั้งหมดเพียงแค่เลือกเซ็กเตอร์ จากนั้นตรวจสอบให้แน่ใจว่า API เรียกใช้ READ_DISC_INFO และ READ_TRACK_INFO สำเร็จกับดิสก์ใหม่.

    สำหรับการตรวจสอบเต็มรูปแบบจะทำการตรวจสอบข้างต้นจากนั้นทำการตรวจสอบเต็มรูปแบบในเซสชันล่าสุดของดิสก์ใหม่เทียบกับการตรวจสอบการคำนวณที่คำนวณบนสตรีมหน่วยความจำที่กำลังเขียน เช็คซัมจะต้องถูกเก็บไว้ในหน่วยความจำ แต่ก็มีค่าอายุสั้น โปรดทราบว่าการเปรียบเทียบกับภาพดิสก์ใน RAM ไม่ใช่สื่อต้นฉบับเองดังนั้นหากข้อมูลต้นฉบับอ่านไม่ถูกต้องข้อมูลนั้นจะถูกเขียนอย่างไม่ถูกต้อง การยืนยันจะไม่ตรวจจับสิ่งนี้.

    สำหรับดิสก์เพลงนั้นจะเน้นที่การตรวจสอบ READ_TRACK_INFO และสารบัญของดิสก์ แต่จะไม่ทำการคำนวณผลรวมตรวจสอบ ไม่มีโหมดการตรวจสอบเต็มรูปแบบสำหรับเพลง.

    ตามด้วยคำตอบจาก Synetech:

    Frank อธิบายการตรวจสอบเฉพาะ Windows อย่างดี ฉันจะให้คำตอบทั่วไปมากขึ้น.

    • ตรวจสอบดิสก์หลังจากการเผาไหม้ทำอะไรเพื่อตรวจสอบข้อมูล?
    • ฉันหมายถึงมันสร้างแฮชของเนื้อหาต้นทางและปลายทางแล้วเปรียบเทียบกับเนื้อหาเหล่านั้นหรือไม่ ถ้าใช่จะเก็บแฮชของเนื้อหาที่ถูกเบิร์นใน RAM หรือไม่? หรือมันบันทึกไว้ในไฟล์ชั่วคราวบนฮาร์ดไดรฟ์? มีล็อกไฟล์ของสิ่งที่เกิดขึ้นหรือไม่?

    นั่นคือวิธีการเปรียบเทียบที่สามารถนำมาใช้ได้: แฮชไฟล์หนึ่งไฟล์ (หวังว่าจะมีโอกาสน้อยมากที่อัลกอริทึมการชนกันของข้อมูลที่อ่านได้มาก), ทำซ้ำสำหรับไฟล์อื่นและเปรียบเทียบแฮช หากเป็นวิธีการตรวจสอบความถูกต้องคุณจะเห็นแฟลชไดรฟ์ LED ชั่วขณะหนึ่งจากนั้นแฟลช CD / DVD-LED ชั่วครู่หนึ่ง.

    อีกวิธีหนึ่งในการนำการตรวจสอบไปใช้คือการอ่านบล็อกหนึ่งไฟล์จากนั้นบล็อกเดียวกันจากไฟล์อื่นเปรียบเทียบจากนั้นทำซ้ำจนกว่าจะถึงจุดสิ้นสุดของไฟล์ ในกรณีนี้คุณจะเห็นไฟ LED ของไดรฟ์ทั้งสองสลับไปมา.

    แน่นอนถ้าฮาร์ดไดรฟ์และออปติคัลไดรฟ์ไม่มีไฟ LED ก็จะไม่ชัดเจน แต่คุณยังสามารถเห็นมันด้วยบางอย่างเช่น ProcessMonitor เพราะมันจะบันทึกชุดของการอ่านจากที่หนึ่งจากนั้นอีกคนหนึ่งในการระเบิดครั้งเดียวใหญ่หรือสลับระเบิดขนาดเล็ก.

    • ฉันคิดว่ามันเป็นการเปรียบเทียบบางอย่างระหว่างไฟล์ต้นฉบับและไฟล์ที่ถูกเบิร์นบนดิสก์ แต่ไม่มีใครรู้ว่ามันทำได้อย่างไรในระดับต่ำ?

    ที่จริงแล้วสิ่งที่ทำคือการล้างแคชไดรฟ์เพื่อให้ฟังก์ชั่นการเปรียบเทียบกำลังอ่านข้อมูลจากดิสก์จริงแทนที่จะมาจากแคชหน่วยความจำ เห็นได้ชัดว่านี่เป็นขั้นตอนที่สำคัญเพราะหากการตรวจสอบเสร็จสิ้นจากแคชแล้วมันไม่ได้แสดงถึงสิ่งที่อยู่บนแผ่นดิสก์เพื่อให้เกิดความเสียหายได้อย่างง่ายดายผ่าน.

    คุณสามารถดูได้ว่าการเปรียบเทียบนั้นทำจากไดรฟ์หรือจากแคชใน RAM ด้วยความเร็วที่เกิดขึ้น หากคุณทำการเปรียบเทียบอย่างง่าย ๆ ด้วยตนเอง (เช่น WinDiff, WinMerge หรือโดยการแฮชเครื่องมือเหล่านั้นด้วยเครื่องมือการแปลงแป้นพิมพ์) คุณจะสังเกตเห็นว่าการเปรียบเทียบนั้นเกิดขึ้นเร็วกว่าที่คาดไว้มากเพราะอ่านไฟล์จากแคชหน่วยความจำ คุณต้องล้างแคชเพื่อบังคับให้อ่านจากดิสก์จริง สำหรับออปติคัลไดรฟ์ (และสื่อบันทึกข้อมูลแบบถอดได้อื่น ๆ เช่นแฟลชไดรฟ์และการ์ดหน่วยความจำ) เพียงแค่นำไดรฟ์ออกมาก็เพียงพอที่จะล้างแคช แต่สำหรับฮาร์ดไดรฟ์ก็ไม่ได้เกือบจะง่าย สำเนาใหม่เป็นสิ่งที่คุณต้องการทดสอบ).


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.