ตรวจสอบดิสก์ Linux ตรวจสอบว่าดิสก์ทำงานอย่างถูกต้องใน Ubuntu โปรแกรมคอนโซล Badblocks

หากในระหว่างการบู๊ต ระบบปฏิบัติการรายงานว่ามีข้อผิดพลาดในระบบไฟล์บนพาร์ติชั่นใดพาร์ติชั่นหนึ่ง คุณควรตรวจสอบดิสก์ทันทีและแก้ไขข้อผิดพลาดของระบบไฟล์

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

สำคัญ!การเปิดตัวและการดำเนินการ FSCKบนระบบไฟล์ที่เมาท์อาจทำให้ข้อมูลเสียหายได้ ดังนั้นใช้วัสดุนี้โดยยอมรับความเสี่ยงเอง ผู้เขียนจะไม่รับผิดชอบต่อความเสียหายใด ๆ ที่คุณอาจเกิดขึ้น

เพื่อป้องกันตัวเอง คุณต้อง:

  • เปลี่ยนเป็นโหมดผู้ใช้คนเดียวและยกเลิกการต่อเชื่อมระบบไฟล์
  • บูตคอมพิวเตอร์เข้าสู่โหมดการกู้คืนโดยใช้ซีดีการติดตั้ง

ดังนั้น คุณต้องตรวจสอบดิสก์และแก้ไขข้อผิดพลาดของระบบไฟล์ มาเริ่มกันเลย

1) โหมดผู้ใช้คนเดียว

เปลี่ยนระดับเริ่มต้นและ ถอนติดตั้งระบบไฟล์:

#เริ่ม1
# umount / home

ค้นหาพาร์ติชั่นที่เชื่อมต่อ:

# fsck / dev / sda1

2) โหมดการกู้คืนจากซีดีการติดตั้ง

ใส่แผ่นซีดีการติดตั้งลงในไดรฟ์และรีบูตระบบ:

รอสักครู่และหลังจากบูทจากซีดีการติดตั้ง ให้รันคำสั่ง:

# linux Rescue nomount

คำสั่ง NOMOUNT จะไม่อนุญาตการติดตั้ง ดังนั้นคุณจึงสามารถใช้ FSCK ได้อย่างปลอดภัย

หลังจากนั้น ให้เรียกใช้ FSCK สำหรับส่วนที่มีข้อผิดพลาด:

# fsck -yvf / dev / sda1

LVM (ตัวจัดการโลจิคัลวอลุ่ม)

สถานการณ์กับ LVM (ตัวจัดการโลจิคัลวอลุ่ม)ส่วนจะซับซ้อนกว่าเล็กน้อย สำหรับการเริ่มต้น FSCKสำหรับ LVMส่วนแรกคุณต้องหา PV (ปริมาตรทางกายภาพ), VG (กลุ่มวอลุ่ม), LV (ส่วนขยายตรรกะ)และเปิดใช้งาน โดยเรียกใช้คำสั่งต่อไปนี้ตามลำดับ:

# lvm pvscan
# lvm vgscan
# lvm lvchange -ay VolGroup00
#lvm lvscan

# fsck -yfv / dev / VolGroup00 / LogVol00

เมื่อดำเนินการ FSCK จะส่งคืนผลลัพธ์ในรูปแบบของรหัส รหัสนี้เป็นตัวเลขเฉพาะที่แสดงถึงผลรวมของค่าต่อไปนี้:

0 - ไม่มีข้อผิดพลาด;
1 - แก้ไขข้อผิดพลาดของระบบไฟล์
2 - ระบบควรรีบูต;
4 - ข้อผิดพลาดของระบบไฟล์ที่ไม่ได้รับการแก้ไข;
8 - ข้อผิดพลาดในการทำงาน;
16 - การใช้หรือข้อผิดพลาดทางไวยากรณ์;
32 - Fsck ถูกยกเลิกโดยคำขอของผู้ใช้
128 - ข้อผิดพลาดของไลบรารีที่ใช้ร่วมกัน

คอมพิวเตอร์เป็นอุปกรณ์ที่อาศัยการทำงานร่วมกันของส่วนประกอบหลายอย่าง สิ่งเหล่านี้อาจทำให้เกิดการทำงานผิดพลาดเมื่อเวลาผ่านไป สาเหตุที่พบบ่อยที่สุดประการหนึ่งสำหรับการทำงานที่บกพร่องของเครื่องคือเซกเตอร์เสียบนดิสก์ ดังนั้นจึงจำเป็นต้องทำการทดสอบเป็นระยะ Linux มอบความเป็นไปได้ทั้งหมดสำหรับสิ่งนี้

