คุณลักษณะ "ตรวจสอบดิสก์" นั้นยอดเยี่ยมในการตรวจสอบว่าดิสก์ที่เพิ่งเบิร์นใหม่นั้นออกมาดี แต่มันทำงานอย่างไร โพสต์ถาม & ตอบ SuperUser วันนี้มีคำตอบสำหรับคำถามของผู้อ่านที่อยากรู้อยากเห็น
เซสชันคำถามและคำตอบของวันนี้มาถึงเราโดยได้รับความอนุเคราะห์จาก SuperUser ซึ่งเป็นแผนกย่อยของ Stack Exchange ซึ่งเป็นการรวมกลุ่มเว็บไซต์ถาม & ตอบโดยชุมชน
เอื้อเฟื้อภาพโดย โคบอลต์ 123 (Flickr) .
คำถาม
ผู้อ่าน SuperUser user1301428 ต้องการทราบวิธีการตรวจสอบแผ่นดิสก์หลังจากถูกเบิร์น:
การตรวจสอบดิสก์หลังจากเบิร์นจริงทำอะไรเพื่อตรวจสอบข้อมูล ฉันคิดว่ามันเป็นการเปรียบเทียบระหว่างไฟล์ต้นฉบับกับไฟล์ที่ถูกเบิร์นในแผ่นดิสก์ แต่มีใครรู้บ้างไหมว่ามันทำได้ในระดับต่ำจริง ๆ ?
ฉันหมายความว่ามันสร้างแฮชของเนื้อหาต้นทางและปลายทางจากนั้นเปรียบเทียบหรือไม่ ถ้าเป็นเช่นนั้นมันจะเก็บแฮชของเนื้อหาที่ถูกเบิร์นไว้ใน 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 ฉันจะให้คำตอบที่กว้างขึ้น
- Verify disc หลังจากเบิร์นจริงทำอะไรเพื่อยืนยันข้อมูล?
- ฉันหมายความว่ามันสร้างแฮชของเนื้อหาต้นทางและปลายทางจากนั้นเปรียบเทียบหรือไม่ ถ้าเป็นเช่นนั้นมันจะเก็บแฮชของเนื้อหาที่ถูกเบิร์นไว้ใน RAM หรือไม่? หรือบันทึกไว้ในไฟล์ชั่วคราวในฮาร์ดไดรฟ์? มีไฟล์บันทึกของสิ่งที่เกิดขึ้นหรือไม่?
นั่นเป็นวิธีหนึ่งที่สามารถใช้การเปรียบเทียบได้อย่างแน่นอน: แฮชไฟล์เดียว (หวังว่าจะมีขนาดใหญ่พอ - อ่านอัลกอริทึมการชนกันที่มีโอกาสน้อย) ทำซ้ำอีกครั้งและเปรียบเทียบแฮช หากนั่นคือวิธีการใช้งานการตรวจสอบคุณจะสามารถเห็นแฟลชไดรฟ์ LED ชั่วขณะหนึ่งแล้วแฟลช LED / DVD-LED ชั่วขณะ
อีกวิธีหนึ่งในการใช้การตรวจสอบคือการอ่านบล็อกของไฟล์หนึ่งจากนั้นบล็อกเดียวกันจากไฟล์อื่นเปรียบเทียบจากนั้นทำซ้ำจนกว่าจะถึงจุดสิ้นสุดของไฟล์ ในกรณีนี้คุณจะเห็นไฟ LED ของไดรฟ์สองตัวสลับกันไปมา
แน่นอนว่าหากฮาร์ดไดรฟ์และออปติคัลไดรฟ์ไม่มีไฟ LED ก็จะไม่ชัดเจนเท่าที่ควร แต่คุณยังสามารถดูได้ด้วยบางสิ่งเช่น ProcessMonitor เพราะมันจะบันทึกชุดของการอ่านจากที่หนึ่งจากนั้นอีกชุดหนึ่งไม่ว่าจะเป็นการระเบิดครั้งเดียวครั้งใหญ่หรือการสลับการระเบิดขนาดเล็ก
- ฉันคิดว่ามันเป็นการเปรียบเทียบระหว่างไฟล์ต้นฉบับกับไฟล์ที่ถูกเบิร์นในแผ่นดิสก์ แต่มีใครรู้บ้างไหมว่ามันทำได้ในระดับต่ำจริง ๆ ?
จริงๆแล้วสิ่งที่ทำได้คือล้างแคชของไดรฟ์เพื่อให้ฟังก์ชันเปรียบเทียบกำลังอ่านข้อมูลจากแผ่นดิสก์จริงแทนที่จะอ่านจากแคชหน่วยความจำ เห็นได้ชัดว่านี่เป็นขั้นตอนที่สำคัญเนื่องจากหากการตรวจสอบเสร็จสิ้นจากแคชแล้วจะไม่ได้แสดงถึงสิ่งที่มีอยู่จริงในแผ่นดิสก์ดังนั้นการทุจริตจึงสามารถผ่านพ้นไปได้
คุณสามารถดูว่าการเปรียบเทียบเสร็จสิ้นจากไดรฟ์หรือจากแคชใน RAM ตามความเร็วที่เกิดขึ้น หากคุณทำการเปรียบเทียบแบบง่ายๆด้วยตนเอง (เช่นด้วย WinDiff, WinMerge หรือโดยการแฮชด้วยเครื่องมือแฮช) คุณจะสังเกตเห็นว่าการเปรียบเทียบเกิดขึ้นเร็วกว่าที่คาดไว้มากเนื่องจากกำลังอ่านไฟล์จากแคชหน่วยความจำ คุณต้องล้างแคชเพื่อบังคับให้อ่านจากแผ่นดิสก์จริง สำหรับออปติคัลไดรฟ์ (และสื่อแบบถอดได้อื่น ๆ เช่นแฟลชไดรฟ์และการ์ดหน่วยความจำ) เพียงแค่นำไดรฟ์ออกก็เพียงพอที่จะล้างแคช แต่สำหรับฮาร์ดไดรฟ์นั้นไม่ง่ายเลย (แม้ว่าโดยปกติจะไม่สำคัญเพราะ สำเนาใหม่คือสำเนาที่คุณต้องการทดสอบ)
มีสิ่งที่จะเพิ่มคำอธิบาย? ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange ที่เชี่ยวชาญด้านเทคโนโลยีคนอื่น ๆ หรือไม่? ดูกระทู้สนทนาฉบับเต็มได้ที่นี่ .