ผู้ที่ dual boot Linux distribution กับ Microsoft Windows บางครั้งอาจลอง shrink หรือ grow partitions เพื่อเหลือพื้นที่มากขึ้นให้ OS ตัวใดตัวหนึ่ง คุณอาจได้รับคำเตือนจาก GParted ใน Linux หรือ chkdsk ใน Windows ว่ามี bad sectors ผู้ใช้ Linux คนเดียวบางครั้งก็ได้รับการแจ้งเตือนเดียวกัน 儘管เช่นนั้น ผู้ใช้อาจได้รับการแจ้งเตือนเกี่ยวกับสองประเภทของ bad sector ที่แปลงรูปเป็นเดียวกัน ประเภทหนึ่งคือการแจ้งเตือน bad sectors แบบดั้งเดิมที่บ่งชี้ปัญหากับ physical geometry ของ disc platter หรือ NAND memory cell นี่คือสิ่งที่ส่วนใหญ่หมายถึงเมื่อบ่นเกี่ยวกับ bad block แม้จะมีความแตกต่างทางเทคนิคเล็กน้อยระหว่าง bad sector และ bad block อย่างไรก็ตาม เครื่องจักรนادرoare flag sectors ผิด
เหล่านี้เรียกว่า soft bad sectors หรือ software bad blocks และสามารถแก้ไขได้เพียงผ่านการดำเนินการระบบไฟล์ง่ายๆ อย่างไรก็ตาม พิจารณาความอันตรายของการเขียนลง bad blocks มันเป็นความคิดที่ดีที่จะเริ่มสืบสวนด้วย SMART data inspection เมื่อจัดกับ fixed volume นี่เป็น non-destructive และสามารถกรองปัญหา geometry ก่อนดำเนินต่อ หากคุณไม่ทำงานกับ fixed volume คุณอาจต้องการเริ่มสืบสวนด้วยวิธีถัดไป
วิธีที่ 1: ตรวจสอบข้อมูล SMART
ง่ายที่จะเชื่อว่า bad sectors นี้เป็นเพียง software error แต่มีวิธีตรวจสอบว่าจริงหรือไม่ ด้วย SMART data ง่ายที่จะ inspect firmware ของดิสก์เองและรู้แน่ใจ เปิด GNOME Disks Utility จาก Dash ใน Unity, Whisker menu ใน Xfce4, Accessories menu ใน LXDE หรือจาก GNOME Applications menu ใน KDE คุณยังสามารถเริ่มได้โดยพิมพ์ gnome-disks ที่เทอร์มินัลแล้วกด Enter คลิกเมนูข้างขวาของ window controls หลังจาก highlight ฮาร์ดดิสก์ด้วย pointer ในคอลัมน์ซ้าย บน GNU/Linux installs ส่วนใหญ่ Disks utility จะ default ไปที่ primary hard disk
เลือก SMART Data & Self-Tests จากเมนู คุณยังสามารถกด Ctrl+S เพื่อเปิดหน้าต่างนี้ได้ จะแสดงสุขภาพปัจจุบันของไดรฟ์ หากค่าว่าง ให้คลิกปุ่ม Start Self-test เพื่อบังคับให้ดิสก์รัน self-check บรรทัด Overall Assessment ที่ด้านบนจะบอกว่ GNOME Disks Utility คิดว่ไดรฟ์อย่างไร
คุณอาจต้องเลื่อนดู SMART Attributes แม้บน full-screen display ให้ใส่ใจพิเศษตัวเลือกชื่อ Reallocation Count นี่แสดงว่ามี sectors กี่อันที่ถูก reallocate แล้ว หากมี bad sectors มาก อาจเป็นความคิดดีที่จะเปลี่ยนไดรฟ์ก่อนที่จะล้มเหลว تمامًا
วิธีที่ 2: ตรวจสอบ Superblock ที่ถูกต้อง
บางครั้งคุณอาจพบว่า SMART data แสดงทุกอย่างปกติ แต่อาจได้ข้อผิดพลาด Bad Superblock จาก disk utilities บางตัว หากคุณทำงานกับ SD cards, USB memory sticks หรือหน่วยความจำแบบอื่น คุณอาจไม่อ่าน SMART data ได้ และยังอาจมีข้อผิดพลาด บanyakครั้งนี่เป็น software problem พิจารณาปัญหาการรันคำสั่งอย่าง:
fsck.ext4 /dev/sda
นี่น่าจะบ่งชี้ว่าคุณมี bad superblock ซึ่งหมายถึง master block ในระบบไฟล์ของคุณ นี่เป็นผลของ CLI error ไม่ใช่ genuine bad block เนื่องจาก /dev/sdb หมายถึง drive ไม่ใช่ partition คำสั่ง fsck จะหา superblock ที่ไม่มีอยู่และคิดผิดว่ามีบางอย่างผิดปกติ โชคดีที่นี่ไม่ใช่ destructive command รัน:
sudo fsck.ext4 /dev/sda1
มันอาจบอกตอนนี้ว่า file system ของคุณ clean ตรวจสอบให้แน่ใจว่าตัวเลขหลัง ext ตรงกับ ext version ของ volume ของคุณ
คุณอาจได้ข้อผิดพลาดนี้เช่นกัน หากคุณพยายามรัน ext2/3/4 fsck บน volume FAT12/16/32, NTFS หรือ HFS/HFS+ Consistency checker สับสนและคิดว่ามีบางอย่างผิด ในความเป็นจริง file structure type ไม่ตรงกับที่คาดหวัง รัน fsck.vfat หรือ dosfsck บน FAT volumes ไม่ว่าคุณจะใช้ bit version อะไร คุณสามารถใช้สวิตช์ -t หลัง dosfsck หรือ fsck.vfat (fsck.msdos บน Linux บางรุ่น) เพื่อทำเครื่องหมาย unreadable clusters เป็น bad blocks
วิธีที่ 3: ตรวจสอบ Bad Blocks บน NTFS Volumes
สมมติว่าคุณ dual-boot Windows และ Linux และมี superblock หรือ bad sector errors อื่นๆ บน NTFS volume ให้ restart เข้า Windows และจาก command line รัน chkdsk /r c: แทน c: ด้วย drive letter ของ NTFS volume ที่ต้องการ Windows น่าจะต้อง reboot เพื่อทำ surface scan เสร็จ เรื่องนี้อาจใช้เวลานาน ดังนั้นหากดูเหมือน OS ไม่ตอบสนอง แค่เพราะเวลาที่ใช้ หากคุณได้ข้อผิดพลาดเกี่ยวกับสิทธิ์ไม่เพียงพอ ให้คลิกขวา command prompt ใน Start Menu และเลือก Run as administrator ก่อนดำเนินต่อ
หากคุณทำงานกับ NTFS volume ภายใต้ Linux อย่างเดียว คุณไม่มีทางออกมากนัก แต่หาก bad blocks error มาจาก type mismatch คุณมีวิธีแก้ไข รัน sudo ntfsfix /dev/sdb1 แทนตัวอักษรและตัวเลขหลัง /dev/sd ด้วย device และ partition identifier ที่ถูกต้อง จำไว้ว่าคุณสามารถรัน sudo fdisk -l หรือกลับไปที่ GNOME Disks Utility หากติดตั้ง เพื่อตรวจสอบชื่อของทุก volume ที่ต่ออยู่ คุณสามารถรันเป็น sudo ntfsfix -d /dev/sdb1 หากคุณแน่ใจว่าต้องการ clear dirty bit
หากคุณแน่ใจว่า NTFS volume มี soft bad blocks ที่ไม่ได้มาจาก physical hardware geometry เช่นเมื่อคุณ clone old disk ที่มี bad sectors ไปยัง volume ใหม่ ให้รัน sudo ntfsfix -bd /dev/sdb1 บน volume ที่คุณต้องการ นี่จะ reset bad block marker list
วิธีที่ 4: ใช้ Linux Utility badblocks
หลังบูทเข้า live ISO Linux version หรือหาวิธีอื่น unmount ext2, ext3 หรือ ext4 file system คุณสามารถรัน sudo fsck.ext4 -c /dev/sda1 เพื่อทำ read-only scan หา bad blocks โดยธรรมชาติคุณต้องใช้ volume identifier ที่ถูกต้องหลัง /dev/sd และ ext version number ที่ถูกต้องหลัง fsck.ext เพื่อรันให้ถูกต้อง หากคุณระบุ -cc แทน โปรแกรมจะใช้ non-destructive read-write test ที่ครอบคลุมกว่า
นี่คือวิธีปกติของการใช้ badblocks utility แต่คุณสามารถใช้มันด้วยตัวมันเองได้ด้วย รัน sudo badblocks -n บน device name เพื่อรันด้วยตัวมันและรายงาน badblocks ที่เทอร์มินัล คุณสามารถใช้オプชัน -w สำหรับ write-mode test แต่อย่าใช้ -n และ -w พร้อมกัน เพราะมัน mutually exclusive คุณควรไม่ใช้ -w บน volume ที่มีข้อมูล เพราะมันจะลบทุกอย่างสะอาด ใช้ -n ที่ช้ากว่าเพราะมันจะ preserve ข้อมูลในกรณีนี้ -w เหมาะสำหรับ volumes ที่คุณไม่แคร์จะลบ ออปชัน -v สามารถรวมกับทั้งสองได้ และจะให้ verbose output ที่มีประโยชน์สำหรับตรวจสอบ data corruption คุณสามารถใช้ -o พร้อมชื่อ text file เพื่อเขียนข้อมูลออกไปดูภายหลัง คุณอาจรันเป็น sudo badblocks -nv -o badblocks.log /dev/sdb1 เพื่อได้ snapshot เนื่องจากคุณจะเห็นข้อมูลมากหากมี genuine bad blocks
ABOUT THE AUTHOR

Kevin Arrows
Kevin Arrows เป็นผู้เชี่ยวชาญด้านเทคโนโลยีที่มีประสบการณ์มากกว่าหนึ่งทศวรรษ เขาถือใบรับรอง Microsoft Certified Technology Specialist (MCTS) และมีความหลงใหลในการติดตามข่าวสารเทคโนโลยีล่าสุด Kevin เขียนบทความมากมายเกี่ยวกับหัวข้อเทคโนโลยีหลากหลาย แสดงให้เห็นถึงความเชี่ยวชาญในด้านการพัฒนาซอฟต์แวร์ ความปลอดภัยไซเบอร์ และการคอมพิวติ้งบนคลาวด์ ผลงานของเขาได้รับการยอมรับและเคารพจากเพื่อนร่วมงาน และเขาได้รับการขนานนามว่าสามารถอธิบายแนวคิดทางเทคนิคที่ซับซ้อนได้อย่างชัดเจนและกระชับ