Grub 1 (Ubuntu 9.04 i wcześniejsze)
Uważam, że najprostszym sposobem na to jest przeniesienie wpisu rozruchu systemu Windows ponad wpisy Ubuntu w /boot/grub/menu.lst. Domyślnie plik konfiguracyjny Grub jest ułożony w następujący sposób:
- podstawowe opcje
- automatyczna konfiguracja jądra debiana (w tym narzędzia takie jak memtest86 + domyślnie)
- inne wykryte systemy operacyjne
Sekcja 2 jest wyznaczona przez następujące wiersze w pliku konfiguracyjnym:
### BEGIN AUTOMAGIC KERNELS LIST
(lots of stuff here)
### END DEBIAN AUTOMAGIC KERNELS LIST
Wpisy dla automatycznie wykrywanych systemów operacyjnych (np. Windows) są umieszczane po tej sekcji. Kiedy instalujesz nowe jądro, sekcja 2 jest jedyną sekcją, która ulega zmianie. Więc przesuwając wykrywana OS do gdzieś wcześniej na BEGINlinii będzie umieścić go gdzie liczba pozycja nie ulegnie zmianie, gdy zostanie zainstalowany nowy kernel.
Grub 2 (Ubuntu 9.10 i nowsze)
W Grub2 cały plik konfiguracyjny jest tworzony od nowa za każdym razem, gdy update-grubjest uruchamiany, więc edycja /boot/grub/grub.cfgnie będzie stałą poprawką. Sposób generowania tego pliku jest obsługiwany przez pliki /etc/default/grubi skrypty w /etc/grub.d/*. Dlatego modyfikujemy konfigurację, modyfikując pliki kontrolujące poszczególne sekcje pliku konfiguracyjnego, a następnie uruchamiając update-grubponownie.
My /etc/grub.dobejmuje te pliki:
- 00_header
- 05_debian_theme
- 10_hurd
- 10_linux
- 20_memtest86 +
- 21_memtest86
- 30_os-prober
- 40_custom
Są to skrypty powłoki uruchamiane w celu wygenerowania pliku konfiguracyjnego. Wpis rozruchowy systemu Windows jest generowany przez 30_os-prober, który jest uruchamiany po wygenerowaniu wpisów rozruchowych systemu Linux 10_linux. Więc po prostu zmień nazwę 30_os-proberna mniejszą niż 10 i uruchom ponownieupdate-grub
mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober
update-grub
Teraz wpis Windows powinien być pierwszym wpisem i możesz ustawić go jako domyślny wpis rozruchu ( GRUB_DEFAULT=) w /etc/default/grub.