บล็อกแตกคืออะไรและทำไมจึงปรากฏขึ้น

บล็อก (ส่วน) คือเซลล์ขนาดเล็กบนดิสก์ที่เก็บข้อมูลในรูปแบบของบิต (0 และ 1) เมื่อระบบไม่สามารถเขียนบิตถัดไปลงในเซลล์ได้ พวกเขาพูดถึงบิตเซกเตอร์ อาจมีสาเหตุหลายประการสำหรับการปรากฏตัวของบล็อกดังกล่าว:

  • ข้อบกพร่องในการผลิต
  • ปิดในขณะที่บันทึกข้อมูล;
  • การสึกหรอทางกายภาพของดิสก์

ในขั้นต้น สื่อเกือบทั้งหมดมีการละเมิด เมื่อเวลาผ่านไป จำนวนของพวกเขาอาจเพิ่มขึ้น ซึ่งบ่งชี้ถึงความล้มเหลวที่ใกล้จะเกิดขึ้นของอุปกรณ์ มีหลายวิธีในการทดสอบดิสก์เพื่อหาข้อผิดพลาดใน Linux

ตรวจสอบดิสก์ Linux

ระบบปฏิบัติการหลายระบบทำงานบนเคอร์เนล Linux รวมถึง Ubuntu และ Debian ขั้นตอนการตรวจสอบดิสก์นั้นเป็นสากลและเหมาะสมกับแต่ละขั้นตอน ควรคำนึงถึงเวลาที่จะทดสอบสื่อ เมื่อระบบดิสก์มีภาระงานมาก ความเร็วในการทำงานกับสื่อ (การเขียน/การอ่าน) ลดลงอย่างมาก หรือขั้นตอนเหล่านี้อาจทำให้เกิดข้อผิดพลาดได้

หลายคนคุ้นเคยกับโปรแกรมสำหรับ Windows - Victoria HDD นักพัฒนาดูแลการเขียนคู่กันสำหรับ Linux

Badblocks

Badblocks เป็นยูทิลิตี้ดิสก์ที่มาพร้อมกับ Ubuntu และลีนุกซ์รุ่นอื่นๆ ตามค่าเริ่มต้น โปรแกรมนี้ให้คุณทดสอบทั้งฮาร์ดไดรฟ์และไดรฟ์ภายนอก

สำคัญ! คำสั่งเทอร์มินัลทั้งหมดในบทความนี้เริ่มต้นด้วยพารามิเตอร์ sudo เนื่องจากต้องใช้สิทธิ์ superuser เพื่อดำเนินการ

ก่อนทดสอบดิสก์ใน Linux คุณควรตรวจสอบว่าไดรฟ์ใดเชื่อมต่อกับระบบโดยใช้ยูทิลิตี้ fdisk-l นอกจากนี้ยังจะแสดงส่วนต่างๆ ที่มีอยู่ด้วย

ตอนนี้คุณสามารถดำเนินการทดสอบเซกเตอร์เสียโดยตรง งาน Badblocks ถูกจัดระเบียบดังนี้:

badblocks -v / dev / sdk1> bsector.txt

เร็กคอร์ดใช้คำสั่งและตัวถูกดำเนินการต่อไปนี้:

  • -v - แสดงรายงานโดยละเอียดเกี่ยวกับการตรวจสอบที่ดำเนินการ
  • / dev / sdk 1- ส่วนที่กำลังตรวจสอบ;
  • bsector.txt - การเขียนผลลัพธ์ไปยังไฟล์ข้อความ

หากคุณพบการบล็อกที่ไม่ดีขณะตรวจสอบดิสก์ คุณต้องเรียกใช้ยูทิลิตี้ fsck หรือ e2fsck ทั้งนี้ขึ้นอยู่กับระบบไฟล์ที่ใช้ พวกเขาจะ จำกัด การเขียนข้อมูลให้กับภาคที่ไม่ทำงาน สำหรับระบบไฟล์ ext2, ext3 หรือ ext4 ให้รันคำสั่งต่อไปนี้:

fsck -l bsector.txt / dev / sdk1

มิฉะนั้น:

fsck -l bsector.txt / dev / sdk1

พารามิเตอร์ -l บอกโปรแกรมว่าบล็อกเสียแสดงอยู่ในไฟล์ bsector.txt และควรแยกออก

Gparted

ยูทิลิตีตรวจสอบระบบไฟล์ Linux โดยไม่ต้องใช้อินเทอร์เฟซแบบข้อความ

แต่เดิมเครื่องมือนี้ไม่ได้รวมอยู่ในการแจกจ่ายของระบบปฏิบัติการ ดังนั้นคุณต้องติดตั้งโดยใช้คำสั่ง:

apt-get ติดตั้ง gparted

ไดรฟ์ที่พร้อมใช้งานจะแสดงในหน้าต่างแอปพลิเคชันหลัก ข้อเท็จจริงที่ว่ามันเป็นเวลาที่จะทดสอบสายพาหะนั้นชัดเจนจากเครื่องหมายอัศเจรีย์ข้างชื่อของมัน การตรวจสอบเริ่มต้นโดยคลิกที่รายการ "ตรวจหาข้อผิดพลาด" ในเมนูย่อย "ส่วน" ที่แผงด้านบน แผ่นดิสก์ที่ต้องการจะถูกเลือกไว้ล่วงหน้า เมื่อการสแกนเสร็จสิ้น ยูทิลิตี้จะแสดงผลลัพธ์

การตรวจสอบ HDD และอุปกรณ์จัดเก็บข้อมูลอื่น ๆ ด้วยแอปพลิเคชัน GParted นั้นมีให้สำหรับผู้ใช้ Ubuntu, FreeBSD, Centos, Debian และการกระจายอื่นๆ ที่ทำงานบนเคอร์เนล Linux

Smartmontools

เครื่องมือนี้ช่วยให้คุณทดสอบระบบไฟล์ที่มีความน่าเชื่อถือมากขึ้น ฮาร์ดไดรฟ์สมัยใหม่มีโมดูลตรวจสอบตัวเอง S. M. A. R. T. ในตัว ซึ่งจะวิเคราะห์ข้อมูลของไดรฟ์และช่วยระบุความผิดปกติในระยะเริ่มต้น Smartmontools ออกแบบมาเพื่อทำงานกับโมดูลนี้

การติดตั้งเริ่มต้นผ่านเทอร์มินัล:

  • apt ติดตั้ง smartmontools - สำหรับ Ubuntu / Debian;
  • yum ติดตั้ง smartmontools สำหรับ CentOS

หากต้องการดูข้อมูลเกี่ยวกับสถานะของฮาร์ดดิสก์ ให้ป้อนบรรทัด:

smartctl –H / dev / sdk1

การตรวจสอบข้อผิดพลาดจะใช้เวลาต่างกันไปขึ้นอยู่กับขนาดของดิสก์ ในตอนท้าย โปรแกรมจะแสดงผลลัพธ์เกี่ยวกับการมีอยู่ของเซกเตอร์เสียหรือการขาดเซกเตอร์

ยูทิลิตี้นี้มีตัวเลือกอื่นๆ: -a, --all, -x, --xall ขอความช่วยเหลือสำหรับข้อมูลเพิ่มเติม:

เซฟสำเนา

เมื่อมีความจำเป็นต้องทดสอบฮาร์ดไดรฟ์ใน Linux คุณควรพร้อมสำหรับผลลัพธ์ใดๆ

แอปพลิเคชัน Safecopy จะคัดลอกข้อมูลจากอุปกรณ์ที่เสียหายไปยังอุปกรณ์ที่ใช้งานได้ แหล่งที่มาสามารถเป็นได้ทั้งฮาร์ดไดรฟ์และสื่อแบบถอดได้ เครื่องมือนี้ละเว้นข้อผิดพลาด I/O การอ่าน การบล็อกที่ไม่ดี และทำงานต่อไปอย่างต่อเนื่อง ความเร็วในการดำเนินการนั้นเร็วที่สุดที่คอมพิวเตอร์มีให้

คอมเมนต์! ยูทิลิตี้นี้ไม่ได้มีไว้สำหรับการกู้คืนไฟล์ที่ถูกลบ เธอดึงข้อมูลที่เก็บไว้ในภาคที่เสียหายออกมา

