วันอังคารที่ 14 ตุลาคม พ.ศ. 2551

ก า ร เ กิ ด B a d ข อ ง Ha r d d i s k

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

การ Low-level Format และ High-level Format


การ Low-lovel Format
เป็นกระบวนการทำงานของฮาร์ดดิสก์โดยมีจุดประสงค์เพื่อสร้างหรือกำหนด
Track, Sector หรืออธิบายได้อีกอย่างว่าเป็นการเขียนโครงสร้างของ
Track,Sector ตามรูปแบบที่ Firmware
ภายในฮาร์ดดิสก์ได้กำหนดไว้ เพื่อให้การทำงานของกลไกภายในกับวงจรควบคุมหรือ
PCB สอดคล้องเป็นระบบเดียวกัน ซึ่งการ
Low-level Format นั้นเป็นการลบข้อมูลทุกสิ่งทุกอย่าง
โดยที่ข้อมูลทุกสิ่งทุกอย่างจะถูกลบไปอย่างถาวรจริง




ก่อนอื่นเราต้องเข้าใจกันเสียก่อนว่า
การ Low-level Format นั้น เป็นกระบวนการทำงานหรือเป็นคำสั่งของฮาร์ดดิสก์รุ่นเก่า
ที่ยังใช้ Actuator แบบ Stepper Motor
,ใช้ระบบ Servo เก่า ๆ แบบ Dedicated
Servo, มีการใช้โครงสร้างของ Track,
Sector แบบเก่า ซึ่งฮาร์ดดิสก์ในปัจจุบันนี้ไม่ใช่และไม่เหมือนกันเลย
การใช้ Stepper Motor เป็น Actuator
ของฮาร์ดดิสก์รุ่นเก่า ๆ นั้น มีข้อเสียหรือจุดอ่อนตรงที่เมื่อเราใช้ไปนาน
ๆ เฟืองกลไกภายใน Motor จะหลวม ทำให้การควบคุมให้หัวอ่าน/เขียนอยู่นิ่ง
ๆ บน Track (ที่จะอ่านข้อมูล)เป็นไปได้ยาก
และอีกสาเหตุที่กลไกหลวม ก็เพราะอุณหภูมิที่สูงซึ่งเกิดจากการที่ตัว
Actuator เคลื่อนที่ไปมาเพื่อหาข้อมูล
แน่นอนค่ะ



มันเป็นโลหะที่ต้องมีความร้อนเกิดขึ้น
เปรียบเทียบก็เหมือนกับ Ster รถจักรยานหรือรถจักรยานยนต์
ที่ต้องรูด เมื่อเจอกับโซ่ที่ลากผ่านไปมาเป็นเวลานาน
ๆ และก็เป็นสาเหตุให้หัว/อ่านเขียน
ไม่สามารถอ่านข้อมูลได้อย่าง ถูกต้อง
ยิ่งนับวันอาการก็จะรุนแรงมากขึ้น



