Ubuntu 10.04 Grub 2 янзлах

Ubuntu 9.10-аас хойших хувилбарууд Grub 2 ашиглах болсон. Өмнхөн хувилбарууд давхар бүүтээр суулгасан байсан Windows-ийг шууд Grub сонголтын лист дотроо оруулаад ирдэг байсан бол Ubuntu 10.04 хувилбар дээр маань тэгдэггү. Үүнээс үүдээд зарим хэрэглэгчид цочирдох нь их байдаг.

Мөн өөр нэг шалтгаан бол гэрийнхээ компъютер дээр Ubuntu суулгасан тохиолдолд гэрийнх нь бусад гишүүд Grub дээрээс сонголтоо хийлгүйгээр Ubuntu-руу шууд яваад орчихоод байдаг. Энэ тохиолдлуудыг хэрхэн шийдэх вэ? Ингэхийн тулд дараах алхмуудыг дагаад хийгээрэй.

1. Хэрвээ таны Windows чинь Grub дотор гарч ирэгүй байвал хамгийн түрүүнд Grub-аа шинэчлээрэй. Grub 2-ыг шинэчлэхдээ:
$ sudo update-grub

2. Нэгэнт таны Windows сонголт Grub дотор ороод ирсэн бол аль нэгийг нь default буюу тоолуур дуусахад автоматаар сонгогдох сонголт болгохын тулд:
sudo vim /boot/grub/grub.cfg
/boot/grub/grub.cfg файл дотор Grub тохиргоонууд агуулагдах ба та vim-ээс өөр эдитор дээр ч нээж засварлаж болно. Жишээ нь:
$ sudo gedit /boot/grub/grub.cfg
Ингэж нээгдсэн тохиолдолд болгоомжтой байх хэрэгтэй ба хэрвээ та хүсвэл тухайн файлыг ориг хэлбрээр нь нөөцлөж аваарай, энэ нь эрсдлийг бууруулна.

3. Тухайн файл дотроос өөрийн Windows дууддаг хэсгийг хайна. Энд бүх зүйл яг дарааллаараа явагддаг тул тухайн Windows сонголтоо Ubuntu сонголтын дээд талд хуулаад тавьхад л хангалттай юм. Миний Windows 7 уншдаг сонголтын хэсэг доорх байдалтай харагдаж байна:

### BEGIN /etc/grub.d/30_os-prober ### 
menuentry "Windows 7 (loader) (on /dev/sda1)" { 
        insmod ntfs 
        set root='(hd0,1)' 
        search --no-floppy --fs-uuid --set 167ebcb67ebc8fcb 
        chainloader +1 
} 
### END /etc/grub.d/30_os-prober ###

Энэ хэсгийг Ubuntu тасалгааг дууддаг сонголтын дээд талд хуулахад л хангалттай. Ингэсний дараа дураах хэлбэртэй харагдах болно. Windows нь Ubuntu сонголтын дээд талд харагдаж байна:


#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod ext2
set root='(hd0,4)'
search --no-floppy --fs-uuid --set ffd84574-0875-4f1b-b0c0-240140426ebd
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
insmod ext2
set root='(hd0,4)'
search --no-floppy --fs-uuid --set ffd84574-0875-4f1b-b0c0-240140426ebd
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" {
 insmod ntfs
 set root='(hd0,1)'
 search --no-floppy --fs-uuid --set 167ebcb67ebc8fcb
 chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
 recordfail
 insmod ext2
 set root='(hd0,4)'
 search --no-floppy --fs-uuid --set ffd84574-0875-4f1b-b0c0-240140426ebd
 linux /boot/vmlinuz-2.6.32-21-generic root=UUID=ffd84574-0875-4f1b-b0c0-240140426ebd ro   quiet splash
 initrd /boot/initrd.img-2.6.32-21-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-21-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
 recordfail
 insmod ext2
 set root='(hd0,4)'
 search --no-floppy --fs-uuid --set ffd84574-0875-4f1b-b0c0-240140426ebd
 echo 'Loading Linux 2.6.32-21-generic ...'
 linux /boot/vmlinuz-2.6.32-21-generic root=UUID=ffd84574-0875-4f1b-b0c0-240140426ebd ro single 
 echo 'Loading initial ramdisk ...'
 initrd /boot/initrd.img-2.6.32-21-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
 insmod ext2
 set root='(hd0,4)'
 search --no-floppy --fs-uuid --set ffd84574-0875-4f1b-b0c0-240140426ebd
 linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
 insmod ext2
 set root='(hd0,4)'
 search --no-floppy --fs-uuid --set ffd84574-0875-4f1b-b0c0-240140426ebd
 linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

No comments: