Spraw, aby grub zachował domyślny rozruch w ramach aktualizacji jądra

11

Rozruchowo uruchamiam komputer i chcę, aby domyślnie uruchamiał się do systemu Windows, aby za każdym razem, gdy ponownie uruchomię komputer zdalnie z mojego domu, będzie mógł wrócić do systemu Windows (zamiast Ubuntu).

Problem polega na tym, że za każdym razem, gdy Ubuntu aktualizuje jądro, muszę zresetować domyślny element startowy gruba z powrotem do systemu Windows. Wynika to z faktu, że moduł ładujący menu grub używa pozycji, tj. 6 dla domyślnego systemu operacyjnego do uruchomienia. A kiedy Ubuntu instaluje nowe jądro, zmienia tę kolejność.

Szukam sposobu, aby skonfigurować gruba, aby zapamiętywał domyślny element rozruchowy w ramach aktualizacji jądra.

przeprogramowanie
źródło

Odpowiedzi:

9

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:

  1. podstawowe opcje
  2. automatyczna konfiguracja jądra debiana (w tym narzędzia takie jak memtest86 + domyślnie)
  3. 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.

quack quixote
źródło
2

Postępuj zgodnie z instrukcjami na moim blogu tutaj, aby użyć czystego programu ładującego system Windows do pracy. Używam go teraz, a kiedy uruchamiam komputer, mam dwie opcje:

Windows Vista Ubuntu 10.04

Nie ma innego bałaganu. Możesz ustawić dla niego wiele różnych opcji. Jeśli nic nie naciskam przez 5 sekund, system Windows uruchamia się.

Powodzenia.

Antrikshy
źródło
ten link jest prawie martwy
tshepang