วันพฤหัสบดีที่ 8 ตุลาคม พ.ศ. 2552

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

การ 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 หากถามว่าทำไม บ.ผู้ผลิตไม่ออกแบบให้ฮาร์ดดิสก์แก้ไขข้อมูลให้ถูกต้องเสียก่อน หรือให้มันสามารถกู้ข้อมูลได้เล่า คำตอบก็เป็นเพราะมันทำให้ต้นทุนการผลิตสูงขึ้น, และทำให้ระยะเวลาที่ใช้ในการผลิตหรือกว่าที่จะออกจำหน่ายได้ช้าออกไปอีก ,ทำให้ความเร็วในการทำงานลดลงด้วย

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

แสดงความคิดเห็น