ในการติดตั้ง Safecopy บน Linux ให้ป้อนบรรทัดลงในเทอร์มินัล:

การสแกนเริ่มต้นด้วยคำสั่ง:

safecopy / dev / sdk1 / หน้าแรก / ไฟล์ /

ที่นี่ เส้นทางแรกคือดิสก์ที่เสียหาย เส้นทางที่สองคือไดเร็กทอรีที่จะบันทึกไฟล์

โปรแกรมสามารถสร้างอิมเมจของระบบไฟล์ของอุปกรณ์เก็บข้อมูลที่ไม่เสถียร

จะทำอย่างไรถ้าพบข้อผิดพลาดในโปรแกรมระบบ Ubuntu

การติดตั้งซอฟต์แวร์ใหม่หรือเปลี่ยนการตั้งค่าระบบอาจทำให้เกิดข้อความ "ตรวจพบข้อผิดพลาดในโปรแกรมระบบ" หลายคนละเลยเพราะไม่กระทบงานทั่วไป

ปัญหานี้มักพบโดยผู้ใช้ Ubuntu เวอร์ชัน 16.04 ในกรณีนี้ ไม่จำเป็นต้องทดสอบ HDD เนื่องจากปัญหามักเกิดจากซอฟต์แวร์ล้มเหลว ข้อความแจ้งเตือนเกี่ยวกับการยุติโปรแกรมโดยไม่คาดคิดและเสนอให้ส่งรายงานไปยังนักพัฒนา หากคุณตกลง หน้าต่างเบราว์เซอร์จะเปิดขึ้นโดยที่คุณต้องกรอกแบบฟอร์ม 4 ขั้นตอน ตัวเลือกนี้ทำให้เกิดปัญหาและไม่รับประกันว่าข้อผิดพลาดจะหายไป

วิธีที่สองจะช่วยหลีกเลี่ยงการปรากฏของข้อความเฉพาะเมื่อมีการเรียกโดยโปรแกรมเดียวกัน ในการดำเนินการนี้ ในการแจ้งเตือนครั้งถัดไป คุณต้องทำเครื่องหมายที่ตัวเลือก "ไม่ต้องแสดงเพิ่มเติมสำหรับโปรแกรมนี้"

วิธีที่สามคือการปิดใช้งานยูทิลิตี้ Appport ซึ่งรับผิดชอบในการรวบรวมข้อมูลและส่งรายงานใน Linux วิธีการนี้จะกำจัดหน้าต่างป๊อปอัปที่มีข้อผิดพลาดโดยสิ้นเชิง เป็นไปได้ที่จะปิดการใช้งานเฉพาะการแสดงการแจ้งเตือน ปล่อยให้บริการคอลเลกชันทำงานตามปกติ ในการทำเช่นนี้ คุณต้องทำ:

gsettings set com.ubuntu.update-notifier show-apport-crashes false

ข้อมูลจะถูกเก็บรวบรวมต่อไปในโฟลเดอร์ / var / crash ต้องทำความสะอาดเป็นระยะเพื่อไม่ให้เต็มพื้นที่ดิสก์:

หากต้องการปิดใช้งานบริการของ Appport อย่างสมบูรณ์ จะมีการป้อนรายการลงในเทอร์มินัล:

gksu gedit / etc / default / apport

ในข้อความที่ปรากฏขึ้น ค่าของฟิลด์ที่เปิดใช้งานจะเปลี่ยนจาก 1 เป็น 0 ในภายหลัง เพื่อเปิดใช้งานบริการอีกครั้ง การตั้งค่าเริ่มต้นจะถูกส่งกลับ

บทสรุป

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

Linus Torvalds เป็นผู้คิดค้นผลิตผลของเขาเองหรือไม่ว่า Linux จะถูกใช้ในระบบฝังตัว ไม่เพียงแต่ในเราเตอร์ในบ้านราคาถูกเท่านั้น แต่ยังรวมถึงโซลูชันโทรคมนาคมที่จริงจังอย่าง AVAYA PBX ด้วยหรือไม่

