30-10-2009

Thay đổi boot priority trong ubuntu 9.10

Nếu trên máy của bạn cài nhiều hệ điều hành, và dùng Grub làm boot loader, khi khởi động máy lên, bạn sẽ lựa chọn 1 trong danh sách các hệ điều hành. Nếu không chọn thì sẽ có một mục mặc định được chọn để khởi động máy.
Với các phiên bản Ubuntu 9.04 trở về trước, bạn có thể chỉnh sửa các mục này và hệ điều hành mặc định để boot bằng cách chỉnh sửa trong file /boot/grub/menu.lst. Tuy nhiên, từ bản 9.10, bạn sẽ không còn thấy file menu.lst này nữa, và có thể sẽ gặp bối rối khi muốn thay đổi hệ điều hành boot mặc định.

Từ phiên bản 9.10, Ubuntu đã chuyển sang sử dụng Grub 2 (GRand Unified Bootloader, version 2) làm boot loader, Grub2 đã được viết lại khác hoàn toàn so với Grub 1.


File cấu hình /boot/grub/menu.lst giờ đây được thay thế bằng /boot/grub/grub.cfg. Nếu bạn xem nội dung file này thì cũng sẽ thấy có các dòng menuentry tương ứng với danh sách hiện ra lúc boot. Tuy nhiên, bạn ĐỪNG BAO GIỜ CHỈNH SỬA nội dung của file này, vì đây là file được tự động sinh ra mỗi khi bạn chạy lệnh "update-grub", update-grub sẽ tham khảo các thông số trong /etc/grub.d and information gathered from /etc/default/grub để sinh ra file cấu hình này.

Để xem có những mục menu nào trong file cấu hình này, ta có thể grep:

root@laptop:~# cat /boot/grub/grub.cfg | grep menuentry
menuentry "Ubuntu, Linux 2.6.31-14-generic" {
menuentry "Ubuntu, Linux 2.6.31-14-generic (recovery mode)" {
menuentry "Memory test (memtest86+)" {
menuentry "Memory test (memtest86+, serial console 115200)" {
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
root@laptop:~#

Như vậy khi boot máy lên, ta sẽ lựa chọn boot vào 1 trong 5 mục này. Chú ý ở đây Grub sẽ tính số thứ tự từ 0, như vậy mục cuối cùng (Microsoft Windows XP) sẽ tương ứng với số thứ tự là 4.

Nếu xem nội dung file /etc/default/grub, ta sẽ thấy những dòng đầu tiên như sau:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
trong đó dòng đầu tiên GRUB_DEFAULT=0 chính là mục menu được chọn mặc định. Như vậy khi boot máy, mục đầu tiên sẽ được highlight và sau 10 giây nếu người dùng không tác động gì, máy sẽ boot vào "Ubuntu, Linux 2.6.31-14-generic".

Giả sử ta muốn đổi hệ điều hành mặc định là Microsoft Windows XP (số thứ tự 4), ta chỉ cần thay giá trị GRUB_DEFAULT=0, sau đó chạy lệnh
'update-grub'
để tạo lại file /boot/grub/grub.cfg.

root@laptop:~# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sda1
done
root@laptop:~#

Từ giờ, mỗi lần khởi động máy lên, mục Microsoft Windows XP sẽ được chọn mặc định

0 comments:

Đăng một Nhận xét