ตอนนี้มีเครื่องโน้ตบุ้คตัวหนึ่งซึ่งมีทั้ง Windows และ Debian อยู่ในตัวเดียวกัน. ที่นี้ไปๆมาๆโน้ตบุ้คตัวนี้กลับได้ใช้ Windows มากกว่าลินุกซ์แต่เวลาเปิดเครื่องเข้า Grub ที่ Debian ติดตั้งให้มันจะไปไฮไลท์ตรงลินุกซ์ทุกทีทำให้ต้องเลื่อนลูกศรไปบูต Windows เองหรือไม่ยิ่งร้ายกว่านั้นกดไม่ทัน timeout ทำให้เครื่องบูตลินุกซ์ต้องรีบูึตใหม่อีก. เลยอยากแก้ Grub ให้มันเลือกบูต Windows โดยปริยายแทนที่จะเป็นลินุกซ์.

ไฟล์ปรับแต่งของ Grub อยู่ที่ /boot/grub/menu.lst เป็นไฟล์ที่แสดงหน้าจอเมนูนั่นแหละ. ส่วนตรงที่ให้เลือกค่า default ก็คือบรรทัดที่ขึ้นต้นว่า default. ในนั้นจะใช้เป็น

default 0

เลข 0 หมายถึงรายการ (เอ็นทรี) แรกในรายการระบบปฏิบัติการ. ตัวอย่างเช่นมีรายการ OS อยู่สามตัว, เป็นลินุกซ์ 2, วินโดวส์ 1.

title        Debian GNU/Linux, kernel 2.6.11-1-686
root         (hd0,1)
kernel       /boot/vmlinuz-2.6.11-1-686 root=/dev/hda2 ro
initrd       /boot/initrd.img-2.6.11-1-686
savedefault
boot
title        Debian GNU/Linux, kernel 2.6.11-1-686 (recovery mode)
root         (hd0,1)
kernel       /boot/vmlinuz-2.6.11-1-686 root=/dev/hda2 ro single
initrd       /boot/initrd.img-2.6.11-1-686
savedefault
boot
title        Microsoft Windows XP Professional
rootnoverify    (hd0,0)
makeactive
savedefault
chainloader +1

Grub ก็จะเลือก Debian GNU/Linux, kernel 2.6.11-1-686 ให้บูตโดยปริยาย. ที่นี้ถ้าต้องให้มันเลือก Windows XP ก็เปลี่ยนค่าของ default ให้เป็น 2. แต่เรื่องมันไม่จบเท่านั้นเพราะใน Debian ถ้าเพิ่ม kernel image หลายๆเวอร์ชันด้วย apt-get มันก็จะเพิ่มรายการ OS ต่อข้างบนไปเรื่อยๆและรายการของ Windows XP ก็อาจจะไม่ใช้เลข 2 อีกต่อไป, อาจจะเป็น 3, 4 ฯลฯ.

ในไฟล์ menu.lst ก็มีคอมเมนต์เขียนไว้ให้อยู่แล้ว, วิธีแก้คือตอนที่ระบุค่า default นั้นแทนที่จะเขียนเป็นตัวเลขก็ให้เขียนเป็น saved แทน. แล้ว Grub ก็จะเลือกรายการที่มีบรรทัด savedefault เป็นตัวบูตโดยปริยาย.

จากตัวอย่างข้างบนทุกรายการมีเขียน savedefault ก็ให้คอมเมนต์เอาต์ (เติมเครื่องหมาย # ที่ต้นบรรทัด) ส่วนที่ไม่ต้องการเช่นถ้าอยากให้ default เป็น Windows XP ก็สามารถเขียนได้แบบนี้.

...
default saved
...
title        Debian GNU/Linux, kernel 2.6.11-1-686
root         (hd0,1)
kernel       /boot/vmlinuz-2.6.11-1-686 root=/dev/hda2 ro
initrd       /boot/initrd.img-2.6.11-1-686
#savedefault
boot
title        Debian GNU/Linux, kernel 2.6.11-1-686 (recovery mode)
root         (hd0,1)
kernel       /boot/vmlinuz-2.6.11-1-686 root=/dev/hda2 ro single
initrd       /boot/initrd.img-2.6.11-1-686
#savedefault
boot
title        Microsoft Windows XP Professional
rootnoverify    (hd0,0)
makeactive
savedefault
chainloader +1

พอเข้าเมนู Grub ครั้งต่อไปก็จะเห็นว่ามันเลือก Windows XP ให้โดยปริยายครับ.

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry