20 March 2011

How to install Grub (กู้คืน Grub เมื่อลง MS Windows)!!

เรื่องมันมีอยู่ว่า กาลครั้งหนึ่งนานมาแล้ว !!! ^^

 อยากใช้หลายๆ OS ใน notebook dell ของผม ตอนแรกก็ลงตาม Step by Step คือ
ลง MS win 7 ก่อน ตามกัน linux mint ,และ backtrack4 R2  ใช้ Grub ของ linux boot เข้าได้ทุก OS ครับ

แต่แล้ว เมื่อลง windows 7 ใหม่ แม่เจ้า.....! ตัว Grub หายไปไหน ว่ะ! กำแล้วไง งานเข้าแล้ว!!! พี่น้อง..
ต้องไปถามพี่กรู (google) เลยครับ555+ (เจอหลายวิธีมาก แต่มีวิธีที่ทำแล้ว OK! นะ ) คือ

เริ่มจาก Boot linux Live CD !  (ผมใช้ Ubuntu 10.04) boot เข้าไปหน้า Gnome ตามปกติสุข....^^

เรียกโปรแกรม Terminal ขึ้นมา

ตามด้วยคำสั่ง  -----> $ sudo fdisk -l   ;ให้ดูว่า linux อยู่ Partition ใด

ตัวอย่างเช่น  /dev/sda1 หรือ /dev/sda2 จำตัวเลขไว้นะครับ


$ cd /


$ sudo -s -H


$ mount -t ext3 /dev/sda6 /mnt     ;ให้ใส่ตัวเลข Partition ที่จำไว้ ที่นี้ผมเป็น /sda6

$ mount -t proc proc /mnt/proc


$ mount -t sysfs sys /mnt/sys


$ mount -o bind /dev /mnt/dev


$ chroot /mnt  /bin/bash


# grub-install /dev/sda


จากนั้น reboot เครื่อง แล้วจะเจอ Grub Menu ครับ สบาย!!!

ถ้ากรณี ที่ทำสำเร็จ มีอีกวิธีครับ >>> อ่านต่อ

หมายเหตุ : ถ้าต้องการแก้ไขเมนูของ grub แก้ได้ที่ไฟล์ /boot/grub/menu.lst ----> linux แบบเดิมจะเป็นไฟล์ grub.cfg นะครับ



$ cd /boot/grub
$ sudo cp menu.lst menu.lst.backup     # backup ไฟล์ไว้ก่อน
$ sudo gedit menu.lst



ในส่วนที่ต้องแก้


default        0              # ตัวเลข หมายถึง ลำดับของ Menu ที่ตั้งไว้ (เริ่มจาก 0) นับจากบนลงล่าง
                                     (กรณีของผม จะเป็น Linux Mint 10 คือ default 0 )

timeout        10          # จำนวนวินาที ที่ต้องการให้รอเลือก OS



------------- ตัวอย่างของ grub.cfg ครับ -------------------------------------------------


menuentry 'Linux Mint 10, 2.6.35-22-generic (/dev/sda6)' --class linuxmint --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set 08a2ecf0-3440-4088-957c-b5d5cffb9c09
linux /boot/vmlinuz-2.6.35-22-generic root=UUID=08a2ecf0-3440-4088-957c-b5d5cffb9c09 ro   quiet splash
initrd /boot/initrd.img-2.6.35-22-generic
}
menuentry 'Linux Mint 10, 2.6.35-22-generic (/dev/sda6) -- recovery mode' --class linuxmint --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set 08a2ecf0-3440-4088-957c-b5d5cffb9c09
echo 'Loading Linux 2.6.35-22-generic ...'
linux /boot/vmlinuz-2.6.35-22-generic root=UUID=08a2ecf0-3440-4088-957c-b5d5cffb9c09 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.35-22-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/10_lupin ###
### END /etc/grub.d/10_lupin ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set 08a2ecf0-3440-4088-957c-b5d5cffb9c09
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set 08a2ecf0-3440-4088-957c-b5d5cffb9c09
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 5c18894d188926dc
chainloader +1
}
menuentry "BackTrack 4 R2 (Greanjub) (on /dev/sda8)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set 3c7e06c3-b185-461e-a773-e61750c0d7b2
linux /boot/vmlinuz-2.6.35.8 root=UUID=3c7e06c3-b185-461e-a773-e61750c0d7b2 ro quiet splash
initrd /boot/initrd.img-2.6.35.8
}

No comments:

Post a Comment