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