อีกประการหนึ่งที่การ Low-level Format
ไม่สามารถนำมาใช้กับ ฮาร์ดดิสก์รุ่นใหม่ได้ก็เพราะโครงสร้างการจัดวาง
Track, Sector ไม่เหมือนกัน ฮาร์ดดิสก์รุ่นเก่าจะมีจำนวนของ
Sector ต่อ Track คงที่ ทุก ๆ Track
แต่ในฮาร์ดดิสก์รุ่นใหม่ จำนวนของ
Sector จะแปรผันไปตามความยาว ของเส้นรอบวง
(ของ Trackนั่นแหละค่ะ) ยิ่งต่างรุ่นต่างยี่ห้อต่างความจุ
ก็ยิ่งต่างไปกันใหญ่ หากเราฝืนไป
Low-level Format บอกตรง ๆ ว่านึกไม่ออกว่าจะเกิดอะไรขึ้น
ฮาร์ดดิสก์อาจไม่รับคำสั่งนี้เพราะ
ไม่รู้จักหรืออาจรับคำสั่งแล้วแต่ไม่รู้จะทำอย่างไร
จนอาจจะทำให้วงจรคอนโทรลเลอร์ (PCB)
สับสนกันเอง (ระหว่าง IC) จนตัวมันเสียหายก็ได้
แต่ถ้าฮาร์ดดิสก์ของเพื่อนท่านใดเป็นรุ่นเก่า
ซึ่งมีลักษณะตรงกับที่เอ่ยมา และมี
BIOS ที่สนับสนุนก็สามารถ Low-level
Format ได้ครับ (เช่น คอมฯ รุ่น 286
ที่มี Hdd 40MB.) เราจะเห็นได้ว่า
BIOS รุ่นใหม่จะไม่มีฟังก์ชั่น Low-level
Format แล้ว เพราะ BIOS ก็ไม่อาจที่จะรู้จักโครงสร้าง
Track, Sector ของฮาร์ดดิสก์ได้ทุกยี่ห้อ
ทุกรุ่นเพราะความต่างอย่างที่บอกไว้ละค่ะ




กลับมาสู่ความจริงของความรู้สึกเรากันหน่อยนะคะ
ซึ่งเข้าใจดีว่า เพื่อน ๆ ทุกคนหากเมื่อเจอ
Bad Sector ในฮาร์ดดิสก์ของตัวเองย่อมใจเสียแน่นอน
เพราะข้อมูล ที่อยู่ข้างในนั้นมีผลกับจิตใจ
กับความรู้สึกของเรามาก และเราต้องการที่จะได้มันคืน
และในตอนนั้นเราก็ไม่ได้คิด ถึงด้วยซ้ำว่าเราซื้อมันมาแพงแค่ไหน
และถ้าหากเราได้ยิน ได้ฟังอะไรที่เล่าต่อกันมาว่า
มันสามารถที่จะทำให้ฮาร์ดดิสก์ของเราดีเช่นเดิมได้
เราย่อมให้ความสนใจ อยากลอง อยากได้
อยากมี แต่ว่าการ Low-level Format
นั้นใช้ไม่ได้กับฮาร์ดดิสก์รุ่นใหม่
ๆ เราไม่สามารถเอา สนามแม่เหล็กมาเรียงให้ดีเหมือนเดิมได้
และไม่มีเครื่องมืออะไรที่จะมาช่วยได้ด้วย
ก็ต้องปลง และถนอมมัน ให้ดีที่สุด




การ High-level Format หรือการ Format (หลังจากการแบ่ง Partition แล้ว)
ที่เราเรียกกันอยู่บ่อย ๆ โดยใช้
DOS นั้นมีจุดประสงค์เพื่อทำการเขียนโครงสร้างของระบบไฟล์
(FAT: File Allcation Table ซึ่งมีทั้ง
FAT32 และ FAT16) และเขียน Master
Boot Record (ซึ่งเป็นพ.ท.ที่จะเก็บแกนหลักของระบบปฏิบัติการเช่น
DOS) การ Format นี้นั้นฮาร์ดดิสก์จะไปลบ
FAT และ Master Boot Record ทิ้งไป
แต่มันไม่ได้ทำการลบทุกสิ่งทุกอย่าง
เหมือนดังเช่นเรากวาดของบนโต๊ะทิ้งไปจนเหลือแต่พื้นเรียบๆ
มันแค่ทำการเขียนข้อมูล "0000"
ลงไปบนแผ่นดิสก์ เท่านั้น ซึ่งคำว่า
"เขียนข้อมูล
0000 ก็คือการFormat ของเรานั่นแหละค่ะ"

ดังนั้นหากใครคิดว่าการ Format บ่อย
ๆ นั้น ไม่ดีก็นานาจิตตังค่ะ



บางคนถามว่า Virus ทำให้เกิด Bad Sector ได้หรือไม่
ขอตอบว่าไม่ แต่มันทำให้ ฮาร์ดดิสก์เสียได้ค่ะ
เพราะการที่มันเข้าไปฝังที่
Master Boot
Record
ค่ะ ก็ต้องแก้กันโดยการ
Fdisk
กำหนด Partition
กันใหม่ และVirus ก็เป็นเพียงแค่ข้อมูล
ๆ หนึ่งที่เราจะลบทิ้งไปก็ได้ และ
Virus จะเข้าไปใน Firmware
และSystem Area ของฮาร์ดดิสก์ก็ไม่ได้เด็ดขาด
เพราะ Firmware ของฮาร์ดดิสก์จะไม่ยอมให้แม้กระทั่ง
BIOS ของคอมฯเห็น Cylinder นี้ซึ่งเสมือนว่า
Cylinder นี้ไม่มีอยู่จริง การที่ฮาร์ดดิสก์พบ
Bad Sector นั้น มันจะทำการทดลองเขียน/อ่านซ้ำ
ๆ อยู่พักหนึ่งจนกว่าจะครบ Loop ที่
กำหนดแล้ว ว่าเขียนเท่าไหร่ก็อ่านไม่ได้ถูกต้องซักที
ฮาร์ดดิสก์ก็จะตีให้จุดนั้นเป็นจุดต้องห้ามที่จะเข้าไปอ่านเขียนอีก
แต่ถ้าข้อมูลสามารถกู้คืนมาได้มันก็จะถูกย้ายไปที่
ๆ เตรียมไว้เฉพาะ เมื่อฮาร์ดดิสก์ตีว่าจุดใดเสียแล้วมันจะเอาตำแหน่งนั้นไปเก็บที่
System Area ซึ่งข้อมูลที่บอกว่ามีจุดใดที่เสียบ้างนั้นจะถูกโหลดมาทุกครั้งที่ฮาร์ดดิสก์
Boot และเราไม่สามารถเข้าไปแก้ข้อมูลนี้ได้ด้วยค่ะ
Norton ก็ทำไม่ได้ สิ่งที่มันทำ ก็ทำได้แค่
Mark ไว้แล้วก็เก็บข้อมูล นี้ไว้
จากนั้นก็ทำเหมือนกับที่ Firmware
ฮาร์ดดิสก์ทำ คือไม่เข้าไปยุ่งเกี่ยว
พ.ท.นี้อีก หรือหลอกเราว่าไม่มี พ.ท.เสีย
เกิดขึ้นเลย การ Format ด้วย DOS
ก็แก้ไขไม่ได้เช่นกันคะ เพื่อน ๆ
บางคนคิดว่าหากมี Bad Sector แล้วมันจะขยายลุกลามออกไป
ขอตอบว่าไม่จริงค่ะ เราไม่ควรลืม
ว่า บนแผ่นดิสก์นั้นคือสารแม่เหล็กที่ฉาบอยู่
และมันหลุดได้ยาก ต่อให้หลุดแล้วก็ลามไม่ได้ด้วยนะคะ



การซ่อมฮารด์ดิสก์ โดยแก้ไขไม่ให้มี Bad Cluster หรือ Bad Sector