เมื่อเร็วๆ นี้ มีความจำเป็นต้องคืนค่าการแลกเปลี่ยนโทรศัพท์อัตโนมัติของ AVAYA ของลูกค้ารายใหญ่รายหนึ่ง นี่คือ Avaya G650 Media Gateway (แชสซี) ที่มีเซิร์ฟเวอร์ Avaya S8400 (โปรเซสเซอร์) โดยที่ดิสก์ระบบคือ CompactFlash 2 GB ซึ่งถือได้ว่าเป็นไดรฟ์ SSD แบบมีเงื่อนไขที่มีอินเทอร์เฟซ IDE
และสิ่งที่ทำให้ฉันประหลาดใจเมื่อเชื่อมต่อไดรฟ์ CF ผ่านเครื่องอ่านการ์ด และเห็นโครงสร้างที่คุ้นเคยของระบบไฟล์ Linux แน่นอนว่าสิ่งนี้ทำให้ขั้นตอนการตรวจสอบประสิทธิภาพของไดรฟ์ CF ง่ายขึ้น

วิธีตรวจสอบระบบไฟล์ของดิสก์ Linux เพื่อหาข้อผิดพลาด

ระบบปฏิบัติการ MicroSoft DOS (ใช่ ฉันจำเวอร์ชัน 5.0 ซึ่งพอดีกับฟลอปปีดิสก์หนึ่งแผ่น!) มีคำสั่งตรวจสอบ CHKDSK และมีบางอย่างที่คล้ายกันใน Linux
ในการตรวจสอบข้อผิดพลาดของระบบไฟล์ในดิสก์ Linux คุณต้องค้นหาชื่อของระบบไฟล์เพื่อตรวจสอบ:

# df -h ขนาดระบบไฟล์ที่ใช้ ความพร้อมใช้งาน % ติดตั้งบน / dev / sda 20G 4.0G 15G 21% / / dev / sdd1 1G 455M 555M 46% / สื่อ / Np% blsl3648B4Jjeiedgyy / dev / sdd6 1G 98M 902M 10% / สื่อ / 10.13-23dd ไม่มี 246M 0 246M 0% / dev / shm

สำหรับไดรฟ์ CF ที่กำลังทดสอบ นี่คือ / dev / sdd1และ / dev / sdd6
ถัดไป คุณต้องยกเลิกการต่อเชื่อมระบบไฟล์ที่ทดสอบ:

#sudo umount / dev / sdd1 #sudo umount / dev / sdd6

#fsck -y / dev / sdd1 #fsck -y / dev / sdd6

พารามิเตอร์ -yจะตอบคำถามทั้งหมดโดยอัตโนมัติใช่ซึ่งตามกฎแล้วผู้ใช้ส่วนใหญ่ทำ

ผลลัพธ์ตัวตรวจสอบระบบไฟล์ Lunux FSCK

ในกรณีของฉัน มีข้อผิดพลาดในส่วนใดส่วนหนึ่งที่ยูทิลิตี้แก้ไข หลังจากนั้นไดรฟ์ CF ก็กลับมาที่เดิมและ Avaya PBX ได้รับการฟื้นฟู

ฉันยังต้องเผชิญกับปัญหานี้ เพื่อนคนหนึ่งของฉันที่มี อูบุนตูบนแล็ปท็อป ASUS เครื่องเก่าและผู้ที่ไม่ต้องการเปิดสมองอย่างน้อยในบางครั้งก็หันมาหาฉันด้วยปัญหาดังกล่าว บนแล็ปท็อปของเขา มีการติดตั้ง Ubuntu 12.10 ใหม่ และบ่อยครั้งที่ระบบไม่ต้องการบูต โยนลงในหน้าจอสีดำ หรือค้างบนพื้นหลังสีม่วง แต่เมื่อเร็ว ๆ นี้ข้อความดังกล่าวเริ่มปรากฏขึ้นบางอย่างเช่น "ระบบปฏิบัติการไม่สามารถบู๊ตได้ เลือกคีย์ที่จำเป็นสำหรับการดำเนินการเพิ่มเติม ... "จากนั้นก็มีคำอธิบายว่าคุณต้องกดอะไร ฉันจำไม่ได้ว่าปุ่มใดที่ระบบแนะนำให้กด แต่ความหมายคือเพื่อแก้ไขข้อผิดพลาดโดยอัตโนมัติ กดปุ่มดังกล่าวและปุ่มดังกล่าว สำหรับการดีบักด้วยตนเอง อีกปุ่มหนึ่ง และไม่ต้องสนใจข้อความนี้ แนะนำให้กดปุ่มที่สาม . การแก้ไขข้อผิดพลาดอัตโนมัติไม่ได้นำไปสู่สิ่งใดและการโหลดระบบปฏิบัติการไม่ถึงข้อสรุปเชิงตรรกะ เลยตัดสินใจลองทีมดัง fsck.

