Jak sprawić, by Grub2 uruchamiał inną opcję tylko przy następnym uruchomieniu?


19

Instaluję bezobsługowy komputer z systemem Linux / Windows bez uruchamiania. Przede wszystkim chcę, aby maszyna zawsze uruchamiała się do Ubuntu, z wyjątkiem czasami, gdy muszę coś przetestować w systemie Windows.

Zainstalowałem Windows i Ubuntu, a obecnie za każdym razem uruchamia się do Ubuntu. Chciałbym móc powiedzieć mu, aby uruchamiał się do systemu Windows tylko przy następnym uruchomieniu, a następnie po ponownym uruchomieniu z systemu Windows system powraca do uruchamiania Ubuntu.

Znalazłem Grub Legacy - sekcja 4.3.1 - Uruchamianie tylko raz, ale używam serwera Ubuntu 14.04, który ma nowszą wersję grub. Z tego, co przeczytałem, muszę wprowadzić zmiany /etc/default/grubi użyć ich, sudo grub-set-defaultgdy chcę uruchomić system Windows.

Myślę, że te zmiany zaczynają się od dodania tego do /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=false

Za każdym razem, gdy wprowadzane są zmiany /etc/default/grub, wiem, że muszę wtedy uruchomić
sudo update-grubi co powoduje:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-43-generic
Found initrd image: /boot/initrd.img-3.13.0-43-generic
Found linux image: /boot/vmlinuz-3.13.0-32-generic
Found initrd image: /boot/initrd.img-3.13.0-32-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

Ponieważ Windows jest siódmą opcją na tej liście, wierzę, że bym uruchomił sudo grub-set-default 6(liczenie na podstawie 0) - czy jest to poprawne i czy istnieje inna metoda uzyskania numerowanej listy opcji rozruchu po uruchomieniu systemu?

Ponadto, czy linie są /etc/default/grubwystarczające do osiągnięcia tego zachowania, czy też muszę dodać dodatkową konfigurację?

Odpowiedzi:


19

Musisz upewnić się, że masz GRUB_DEFAULT=savedw swojej konfiguracji grub (która jest generowana automatycznie, zmieniasz tę część, edytując / etc / default / grub). sudo update-grubaby zmiany były aktywne, a następnie użyj sudo grub-reboot $1.

grep -i "menuentry '" /boot/grub/grub.cfg

Daje ci menu, które możesz wyciąć i wkleić za 1 USD. Lub, jak zauważysz, opcje są indeksowane od zera, więc n-ty element menu można uzyskać, przekazując (n-1) do grub-restart.

Zobacz np

Nie przetestowane przeze mnie, ponieważ nie mam instalacji „Windows 7”.


dzięki, myślę, że tego właśnie potrzebuję (z dodatkowymi szczegółami, które znalazłem na help.ubuntu.com/community/Grub2 )
cwd

Jeśli zdarzyło Ci się wypróbować to bez zmiany wiersza na GRUB_DEFAULT=saved, musisz to zrobić ręcznie później, jak wyjaśniono tutaj w drugim akapicie dla Grub2, a następniegrub-set-default 0; grub-reboot 0
rubo77

1
polecenie pokazujące numery wpisu:grep -i "menuentry '" /boot/grub/grub.cfg|sed -r "s|--class .*$||g"|nl -v 0
rubo77

1
Zgodnie z askubuntu.com/questions/838704/grub-reboot-to-specific-kernel , menuentrys poniżej submenuin /boot/grub/grub.cfgmusi być przekazany grub-rebootjako as SUBMENU>MENUENTRY. Na przykład, używając jakiegoś bash-fu podobnego do @ rubo77, chciałem uruchomić menuentry7, jednak ten wpis był pod submenudrugim, który był drugim wpisem w menu najwyższego poziomu, więc musiałem go przekazać '1>6'(pojedyncze cudzysłowy, aby uniknąć interpretacja powłoki>).
Trent Nelson,

1
OSTRZEŻENIE: To nie działa, jeśli uruchamiasz partycję BTRFS. Grub musi mieć możliwość zapisu do grubenv, ponieważ uruchamia system Windows, nie może pisać do BTRFS. Plik jest zwykle przechowywany w / boot / grub i można go przeglądać za pomocą grub-editenv. Naprawiłem swój system, instalując BTRFS w /, partycję EXT4 w / boot, a następnie partycję EFI w / boot / efi.
nathan

-2

Spróbuj zainstalować grub-customizer (przewodnik instalacji poniżej) w systemie Ubuntu. To narzędzie GUI zapewni ci ładny zestaw opcji, dzięki którym możesz skonfigurować ustawienia GRUB, w tym nazwy i kolejność opcji uruchamiania, domyślny system, rozdzielczość ekranu, czcionki, tło itp.
Nie jestem pewien, czy ma umiejętność bezpośredniego ustawiania, co chcesz, ale przynajmniej może pokazywać numery OS. Sądzę, że można się do nich odwoływać także po imieniu.

Jak zainstalować grub-customizer:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

(źródło: launchpad - Daniel Richter )


Widziałem to narzędzie, ale używam serwera Ubuntu 14.04 (bez GUI), więc chciałbym mieć rozwiązanie z linii poleceń.
cwd

Och, nie wiedziałem tego. Używam standardu 14.10 (Unity) i osobiście wolę GUI do takich zadań. Znasz stronę? Opisuje to, co napisałeś w swoim pytaniu, ale jeśli różni się od pierwszego źródła, być może znajdziesz tam dokładnie to, czego potrzebujesz.
Bajt Dowódca

-1 - Głosuję za odrzuceniem twojej odpowiedzi, ponieważ zastanawiam się, czy w ogóle przeczytałeś pytanie. Rozumiem, że mogłeś przegapić „serwer Ubuntu”, ale właśnie opublikowałeś ten sam link, który
podałem

Ups Ale czy uważasz, że za każdym razem, gdy piszę nowy komentarz lub odpowiedź, ponownie czytam całe pytanie i poprzednie posty, sprawdzając każdy link !? Poza tym możesz także zainstalować DE na serwerowych dystrybucjach! Przyznaję, że nie jestem jeszcze ekspertem, ale przynajmniej staram się pomagać innym tam, gdzie mogę, nawet jeśli odpowiedzi nie zawsze są w 100% poprawne lub przydatne. Powinieneś się cieszyć, że ktoś próbuje pomóc ci rozwiązać ten problem, ale jeśli chcesz mnie wkurzyć, ci się udało. I ostatnia rzecz: mówiłeś GRUB_SAVEDEFAULT=false, ale nie mogę znaleźć tego na naszym łączu. I zapomniałeś o innych liniach tam wspomnianych!
Bajt Dowódca
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.