แก้ปัญหา BusyBox Error บนลินุกซ์


oqbdi

ปัญหา boot ระบบลินุกซ์แล้วเกิด Error ดังภาพด้านบน เป็นการแจ้งความผิดพลาดของอุปกรณ์บางอย่างผ่าน BusyBox ซึ่งบางครั้งเราก็ไม่ทราบสาเหตุ แต่ส่วนมากมักจะมีปัญหาเกี่ยวกับฮาร์ดดิสต์

BusyBox คือลินุกซ์ตัวจิ๋วและมีเครื่องมือที่จำเป็นเฉพาะงานนั้นๆ (binary,library) แล้วแต่ประสงค์ของผู้ใช้งาน เคสลินุกซ์คงเพื่อการเข้าถึงและตรวจสอบความสมบูรณ์ของอุปกรณ์ เมื่อเรียบร้อยก็จะโยนภาระต่อให้ลินุกซ์ตัวจริงทำงานต่อ

เมื่อไม่กี่วันก่อนผมเกิดกรณีดังกล่าวกับตัวเอง ดังตัวอย่างด้านล่าง

BusyBox v.1.22.1. (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash)
Enter ‘help’ for a list of built-in commands.
(Initramfs) _

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

กรณีไม่แจ้งให้ทราบ ให้ผู้ใช้ลองพิมพ์คำสั่ง exit แล้วกดปุ่ม Enter (คำสั่งออกจากโหมดทำงาน) ณ ตอนนี้ BusyBox จะแจ้งปัญหาที่เกิดขึ้นให้เราเห็นพร้อมกับบอกวิธีแก้ไขให้ทราบด้วย (ดีจัง)

กรณีตัวอย่างครับ (อาจไม่เหมือนกรณีตัวอย่างนี้เสมอไป) ใช้คำสั่ง exit <กด enter> BusyBox แจ้งผลให้ทราบดังตัวอย่างด้านล่าง

fsck from util-linux 2.26.2
/dev/sdb2 contains a file system with errors, check forced.
/dev/sdb2: Inodes that were part of a corrupted orphan linked list found

/dev/sdb2: UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY.
(i.e., without -a or -p options)
fsck exited with status code 4
The root filesystem on /dev/sdb2 requires a manual fsck

BusyBox v.1.22.1. (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash)
Enter ‘help’ for a list of built-in commands.

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

วิธีการแก้ไข หากฮาร์ดดิสต์มีลินุกซ์หลายตัว ก็ให้การ boot เข้าลินุกส์พาร์ทิชั่นอื่น แต่ถ้าไม่ลินุกพาร์ทิชั่นอื่นก็ให้ใช้ Live CD/DVD/USB อะไรก็ได้ boot แทน หลังจากเข้าระบบเรียบร้อย ให้ใช้คำสั่งนี้แก้ไขปัญหาด้วยคอมมานด์ไลน์ ถ้าเป็นลินุกซ์เดสก์ทอปก็เรียกโปรแกรมเทอร์มินัลขึ้น ใช้คำสั่งแก้ไขดังนี้

sudo fsck -y /dev/sdb2

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

หากมีปัญหาฮาร์ดดิสต์แจ้งผ่าน BusyBox บ่อยๆ แสดงว่าฮาร์ดดิสต์เริ่มเสื่อมสภาพมากแล้ว ถ้างานสำคัญมากเปลี่ยนใหม่เลยครับ

Facebook Comments