ก่อนอื่น คุณต้องบูตจากแท่ง USB ของ Ubuntu ที่สามารถบู๊ตได้ (Lubuntu, Xubuntu, Kubuntu เป็นต้น) หรือจาก Ubuntu Live CD ตอนนี้เราต้องค้นหาว่าพาร์ติชันใดกับ Ubuntu ที่เราจำเป็นต้องสแกนเพื่อแก้ไขระบบไฟล์ เปิด Terminal (Ctrl-Alt-T) และรันคำสั่ง:

sudo fdisk -l

คำสั่งนี้จะแสดงดิสก์ แฟลชไดรฟ์ทั้งหมดที่ต่อเชื่อมกับระบบ ฉันจะใช้คอมพิวเตอร์ส่วนตัวเป็นตัวอย่าง ไม่ใช่แล็ปท็อปของเพื่อน นี่คือสิ่งที่เกิดขึ้นกับฉัน:

[ป้องกันอีเมล]: ~ $ sudo fdisk -l

ดิสก์ / dev / sda: 640.1 GB, 640135028736 ไบต์
255 หัว 63 เซกเตอร์ / แทรค 77825 สูบ รวม 1250263728 เซกเตอร์



ตัวระบุดิสก์: 0x0009d6f7


/ dev / sda1 * 2048 61442047 30720000 83 Linux
/ dev / sda2 61442048 73730031 6143992 82 Linux swap / Solaris
/ dev / sda3 73730048 1250263039 588266496 83 Linux

ดิสก์ / dev / sdb: 500.1 GB, 500107862016 ไบต์
255 หัว 63 เซกเตอร์ / แทร็ก 60801 กระบอกสูบ รวม 976773168 เซกเตอร์
หน่วย = ส่วนของ 1 * 512 = 512 ไบต์
ขนาดเซกเตอร์ (ตรรกะ / กายภาพ): 512 ไบต์ / 512 ไบต์
ขนาด I / O (ต่ำสุด / เหมาะสมที่สุด): 512 ไบต์ / 512 ไบต์
ตัวระบุดิสก์: 0xb9ff6f01

ระบบ Boot Start End Blocks Id System
/ dev / sdb1 * 16065 100197404 50090670 83 Linux
/ dev / sdb2 105322201 976771071 435724435+ 5 Extended
/ dev / sdb3 100197405 105322139 2562367+ 82 Linux swap / Solaris
/ dev / sdb5 105322203 832110591 363394194+ 7 HPFS / NTFS / exFAT
/ dev / sdb6 832112640 860755218 14321289+ 83 Linux
/ dev / sdb7 860758016 862613503 927744 82 การแลกเปลี่ยน Linux / Solaris
/ dev / sdb8 862615552 976771071 57077760 83 Linux

รายการตารางพาร์ติชั่นไม่อยู่ในลำดับดิสก์

ดิสก์ / dev / sdc: 8115 MB, 8115978240 ไบต์
250 หัว 62 ส่วน / แทร็ก 1,022 กระบอก รวม 15851520 เซกเตอร์
หน่วย = ส่วนของ 1 * 512 = 512 ไบต์
ขนาดเซกเตอร์ (ตรรกะ / กายภาพ): 512 ไบต์ / 512 ไบต์
ขนาด I / O (ต่ำสุด / เหมาะสมที่สุด): 512 ไบต์ / 512 ไบต์
ตัวระบุดิสก์: 0xc3072e18

ระบบ Boot Start End Blocks Id System
/ dev / sdc1 * 32 15847625 7923797 b W95 FAT32

ดังที่คุณเห็นจากคำสั่ง output sudo fdisk -lฉันมีฮาร์ดดิสก์ 2 ตัว (sda) 640 GB และ (sdb) 500 GB รวมถึงแฟลชไดรฟ์ (sdc) 8 GB ซึ่งฉันบูตเครื่องจริงๆ ฉันรู้ว่าระบบที่ใช้ Ubuntu 12.04 อยู่ในไดรฟ์ sda และพาร์ติชันระบบปฏิบัติการมีชื่อว่า sda1 ตามลำดับ

ตอนนี้เรารู้ส่วนที่ต้องสแกนแล้ว เราก็เริ่มตรวจสอบได้เลย ในเทอร์มินัล:

sudo fsck -y -f -c / dev / sda1

หากคุณเห็นข้อผิดพลาด เป็นไปได้มากว่าคุณต้องยกเลิกการต่อเชื่อมส่วนนี้:

sudo umount / dev / sda1

ปุ่มคำสั่งและพารามิเตอร์ fsck:

y- ตอบคำถามทุกข้อว่าใช่เสมอ (มีทางเลือกอื่น: แป้น p - เริ่มการตรวจสอบในโหมดอัตโนมัติเต็มรูปแบบ);

NS- บังคับตรวจสอบระบบไฟล์ (แม้ว่าระบบไฟล์จะถูกทำเครื่องหมายว่าทำงานได้อย่างสมบูรณ์)

- ค้นหาบล็อกที่ไม่ดีแล้วทำเครื่องหมายตามนั้น

/ dev / sda1- อุปกรณ์หรือส่วนที่จะตรวจสอบ แม้ว่าทีมอาจจะดูแตกต่างออกไป ตัวอย่างเช่น:

sudo fsck -p / dev / sda1

ในกรณีนี้ เพิ่มเฉพาะสวิตช์ -p คุณเพิ่งอ่านเกี่ยวกับตัวเลือกทั้งหมดสำหรับคำสั่ง fsck และเพิ่มตัวเลือกที่คุณต้องการ หากต้องการทราบคุณลักษณะทั้งหมดของโปรแกรม ให้ป้อนใน Terminal:

ผู้ชาย fsck

นี่คือสิ่งที่ Terminal ออกหลังจากตรวจสอบ:

[ป้องกันอีเมล]: ~ $ sudo fsck -y -f -c / dev / sda1
fsck จาก util-linux 2.20.1
e2fsck 1.42.5 (29-ก.ค. 2555)
กำลังตรวจหาบล็อกเสีย (ทดสอบแบบอ่านอย่างเดียว): เสร็จสิ้น 0.00% ผ่านไป 0:00 (0/0/0 ผิดพลาด
/ dev / sda1: กำลังอัปเดต inode บล็อกที่ไม่ดี
ผ่าน 1: ตรวจสอบ inodes บล็อกและขนาด
ผ่าน 2: การตรวจสอบโครงสร้างไดเร็กทอรี
ผ่าน 3: การตรวจสอบการเชื่อมต่อไดเรกทอรี
ผ่าน 4: การตรวจสอบจำนวนอ้างอิง
ผ่าน 5: การตรวจสอบข้อมูลสรุปกลุ่ม

คอมพิวเตอร์ทุกเครื่องเป็นอุปกรณ์ที่ซับซ้อนที่ประกอบด้วยส่วนประกอบหลายอย่าง และไม่มีใครรอดพ้นจากความล้มเหลวของส่วนประกอบเหล่านี้ ในบทความนี้ เราจะมาดูวิธีการระบุปัญหาร้ายแรงอย่างหนึ่งของอุปกรณ์จัดเก็บข้อมูลอย่างทันท่วงที ไม่ว่าจะเป็นฮาร์ดดิสก์หรือแฟลชไดรฟ์ วิธีตรวจสอบดิสก์สำหรับเซกเตอร์ linux ที่เสีย

อุปกรณ์จัดเก็บข้อมูลใด ๆ ประกอบด้วยบล็อกขนาดเล็กจำนวนมาก (ส่วน) ที่เก็บข้อมูลในรูปของศูนย์หรือหน่วย (บิต) หากด้วยเหตุผลบางอย่าง ระบบปฏิบัติการไม่สามารถเขียนข้อมูลเพียงเล็กน้อยไปยังภาคส่วนใดภาคหนึ่ง ก็ถือว่า "เสีย" ได้

ภาคส่วนอาจเสียหายได้จากหลายสาเหตุ:

  • ข้อบกพร่องในการผลิต
  • ปิดคอมพิวเตอร์ขณะบันทึกข้อมูล
  • การสึกหรอทางกายภาพของไดรฟ์

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

มาดูกันว่ายูทิลิตี้ใดใน Linux ที่เราสามารถตรวจสอบดิสก์สำหรับเซกเตอร์ linux ที่ไม่ดี

การตรวจสอบไดรฟ์สำหรับเซกเตอร์เสียโดยใช้ Badblock

Badblocks เป็นยูทิลิตี้ Linux มาตรฐานสำหรับตรวจสอบเซกเตอร์เสีย มีการติดตั้งตามค่าเริ่มต้นในเกือบทุกชุดการแจกจ่าย และด้วยความช่วยเหลือคุณสามารถตรวจสอบทั้งฮาร์ดไดรฟ์และไดรฟ์ภายนอก

อันดับแรก มาดูกันว่าไดรฟ์ใดบ้างที่เชื่อมต่อกับระบบของเรา และมีพาร์ติชั่นใดบ้าง ในการทำเช่นนี้ เราจำเป็นต้องมียูทิลิตี้ลินุกซ์มาตรฐานอื่น - fdisk

โดยปกติคุณต้องรันคำสั่งด้วยสิทธิ์ superuser:

พารามิเตอร์ -lเราบอกให้ fdisk แสดงรายการพาร์ติชั่นและออก

ตอนนี้เรารู้แล้วว่าเรามีพาร์ติชั่นอะไรบ้าง เราก็สามารถตรวจสอบเซกเตอร์เสียได้ ในการดำเนินการนี้ เราจะใช้ยูทิลิตี้ Badblocks ดังต่อไปนี้:

$ sudo badblocks -v / dev / sda1> badsectors.txt

สำหรับการตรวจสอบ เราระบุพารามิเตอร์ต่อไปนี้:

  • -v- การแสดงรายละเอียดของข้อมูลผลการตรวจสอบ
  • / dev / sda1- ส่วนที่เราต้องการตรวจสอบเซกเตอร์เสีย
  • > badsectors.txt- เราส่งออกผลลัพธ์ของคำสั่งไปยังไฟล์ badsectors.txt

หากพบเซกเตอร์เสียแล้วเราจำเป็นต้องสั่งระบบปฏิบัติการไม่ให้เขียนข้อมูลในอนาคต ในการดำเนินการนี้ เราจำเป็นต้องมียูทิลิตี้ Linux เพื่อทำงานกับระบบไฟล์:

  • e2fsck.หากเราแก้ไขพาร์ติชั่นด้วยระบบไฟล์ Linux (ext2, ext3, ext4)
  • เอฟเอสเคหากเราแก้ไขระบบไฟล์อื่นที่ไม่ใช่ ext.

เราป้อนคำสั่งต่อไปนี้:

$ sudo e2fsck -l badsectors.txt / dev / sda1

หรือหากระบบไฟล์ของเราไม่มีนามสกุล:

$ sudo fsck -l badsectors.txt / dev / sda1

พารามิเตอร์ -lเราบอกให้ยูทิลิตี้ใช้รายการเซกเตอร์เสียจากไฟล์ badsectors.txt ซึ่งเราได้รับก่อนหน้านี้เมื่อตรวจสอบด้วยยูทิลิตี้ badblocks

การตรวจสอบไดรฟ์สำหรับเซกเตอร์เสียใน Linux ใน smartmontools

ตอนนี้เรามาดูวิธีที่ทันสมัยและเชื่อถือได้มากขึ้นในการตรวจสอบดิสก์สำหรับเซกเตอร์ linux ที่ไม่ดี ไดรฟ์ ATA / SATA, SCSI / SAS, SSD สมัยใหม่มีระบบตรวจสอบตัวเองในตัว S.M.A.R.T (เทคโนโลยีการตรวจสอบ วิเคราะห์ และการรายงานตนเอง, เทคโนโลยีการตรวจสอบตนเอง การวิเคราะห์และการรายงาน) ซึ่งตรวจสอบพารามิเตอร์ของไดรฟ์และช่วยในการระบุการเสื่อมสภาพของประสิทธิภาพของไดรฟ์ในระยะแรก ในการทำงานกับ S.M.A.R.T ใน Linux มียูทิลิตี้ smartmontools

มาติดตั้งกันก่อน หากการแจกจ่ายของคุณใช้ Debian \ Ubuntu ให้ป้อน:

$ sudo apt ติดตั้ง smartmontools

หากคุณมีชุดการแจกจ่ายตาม RHEL \ CentOS ให้ป้อน:

$ sudo yum ติดตั้ง smartmontools