ในหนึ่ง บทความก่อนหน้า เราได้พูดคุยเกี่ยวกับวิธีการแก้ไขปัญหาที่เกี่ยวข้องกับ BIOS ในนี้เราจะมุ่งเน้นไปที่องค์ประกอบอื่นที่แม้ว่าจะไม่จำเป็น แต่ก็จำเป็นต่อการใช้ประโยชน์สูงสุดจากคอมพิวเตอร์ของเรา ตอนนี้เราเห็น วิธีซ่อมแซมฮาร์ดไดรฟ์โดยใช้ซอฟต์แวร์ฟรีและยูทิลิตี้โอเพ่นซอร์ส
หน้าที่ของฮาร์ดดิสก์คือการ อนุญาตให้จัดเก็บและเรียกใช้ข้อมูลจำนวนมาก ในกรณีส่วนใหญ่ พื้นที่เก็บข้อมูลนั้นจะเป็นแบบถาวร (อย่างน้อยก็จนกว่าเราจะตัดสินใจลบออกโดยสมัครใจ) นอกจากนี้ ยังทำงานร่วมกับ RAM เมื่อต้องเก็บข้อมูลมากกว่าที่จะเก็บได้ โดยทำหน้าที่เป็นที่เก็บข้อมูลชั่วคราว
วิธีซ่อมแซมฮาร์ดไดรฟ์
หากต้องการทราบวิธีแก้ปัญหา ก่อนอื่นเราต้องเข้าใจธรรมชาติของปัญหา และด้วยเหตุนี้ เราจำเป็นต้องทราบองค์ประกอบและการทำงานของฮาร์ดดิสก์ไดรฟ์
ภายในกล่องสุญญากาศ เราพบส่วนประกอบที่แตกต่างกันสองส่วน:
- ชุดส่วนประกอบอิเล็กทรอนิกส์และเครื่องกล รับผิดชอบขั้นตอนการจัดเก็บและเรียกใช้ข้อมูล
- กองแผ่นดิสก์ที่เรียกว่าแผ่นเสียง จานเก็บข้อมูลในรูปแบบแม่เหล็กทั้งด้านบนและด้านล่างในองค์ประกอบขนาดเล็กที่สามารถแม่เหล็กหรือลดอำนาจแม่เหล็กแทน 1 หรือ 0 ในข้อมูลหนึ่งบิต
การทำงานของฮาร์ดไดรฟ์
มีหัวอ่านและเขียนสำหรับแต่ละพื้นผิว กล่าวคือ จำนวนหัวจะเป็นสองเท่าของจำนวนจาน โดยใช้แขนกล หัวเคลื่อนที่เป็นเส้นตรงจากด้านนอกเข้าด้านใน ในขณะเดียวกัน กองจานจะหมุนด้วยความเร็วคงที่ในขณะที่กำลังเขียนหรืออ่านข้อมูล เมื่อบางสิ่งกำลังจะอ่านหรือเขียน ส่วนหัวจะเข้าที่และรอให้ดิสก์หมุนจนกว่าส่วนหัวที่สอดคล้องกันจะขึ้นตรงกับตำแหน่งของข้อมูลที่ต้องการหรือตำแหน่งที่กำหนดให้บันทึก
พื้นผิวแต่ละส่วนของใบหน้าแบ่งออกเป็นวงกลมศูนย์กลางที่เรียกว่ารอย. แทร็กที่อยู่ในตำแหน่งเดียวกันบนดิสก์ทั้งหมดในสแต็กเรียกว่า ไซลินเดอร์ แทร็กถูกแบ่งย่อยออกเป็นเซกเตอร์ซึ่งเป็นหน่วยข้อมูลที่เล็กที่สุดที่สามารถเขียนลงดิสก์ได้
ในการระบุหัว เซกเตอร์ และกระบอกสูบ เราต้องจำไว้ว่าเฮดและกระบอกสูบเริ่มต้นจากศูนย์และเซกเตอร์จากหนึ่ง กล่าวคือเซกเตอร์แรกของฮาร์ดดิสก์จะเป็นเซกเตอร์ที่สอดคล้องกับเฮด 0, ไซลินเดอร์ 0 และเซกเตอร์ 1
อย่างไรก็ตาม Linux (และระบบปฏิบัติการอื่นๆ) ไม่ทำงานกับฟิสิคัลพาร์ติชัน แต่ใช้พาร์ติชันที่ใช้ซอฟต์แวร์แทน ซึ่งเรียกว่าพาร์ติชัน. ในทางปฏิบัติ พาร์ติชันทำงานราวกับว่าเป็นหน่วยเก็บข้อมูลแยกต่างหาก
ภายในแต่ละพาร์ติชัน เนื้อหาจะถูกจัดระเบียบเป็นโครงสร้างลำดับชั้นที่เรียกว่าไดเร็กทอรี. ในขณะที่พาร์ติชันมีขนาดคงที่และใช้กระบอกสูบที่อยู่ติดกัน ไดเร็กทอรีสามารถเปลี่ยนแปลงสิ่งนี้และกระจัดกระจายได้ทุกที่บนพาร์ติชัน ภายในดิสก์ยูนิตเดียวกันอาจมีระบบไฟล์สำหรับแต่ละพาร์ติชัน ซึ่งจะจำเป็นสำหรับเนื้อหาภายในพาร์ติชันแต่ละพาร์ติชัน
ความแตกต่างระหว่าง GPT และ MBR
เพื่อให้สามารถเขียนหรืออ่านข้อมูลเฉพาะได้ ไดรฟ์ต้องมีอย่างน้อยหนึ่งพาร์ติชั่นและที่สำหรับค้นหาข้อมูลเกี่ยวกับพาร์ติชั่นที่มีอยู่ทั้งหมดที่จุดเริ่มต้นและจุดสิ้นสุด และจุดใดที่เริ่มต้นระบบปฏิบัติการเมื่อเปิดเครื่องคอมพิวเตอร์
ทั้งสองมีอยู่ วิธีการจัดเก็บข้อมูลนั้น: Master Boot Record (MBR) และ GUID Partition Table (GPT)
MBR เป็นวิธีที่เก่าแก่ที่สุด ประกอบด้วย บูตเซกเตอร์พิเศษอยู่ที่จุดเริ่มต้นของไดรฟ์ นอกจากข้อมูลเกี่ยวกับพาร์ติชันแล้ว ไดรฟ์ยังมี bootloader ซึ่งในกรณีที่ติดตั้งระบบปฏิบัติการมากกว่าหนึ่งระบบให้เลือกว่าจะเริ่มต้นจากระบบใด
MBR สามารถทำงานได้เฉพาะกับไดรฟ์ที่มีขนาดไม่เกิน 2TB และพาร์ติชันหลักสี่พาร์ติชัน หรือพาร์ติชันหลักสามพาร์ติชันและพาร์ติชันเสริมหนึ่งพาร์ติชันที่สามารถแบ่งย่อยเพิ่มเติมออกเป็นโลจิคัลพาร์ติชัน
เมื่อใช้ GPT แต่ละพาร์ติชันจะได้รับ "ตัวระบุที่ไม่ซ้ำกันทั่วโลก" GPT ไม่จำกัดความจุของไดรฟ์หรือจำนวนพาร์ติชันของ MBRไม่ว่าในกรณีใด ข้อจำกัดที่มีอยู่จะถูกกำหนดโดยระบบปฏิบัติการ
ข้อดีอีกอย่างของ GPT ก็คือ ซึ่งแตกต่างจาก MBR ซึ่งเก็บข้อมูลการแบ่งพาร์ติชันและการบู๊ตที่จุดเริ่มต้นของไดรฟ์ โดยจะบันทึกเป็นสำเนาหลายชุดทั่วทั้งไดรฟ์. นอกจากนี้ยังตรวจพบปัญหาความสมบูรณ์ของข้อมูลโดยดูที่ค่าการตรวจสอบความซ้ำซ้อนแบบวนรอบ ในกรณีที่พบความเสียหาย ให้ลองกู้คืนจากตำแหน่งอื่นบนดิสก์
ปัญหาทั่วไปและวิธีแก้ไขใน Linux
โดยทั่วไปเราจะพบปัญหาได้ 4 ประเภท:
- การลบข้อมูลที่สำคัญ: สิ่งนี้สามารถเกิดขึ้นได้เนื่องจากข้อผิดพลาดของผู้ใช้ที่ลบสิ่งที่ไม่ควรลบ หรือเกิดจากข้อบกพร่องในซอฟต์แวร์ที่ใช้
- การกระทำของไวรัส: แม้ว่า Linux จะมีระบบการอนุญาตที่ทำให้มีความเสี่ยงน้อยกว่าระบบปฏิบัติการอื่นๆ แต่ไม่มีกลไกการรักษาความปลอดภัยใดที่สามารถอยู่รอดได้หากผู้ใช้ขาดความสามารถของผู้ใช้ สิ่งที่ต้องทำคือไปที่เว็บไซต์ที่ถูกบุกรุกเพื่อให้มัลแวร์เข้าถึงไดรฟ์ที่เชื่อมต่อและยุ่งเกี่ยวกับข้อมูล
- เซกเตอร์เสียในฮาร์ดไดรฟ์: ในกรณีนี้อาจเกิดจากความผิดพลาดในการผลิตหรือความเสียหายทางกายภาพที่เกิดขึ้นระหว่างการจัดการ
วิธีที่เราสามารถตรวจจับปัญหาของไดรฟ์ได้ก่อนที่จะสายเกินไปคือ:
คำสั่ง dd
ด้วยคำสั่งนี้ เราสามารถวัดความเร็วในการพิมพ์ได้ สำหรับสิ่งนี้ เราเปิดเทอร์มินัลแล้วเขียน:
dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
เป็นไปได้ที่จะวัดเวลาแฝงด้วยคำสั่ง:
dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync
คำสั่ง fsck
คำสั่งนี้เปิดยูทิลิตี้ที่ ให้คุณสแกนฐานข้อมูลไฟล์เพื่อค้นหาและพยายามแก้ไขข้อผิดพลาด นอกจากนี้ยังสร้างรายงานผล ในกรณีที่ระบบปิดโดยไม่คาดคิด fsck จะทำงานโดยอัตโนมัติ
ในการใช้คำสั่งนี้ เราต้องระบุพาร์ติชันที่เราต้องการวิเคราะห์ เราดำเนินการด้วยคำสั่ง:
sudo fdisk -l
เมื่อเราระบุพาร์ติชันที่ค้นหาแล้ว เราต้องจดบันทึกตัวระบุ ซึ่งจะอยู่ในรูปแบบ /dev/sdx* โดยที่ x คือตัวอักษรที่ขึ้นต้นด้วย a สำหรับไดรฟ์แรก และ * เป็นตัวเลขที่ขึ้นต้นด้วย 1 สำหรับพาร์ติชันแรก
ในการตรวจสอบ ขั้นแรกให้ยกเลิกการต่อเชื่อมพาร์ติชันด้วยคำสั่ง
umount /dev/sdX*
จากนั้นเราเปิดคำสั่งด้วย:
fsck /dev/sdX*
หากเราต้องการตรวจสอบยูนิตทั้งหมด เราจะเขียนคำสั่งเดียวกัน แต่ไม่ต้องระบุหมายเลขพาร์ติชัน
ในการสแกนพาร์ติชันปัจจุบัน คุณต้องดำเนินการดังกล่าวจากสื่อการติดตั้งหรือจากโหมดช่วยเหลือของ bootloader
คำสั่งแบดล็อค
คำสั่งนี้ ค้นหาเซกเตอร์เสียและบันทึกข้อมูล ในไฟล์ข้อความ
คำแนะนำมีดังนี้:
sudo badblocks -v /dev/sdX*> ~/sectores_dañados.txt
คำสั่ง e2fsck
นี่คือ คำสั่งตรวจจับและแก้ไขข้อผิดพลาด เฉพาะสำหรับระบบไฟล์ Ext ไวยากรณ์คือ:
sudo e2fsck -cfpv /dev/sdX*
คำสั่ง cfpv ระบุว่า:
- c ดังนั้นโปรแกรมควรค้นหาบล็อกเสียและเพิ่มลงในรายการ
- f ซึ่งควรทำการตรวจสอบระบบไฟล์ด้วย
- p ที่คุณควรพยายามซ่อมแซมบล็อกเสีย
- v ซึ่งควรแสดงในผลลัพธ์ของขั้นตอนเสร็จสิ้น
e2fsck และแบดล็อคสามารถรวมกันได้โดยให้อันแรกอ่านรายการข้อผิดพลาดที่ตรวจพบโดยอันหลัง
sudo e2fsck -l bad_sectors.txt /dev/sdX*
คำสั่งดิสก์ทดสอบ
TestDisk คือ เครื่องมือกู้คืนข้อมูลที่ถูกลบ โดยเจตนา บังเอิญ หรือประสงค์ร้าย ผลลัพธ์อาจไม่สมบูรณ์แบบเสมอไป และไฟล์จะไม่กู้คืนชื่อเดิม ดังนั้นเราต้องตรวจทานทีละไฟล์เพื่อค้นหาสิ่งที่เรากำลังมองหา
ก่อนเริ่มใช้งานเราต้องติดตั้งโดยใช้ตัวจัดการแพ็คเกจของการแจกจ่ายของเรา เมื่อติดตั้งแล้วให้เปิดโปรแกรมด้วยคำสั่ง
testdisk
เมื่อเราทำเช่นนี้ เราจะเห็นตัวเลือกสามตัวเลือก:
- สร้าง ไฟล์บันทึก
- เพิ่ม ข้อมูลเพิ่มเติมที่รวบรวมในเซสชันก่อนหน้า
- อย่าลงทะเบียน ข้อมูล.
ต่อไป เราเลือกหน่วยที่เราต้องการวิเคราะห์ด้วยเคอร์เซอร์ จากนั้นเลื่อนไปที่คำสั่งเพื่อดำเนินการต่อแล้วกด Enter ในหน้าจอต่อไปนี้ เราจะระบุประเภทของตารางพาร์ติชันและโหมดการกู้คืน ในที่สุดเราเลือกพาร์ติชัน
เพื่อให้สมบูรณ์ เราไปที่ไดเร็กทอรีที่มีไฟล์ที่ถูกลบ เราทำเครื่องหมาย เรากด C เพื่อเริ่มการกู้คืน จากนั้นไปที่ตำแหน่งที่จะบันทึก
คำสั่งเหล่านี้สามารถใช้กับอินเทอร์เฟซแบบกราฟิกได้ ตัวอย่างเช่น ใน GNOME เรามีแอปพลิเคชัน gparted พบได้ในที่เก็บและเป็นการแจกจ่าย Linux ที่สามารถใช้ในโหมด Live เดสก์ท็อป KDE ยังมีเครื่องมือแก้ไขพาร์ติชันของตัวเองอีกด้วย
ในทางกลับกัน มีวิธีการกู้คืนการชำระเงินบางส่วน อย่างไรก็ตาม, ไม่รับประกันผลลัพธ์ที่สมบูรณ์แบบ ดังนั้นจึงเป็นการดีที่สุดที่จะมีสำเนาไฟล์สำคัญหลายชุด ทั้งในระบบและในระบบคลาวด์
ขอบคุณสำหรับการรวบรวม โชคดีที่ทุกอย่างเป็นไปได้ด้วยดีสำหรับฉัน แต่เมื่อถึงเวลา มันดีมากที่มีบทความที่เป็นประโยชน์เช่นเดียวกับบทความนี้ในบุ๊กมาร์ก
กราเซีย