Grub 1 (Ubuntu 9.04 trở về trước)
Tôi thấy cách dễ nhất để làm điều này là di chuyển mục khởi động Windows lên trên các mục Ubuntu /boot/grub/menu.lst. Theo mặc định, tệp cấu hình Grub được trình bày như sau:
- tùy chọn cơ bản
- cấu hình kernel tự động ma thuật debian (bao gồm các tiện ích như memtest86 + theo mặc định)
- hệ điều hành khác được phát hiện
Phần 2 được phân định bởi các dòng này trong tệp cấu hình:
### BEGIN AUTOMAGIC KERNELS LIST
(lots of stuff here)
### END DEBIAN AUTOMAGIC KERNELS LIST
Các mục nhập cho hệ điều hành tự động (ví dụ: Windows) được đặt sau phần này. Khi bạn cài đặt kernel mới, phần 2 là phần duy nhất được thay đổi. Vì vậy, di chuyển hệ điều hành autodetected đến một nơi nào trước khi các BEGINdòng sẽ đặt nó ở đâu số entry sẽ không thay đổi khi một hạt nhân mới được cài đặt.
Grub 2 (Ubuntu 9.10 trở lên)
Với Grub2, toàn bộ tệp cấu hình được tạo lại bất cứ lúc nào update-grubđược chạy, vì vậy chỉnh sửa /boot/grub/grub.cfgsẽ không phải là một sửa chữa vĩnh viễn. Làm thế nào tập tin đó được tạo ra được xử lý bởi các tập tin /etc/default/grubvà các tập lệnh trong /etc/grub.d/*. Vì vậy, chúng tôi sửa đổi cấu hình bằng cách sửa đổi các tệp kiểm soát các phần riêng lẻ của cấu hình, sau đó chạy update-grublại.
Của tôi /etc/grub.dbao gồm các tập tin:
- 00_ tiêu đề
- 05_debian_theme
- 10 giờ
- 10_linux
- 20_memtest86 +
- 21_memt86
- 30_os-prober
- 40 tùy
Đây là những shellscripts mà có được chạy theo thứ tự để tạo ra các tập tin cấu hình. Mục khởi động Windows được tạo bởi 30_os-prober, được chạy sau khi mục khởi động linux được tạo 10_linux. Vì vậy, chỉ cần đổi tên 30_os-proberthành một cái gì đó ít hơn 10 và chạy lạiupdate-grub
mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober
update-grub
Bây giờ mục nhập Windows của bạn phải là mục nhập đầu tiên và bạn có thể đặt mục nhập đó làm mục nhập khởi động mặc định ( GRUB_DEFAULT=) /etc/default/grub.