ขอชี้แจงเรื่อง การซ่อมฮารด์ดิสก์ โดยแก้ไขไม่ให้มี Bad Cluster หรือ Bad Sector
ให้เพื่อน ๆ เข้าใจสักหน่อยนะคะว่า การที่ฮารด์ดิสก์มี
Bad Cluster หรือ Bad Sector นั้น
เราไม่สามารถที่จะแก้ไขไม่ให้มันหายไปได
เพราะการทำงานของ Firmeware
ในฮารด์ดิสก์จะกำหนดไว้ว่า ถ้าหากหัวอ่าน/เขียนของมัน
พบปัญหา เช่นอ่านแล้วข้อมูลไม่ถูกต้อง
และวงจรตรวจสอบที่อยู่บน PCB มันใช้
ECC หรือ CRC หรือ Read Retry (หรือวิธีอื่น
ๆ ที่แล้วแต่เทคโนโลยีของ บ. ผู้ผลิต)
เข้ามาช่วยแล้วแต่แก้ไขไม่ได้ ฮารด์ดิสก์จะตีว่า
พ.ท.นั้นเป็น Defect
หรือกำหนดให้เป็นจุดเสียที่มันจะไม่เข้าไปยุ่งเกี่ยวอีก
และข้อมูลที่เอาไว้บอกตัวฮารด์ดิสก์เองว่าจุดใดบ้างที่เสียนั้น
จะเก็บไว้ที่ System Area ซึ่งเป็น
Cylinder ที่เราจะเข้าไปแก้ไขข้อมูลในจุดนี้ไม่ได้เลย
เพราะเป็น Cylinder ที่ฮารด์ดิสก์กันเอาไว้ให้ตัวของมันเองโดยเฉพาะ
และทุกครั้งที่ฮาร์ดดิสก์บูตมันจะต้องเข้าไปอ่านข้อมูลที่
System Area แล้วเอามาเก็บที่ Ram
เพื่อที่จะบอกกับตัวมันเองว่ามี
พ.ท. ตรงไหนบ้างที่ห้ามเข้าไปอ่าน/เขียน



การที่จะเข้าไปแก้ข้อมูลในจุดนี้ต้องใช้เครื่องที่โรงงานผู้ผลิตนั้นออกแบบมาโดยเฉพาะ
และต่อให้เราเข้าไปแก้ได้ก็ไม่มีประโยชน์เพราะ
พ.ท.ตรงนั้นอาจมีสิ่งสกปรกติดอยู่
หรือสนามแม่อาจถูกกระทบกะเทือนจนหลุดออก
ซึ่งเป็นชิ้นเล็กที่ตาเปล่ามองไม่เห็น
และในความเป็นจริงยังมีสาเหตุอื่น
ๆ อีกมากที่ทำให้เกิด Bad Cluster
หรือ Bad Sector ก็ตามแต่จะเรียก
สิ่งที่เราทำได้ดีที่สุดคือ ห้ามกระแทกฮารด์ดิสก์แรง
ไม่ว่ามันจะทำงานอยู่หรือไม่ก็ตาม
และเมื่อคุณจับมันก็ไม่ควรจับที่
PCB
เพราะไฟฟ้าสถิตย์ในตัวเราอาจวิ่งไปยังวงจรที่
PCB แล้วทำให้ IC เสียหายได้ และจุดนี้เองที่ร้านที่ทำให้เกิดร้านรับซ่อมฮาร์ดดิสก์
ซึ่งเขาเพียงแค่อาศัยการเปลี่ยนแผ่น
PCB ที่ประกบอยู่โดยการหารุ่นและยี่ห้อที่ตรงกันมาเปลี่ยน
ง่าย ๆ เท่านี้เอง


และการที่เราคิดว่าแผ่นดิสก์ภายในมีรอยก็น่าจะเปลี่ยนได้
ขอบอกเพื่อน ๆ ว่าเป็นไปไม่ได้เด็ดขาดที่จะเปิด
Cover หรือฝาครอบมันออกมาแล้วเอาแผ่นใหม่ใส่เข้าไป
เพราะบนแผ่นดิสก์ทุกแผ่นและทั้งสองด้านของแผ่นจะมีสัญญาณ
Servo เขียนอยู่ ซึ่งสัญญาณนี้จะถูกเขียนในลักษณะตัดขวางเหมือนกับการแบ่งเค้กกลม
ๆ ออกเป็นส่วน ๆ โดยที่สัญญาณนี้จะต้องตรงกันทุกแผ่นจะวางเยื้องกันไม่ได้เลย
เพราะเครื่องเขียนสัญญาณกำหนดให้ต้องตรงกัน
ซึ่งขอเปรียบเทียบกับล้อรถยนต์ที่ต้องมีจุ๊บเติมลม
ที่เราต้องเอาจุ๊บของล้อทุกล้อมาวางให้ตรงกันเพื่อที่จะบอกให้
PCB ได้รับทราบว่าจุดเริ่มต้นของดิสก์หรือ
Sector 0 หมุนไปอยู่ที่ใดบนแผ่นดิสก์
และสัญญาณนี้ไม่สามารถมองให้ได้ด้วยตาเปล่าต่อให้เอากล้องจุลทรรศมาส่องก็ไม่เห็น
การที่เราจะจับฮารด์ดิสก์ให้มีความปลอดภัยนั้นตัวเราต้องลงกราวนด์
นั่นคือเท้าเราต้องแตะพื้นให้ไฟฟ้าสถิตย์จากตัวเราไหลลงพื้นดิน
เพื่อน ๆ อาจนึกไม่ถึงว่ามันจะมีผลมากถึงขนาดว่าทำให้ฮารด์ดิสก์เสีย
แต่เราอย่าลืมว่ากิจกรรมในชีวิตประจำวันของเราไปจับโลหะอะไรมาบ้างแล้วมันถ่ายเทประจุให้เราเท่าไหร่,จะมีผลต่อสิ่งอื่น
ๆ ไหมเราไม่รู้เหมือนกับรถบรรทุกขนถ่ายน้ำมัน
ที่เวลาวิ่งต้องเอาโซ่ลากไปตามถนนเพื่อระบายประจุ
หรือทำให้เกิดความต่างศักย์น้อยที่สุด
หรือเป็นศูนย์เพราะมันอันตรายมากที่เวลาเอาหัวจ่ายน้ำมันรถไปต่อกับวาลว์รับน้ำมัน
ซึ่งอาจเกิดประจุไฟ้ฟ้าวิ่งจากศักย์สูงไปศักย์ต่ำแล้วเป็นประกายไฟ
เพราะเวลารถวิ่งไปชนอากาศที่มีประจุลอยอยู่มันก็จะสะสมไปเรื่อย



อยากบอกว่าเสียดายมาก ๆ หากฮารด์ดิสก์เกิด
Bad Sector ขึ้นมาแต่ก็ต้องทำใจยอมรับ
เนื่องจากมันแก้ไขไม่ได้จริง ๆ
ต่อให้เอาเครื่องมือในโรงงานมากองต่อหน้าแล้วให้อยู่ใน
Clean Room ก็ทำไม่ได้ (ยกเว้นนั่งรื้อชิ้นส่วนออกหมดแล้วเอาแผ่นดิสก์ใหม่มาใส่เพราะเครื่องเขียน
Servo อยู่ในนั้น) แต่การที่เราจะเลี่ยงไม่ใช้
พ.ท.ที่เสียอยู่ในตอนอื่น ๆ ของข้อมูลนั้นก็ทำได้เช่นแบ่งพาร์ทิชั่นออกเป็นส่วน
ๆ โดยให้พาร์ทิชันที่เราไม่ต้องการครอบตรงจุดเสียไว้
หรือถ้าหากเราต้องการกู้ข้อมูลที่มีความสำคัญมาก
ๆ ก็ต้องใช้ Software ที่ออกแบบมาโดยเฉพาะ
เช่น Spinrite หากถามว่าทำไม บ.ผู้ผลิตไม่ออกแบบให้ฮาร์ดดิสก์แก้ไขข้อมูลให้ถูกต้องเสียก่อน
หรือให้มันสามารถกู้ข้อมูลได้เล่า
คำตอบก็เป็นเพราะมันทำให้ต้นทุนการผลิตสูงขึ้น,
และทำให้ระยะเวลาที่ใช้ในการผลิตหรือกว่าที่จะออกจำหน่ายได้ช้าออกไปอีก
,ทำให้ความเร็วในการทำงานลดลงด้วย

ไม่มีความคิดเห็น: