ฉันคิดว่านี่เป็นพฤติกรรมที่ถูกต้อง ดิสก์ 4k ยังคงรายงานส่วนที่ 512 ไบต์ที่ส่วนต่อประสาน แม้ว่าพวกเขาจะอยู่ภายในภาคในบล็อก 4k
จัมเปอร์อยู่ในไดรฟ์ส่วนใหญ่ที่เปิดใช้งานเซกเตอร์กะ บนไดรฟ์ส่วนใหญ่จะเลื่อนเซกเตอร์ที่อยู่ด้วย 1 เหตุผลคือระบบปฏิบัติการที่ไม่รู้จัก 4k เช่น Winodws XP เพื่อที่จะเข้าใจคุณจำเป็นต้องรู้ว่า Windows XP สร้างพาร์ติชันแรกเพื่อเริ่มต้นที่เซกเตอร์ 63 (ใช่นี่ไม่ใช่การพิมพ์ผิด)
ในกรณีส่วนใหญ่ Windows จะใช้ระบบไฟล์ที่มีหน่วยการจัดสรร 4k (กลุ่ม NTFS) ดังนั้นคุณจะสมมติว่าเมื่อคุณอ่านคลัสเตอร์ NTFS จากไดรฟ์ดั้งเดิมมันแค่ต้องอ่านฟิสิคัลบล็อก 8 บล็อก ค่อนข้างง่าย
ตอนนี้ไดรฟ์จะใช้ขนาดเซกเตอร์ 4k เช่นกัน นี่เป็นเรื่องปกติเพราะระบบปฏิบัติการจะไม่อ่านกลุ่มที่เล็กกว่า 4k เนื่องจากนี่เป็นหน่วยการจัดสรรที่เล็กที่สุด (สมมติว่าคุณไม่ได้บังคับกลุ่ม FS ที่เล็กกว่าในระหว่างการจัดรูปแบบ) ในขณะที่ฉันเขียนไดรฟ์ยังคงเปิดเผยเซกเตอร์ 512 ไบต์ที่ระดับอินเทอร์เฟซสำหรับเหตุผลความเข้ากันได้ แต่ถ้าคุณอ่านบล็อก 512 ไบต์เพียงบล็อกเดียวไดรฟ์ภายในจะอ่าน 4k-เซกเตอร์แล้วแยกมันเพื่อส่ง 512 ไบต์เท่านั้นผ่านอินเตอร์เฟสเคเบิ้ล
ดังนั้นตอนนี้ปัญหาอยู่ที่ไหน ###
ปัญหาเกี่ยวกับ Windows XP คือเนื่องจากพาร์ติชันถูกจัดตำแหน่งให้บล็อก 63 โดยค่าเริ่มต้น สิ่งนี้ส่งผลให้เกิดการจัดตำแหน่งที่ไม่ถูกต้องของกลุ่ม NTSF ไปยังบล็อกทางกายภาพ ฉันได้สร้างภาพเล็ก ๆ เพื่ออธิบายสิ่งนี้:
อย่างที่คุณเห็นในภาพบน Windows XP โลจิคัลคลัสเตอร์ไม่ได้จัดแนวกับฟิสิคัลบล็อก 4k ดังนั้นหาก Windows อ่านคลัสเตอร์ NTFS แบบลอจิคัลจะต้องใช้ไดรฟ์เพื่ออ่านบล็อกสองบล็อกไม่ใช่เพียงบล็อกเดียว ยิ่งแย่ไปกว่านั้นถ้าคุณต้องการคลัสเตอร์ NTFS หนึ่งอันมันจะอ่านสองเซ็กเตอร์และจะต้องรวมมันเพื่อที่จะส่งคืนเฉพาะข้อมูลที่ร้องขอไปยังระบบปฏิบัติการ
สำหรับการเขียนมันยิ่งแย่ลง ในกรณีนี้ไดรฟ์ต้องอ่านเซกเตอร์กายภาพ 4k สองรายการจากนั้นรวมเนื้อหาเข้ากับเนื้อหาของคลัสเตอร์ NTFS ใหม่ก่อนจึงจะสามารถบันทึกทั้งสองเซกเตอร์ลงในดิสก์ได้ ซึ่งหมายความว่าแทนที่จะเพียงแค่เปลี่ยนเซกเตอร์บน HDD โดยเขียนทับมันไดรฟ์จะต้องอ่าน 8k รวมในบัฟเฟอร์และเขียน 8k สิ่งนี้ทำให้การเขียนช้าลงมาก
เพื่อป้องกันผู้ผลิต HDD ที่ไม่จำเป็นรวมกันได้เพิ่มการแฮ็ค "ความเข้ากันได้" ซึ่งสามารถเปิดใช้งานผ่านทางจัมเปอร์ เป็นเพียงการเพิ่มที่อยู่แต่ละเซ็กเตอร์ 512- ไบต์โดย 1 ดังนั้นพาร์ติชันแรกที่สร้างโดย Windows จะเริ่มที่เซกเตอร์ 64 และการทำแผนที่มีลักษณะดังนี้:
ตอนนี้การอ่าน / เขียนของบล็อก NTFS แบบลอจิคัล 4k จะส่งผลให้เกิดการอ่าน / เขียนหนึ่งเซกเตอร์กายภาพ
แน่นอนว่าการทำงานนี้ไม่จำเป็นเลยถ้าคุณสร้างพาร์ติชั่นที่สอดคล้องกับขอบเขตของเซกเตอร์ 4k แล้ว ตัวอย่างเช่นบน Linux คุณสามารถใช้fdisk
เพื่อกำหนดว่าจะให้พาร์ทิชันเริ่มบล็อกใด ดังนั้นจึงเป็นความคิดที่ดีที่จะใช้การคูณ 8 กับที่นี่
Windows เริ่มพาร์ติชั่นแรกที่ส่วน 2048 AFAIR ตั้งแต่ Vista ดังนั้นปัญหานี้จะไม่เกิดขึ้นที่นี่อีกต่อไป
คำเตือน : หากคุณยังคงใช้จัมเปอร์ทำงานบนระบบปฏิบัติการ 4k เช่น Vista, Win7 หรือ Win2k8 R2 สิ่งนี้อาจเป็นการจัดตำแหน่งเซกเตอร์ BREAK จริง เหตุผลก็คือไดรฟ์จะเพิ่มเซกเตอร์ที่อยู่อีกครั้งโดย 1 ทำให้พาร์ติชันแรกถูกจัดตำแหน่งให้กับเซกเตอร์ 2049 ซึ่งทำให้ประสิทธิภาพการทำงานลดลงอีกครั้ง
ดังนั้นตรวจสอบให้แน่ใจว่าคุณใช้ระบบปฏิบัติการ 4k ที่คุณถอดจัมเปอร์ออกก่อนที่จะแบ่งพาร์ติชันไดรฟ์ ในกรณีเฉพาะของคุณฉันคิดว่าทุกสิ่งควรจะดีตราบใดที่คุณได้ทำการแบ่งพาร์ติชั่นไดรฟ์ใหม่โดยถอดจัมเปอร์ออก การฟอร์แมตไดร์ฟไม่มีส่วนเกี่ยวข้องกับการจัดตำแหน่งเซ็กเตอร์และการกำหนดแอดเดรสขนาด 4k สิ่งเดียวที่คุณควรตรวจสอบในระหว่างการฟอร์แมตคือคุณไม่ได้ใช้ขนาดของคลัสเตอร์ที่เล็กกว่า 4k เนื่องจากคลัสเตอร์ NTFS 2k จะส่งผลให้ความต้องการในการอ่านเซกเตอร์ 4k เต็มรูปแบบสำหรับการเข้าถึง HDD แต่ละระบบจากระบบปฏิบัติการ โดยวิธีการ: การใช้ 8k NTFS clusters ยังคงใช้ได้ทั้งหมดเนื่องจากดิสก์จะอ่าน 2 เซกเตอร์สำหรับแต่ละการดำเนินการอ่าน / เขียน NTFS