๑๗ มิถุนายน ๒๕๕๑

grub boot loader

ในบางครั้งเราอาจจะทำให้ boot loader ที่เป็น grub หายไปเช่นกรณีของการลง OS สอง OS (Windows และ Linux) บนเครื่องเดียวกัน และเมื่อเจอปัญหาอาจมีความจำเป็นต้องลง Windows ใหม่ ซึ่งจะทำให้ boot loader ที่อยู่ในส่วนของ Master boot recored (mbr) หายไป จึงไม่สามารถ boot เข้าสู่ Linux ได้ทั้ง ๆ ที่ partition ที่เป็น Linux ยังคงมีอยู่ หรืออาจจะเกิดจากกรณีอื่น ๆ

ขั้นตอนการแก้ปัญหา

1. boot เครื่องจากแผ่น boot (แผ่นที่ใช้ติดตั้ง) ของ ubuntu
2. เมื่อขึ้นหน้าต่างของการติดตั้งให้กด Enter เหมือนขั้นตอนการติดตั้งปกติ
3. เลือกภาษา (Choose language) เลือกอะไรก็ได้ เพราะไม่ได้ติดตั้งจริง และไม่มีผลใด ๆ
4. ลือกคีย์บอร์อด (Select a keyboard layout) ให้เลือกเป็นค่าที่เห็นอยู่ก็แล้วกัน
5. ถ้าเจอขั้นตอน Configure the network หรือให้ตั้งชื่อ host ก็ไม่ต้องสนใจอะไรมากให้ Enter ไปเรื่อย ๆ
6. ที่สำคัญเมื่อถึงขั้นตอน Partition Disk ให้หยุดไว้ตรงนี้ก่อนครับอย่า Enter หรือเลือกรายการใด ๆ เดี๋ยวจะเป็นเรื่องใหญ่ แต่ให้กดคีย์ Ctl + Alt + F2 (ถ้าจะกลับหน้าเดิมใช้ Ctl + Alt + F1) และกดปุ่ม Enter เพื่อ Active console
7. จากนั้นจะได้หน้าต่าง shell prompt ขึ้นมา
8. ให้ทำการตรวจสอบตำแหน่ง Partition หลักที่เป็น Linux ด้วยคำสั่ง fdisk -l ซึ่งของแต่ละคนอาจจะต่างกัน แต่ของผมจะเป็น /dev/hd3
9. ให้ทำการ mount พาร์ติชันที่เป็น Linux ให้เป็น directory ใด ๆ ซึ่งในที่นี้ของเลือกเป็น /tmp/hda3 แต่ก่อนการ mount ต้องการทำการสร้าง directory ดังกล่าวก่อน และเพื่อความชัวร์ก็ให้ลองใช้คำสั่ง ls -l /tmp ดูก่อนว่า directory นี้ได้เคยมีการสร้างไว้แล้วยัง ซึ่งถ้าไม่มีจะได้ผลลัพท์ที่ว่างเปล่า
10. ทำการสร้าง directory ดังกล่าวด้วยคำสั่ง mkdir /tmp/hda3
11. ตรวจสอบผลการสร้างด้วยคำสั่ง ls -l /tmp ซึ่งจะมี directory ย่อยที่ชื่อ hda3
12. ทำการ mount ด้วยคำสั่ง mount -t ext3 /dev/hda3 /tmp/hda3
13. ตรวจสอบผลการ mount ด้วยคำสั่ง mount จะมีผลการ mount เป็น /dev/hda3 on /tmp/hda3 type ext3 (rw)
14. เปลี่ยนสถานะไปเป็น root ที่ hda3 ด้วยคำสั่ง chroot /tmp/hda3
15. แล้ว shell prompt ก็จะเปลี่ยน (ในที่นี้เปลี่ยนจาก ~# ไปเป็น sh-3.00# )
16. ติดตั้ง grub boot loader ด้วยคำสั่ง grub-install /dev/hda
17. ถ้าข้อความประมาณบรรทัดที่ 5 บอกว่า Installation finished. No error reported ก็แสดงว่าการติดตั้ง OK ครับ
18. reboot เครื่องด้วยคำสั่ง reboot
หมายเหตุ : ถ้าต้องการแกไขเมนูของ grub แก้ได้ที่ไฟล์ /boot/grub/menu.lst
จบครับ