Mam konfigurację podwójnego rozruchu systemu Ubuntu - Windows 7 i chciałbym, aby mój laptop uruchomił system Windows 7, chyba że nacisnę klawisz Shift zaraz po uruchomieniu i wyświetlę menu Grub2, z którego mogę wybrać Ubuntu.
Badałem Grub2 i opcje etc/default/grub
i próbowałem bawić się kombinacjami z wartościami GRUB_TIMEOUT
i GRUB_HIDDEN_TIMEOUT
, ale bezskutecznie. Próbowałem ustawić wartość GRUB_HIDDEN_TIMEOUT
wyższą niż GRUB_TIMEOUT
myślenie, że oba odliczanie rozpoczynają się jednocześnie, ale nie - GRUB_TIMEOUT
zaczyna się dopiero po zakończeniu drugiego.
Czy to zachowanie jest możliwe do osiągnięcia?
Jeśli tak to jak?
Odpowiedzi:
Myślę, że znalazłem prostsze rozwiązanie. Zmodyfikuj następujące wiersze w pliku / etc / default / grub:
GRUB_HIDDEN_TIMEOUT = 0,0
GRUB_TIMEOUT = 0,0
Oczywiście w końcu uruchomiliśmy aktualizację-grub. Działa na moim komputerze.
źródło
Dotyczy to Ubuntu 16.04.
Rozwiązałem to za pomocą niewielkiej kombinacji niektórych odpowiedzi znalezionych powyżej, więc nie trzeba modyfikować 30_os-prober, unikając przyszłych scaleń, gdy pakiet grub zostanie zaktualizowany ...
Mam nadzieję, że to pomoże.
Zmieniono niektóre zmienne w / etc / default / grub, aby odzwierciedlić to, czego chcę;
Następnie utworzył nowy plik;
wypełnił ją tą treścią;
i zaktualizowane grub;
Twoje zdrowie.
źródło
W Kubuntu 14.04 to nie działa, jeśli
GRUB_TIMEOUT= 0
dziwnie ustawisz , po zastosowaniu tego i ponownym uruchomieniu, menu grub pozostaje widoczne przez 10s.Powodem tego jest to, że w innym skrypcie grub znajduje się fragment kodu, który ustawia grub_timeout na 10, jeśli ma wartość 0.
Oto jak to działa:
zrób kopię obu plików
grub
i30_osprober
plików !!! Gdy coś pójdzie nie tak, możesz przywrócić oryginalne plikiW
/etc/default/grub
w
/etc/grub.d/30_os-prober
, tam jest kawałek kodu, który ustawia grub timeout 10s jeśli jest on ustawiony na zero/etc/default/grub
, nie wiem dlaczego deweloperów umieścić go tam, ale uniemożliwia ukrycie menu grub.Po tych zmianach uruchom,
sudo update-grub
aby wygenerować nową sekwencję rozruchową grub.Dokumentuję wszystkie moje poprawki / mody na Linuksa na https://sites.google.com/site/marcshomesite/Home/linux-tuning
źródło
=
wGRUB_TIMEOUT= 0
.Aby automatycznie uruchomić system Windows bez konieczności wybierania z menu GRUB, musimy edytować
/etc/default/grub
plik o wartościach podobnych do tych:Zawsze dobrym pomysłem jest tworzenie kopii zapasowych tych plików przed ich edycją. Po wprowadzeniu zmian musimy je aktywować za pomocą
Wartości GRUB_DEFAULT zależą od naszego indywidualnego systemu. Aby zawsze uruchamiać system Windows, możemy alternatywnie wpisać nazwę wpisu dokładnie tak, jak pokazano w menu Grub (np.
"Microsoft Windows XP Professional"
) Zamiast numeru wpisu.Ważna uwaga: w niektórych maszynach menu GRUB-a nie może być wyświetlane po naciśnięciu i przytrzymaniu lewego przycisku Shiftpodczas uruchamiania (patrz błąd # 425979 ). Dlatego dobrym pomysłem może być przetestowanie go najpierw przy uruchamianiu Ubuntu (nie Windows) jako domyślnego systemu operacyjnego. Wtedy będziesz mógł łatwo cofnąć ustawienia GRUB-a na wypadek, gdybyś miał na to wpływ.
źródło
Próbowałem zrobić to samo i znalazłem świetną pomoc na forach Ubuntu, szczególnie w tym wątku.
Zakładając, że zrobiłeś coś dobrego
/etc/default/grub
, poprawnie ustawiającGRUB_TIMEOUT
iGRUB_HIDDEN_TIMEOUT
(powiedziałbym odpowiednio 0 i 5), a nawetGRUB_DEFAULT
określając domyślny obraz do uruchomienia, oto procedura, aby działał poprawnie.Dodaj te linie
do końca
/etc/default/grub
Utwórz
/etc/grub.d/30_os-prober
kopię zapasową i zastąp ją wersją znajdującą się tutajSprawdź to! Aby wyświetlić menu, naciśnij
SHIFT
klawiszTen problem jest związany z konfiguracją wielu systemów operacyjnych, a edytowanie skryptu jest jednym ze sposobów rozwiązania tego problemu.
30_os-prober :
źródło
sudo update-grub
po zmianie/etc/default/grub
plikuNa Ubuntu 16.04 dokonałem następujących zmian. Oczywiście musisz być do tego uprzywilejowanym użytkownikiem.
Pierwsza zmiana znajduje się w
/etc/grub.d/30_os-prober
pliku:sudo gedit /etc/grub.d/30_os-prober
quick_boot="1"
naquick_boot="0"
Następnie możesz ustawić wartości limitu czasu
/etc/default/grub
na zero lub inną wartość:sudo gedit /etc/default/grub
GRUB_HIDDEN_TIMEOUT=0
aGRUB_TIMEOUT=0
.Ostatnim krokiem jest aktualizacja grub
sudo update-grub
Zmiany w pierwszym pliku są spowodowane tym, że domyślnym ustawieniem jest to, że jeśli zostaną znalezione inne systemy operacyjne (np. Windows 10), wartość limitu czasu jest zawsze ustawiona na 10 sekund i dlatego nie można jej zmienić
/etc/default/grub
. Dokonuje się tego funkcja o nazwie,adjust_timeout
która pyta, czyquick_boot
jest ustawiona i czy obecny jest inny system operacyjny.źródło
zainstaluj optymalizator grub
Grub Customizer pojawi się teraz w menu Aplikacje> Narzędzia systemowe.
Lub możesz go otworzyć z wiersza poleceń.
źródło
etc/default/grub
?grub-customizer
(nie „optymalizator”) i podczas pracy nie pomaga mi ukryć menu GRUB, chyba że zostanie naciśnięty klawisz Shift.Miałem ten sam problem w systemie z jednym uruchomieniem. Jeśli GRUB_TIMEOUT był niezerowy, menu zawsze pojawiało się niezależnie od GRUB_HIDDEN_TIMEOUT. Gdyby GRUB_TIMEOUT wynosił zero, spałby przez GRUB_HIDDEN_TIMEOUT sekund, ale ani SHIFT, ani ESC nie pokazywałyby menu.
Naprawiłem to, dodając klauzulę else do statystyki uśpienia na końcu Adjust_time () w 30_os-prober. Teraz, jeśli nie jest przerwany, limit czasu wynosi zero i uruchamia się bez menu, ale jeśli jest przerywany, ustawiam limit czasu na 10.
To faktycznie wydaje się odwrócone, ponieważ sen powinien zwrócić 0 (fałsz), jeśli nie jest przerwany, i 1 (prawda), jeśli tak, ale wydaje się, że działa dla mnie.
źródło
WYKONYWANIE AUTOMATYCZNIE WIDOCZNEGO MENU BOOT GRUB2
Z jakiegoś powodu edycja
GRUB_GFXMODE=640x480
ustawień w Grub Customizerze zazwyczaj powoduje wyświetlenie menu rozruchu:Nie mam pojęcia, dlaczego to działało dla mnie, ale działało na obu moich komputerach, więc mam nadzieję, że zadziała również dla ciebie!
źródło
Shasteriskt, jedną z alternatyw dla rozwiązania „SHIFT” jest po prostu utworzenie skryptu, który wykona za Ciebie pewne operacje przenoszenia. Chodzi mi o to, aby utworzyć plik o nazwie,
grub.bak
który jest dokładną kopiągrub.cfg
pliku, z tą różnicą, że na przykładset timeout=0
zmieniono wierszset timeout=10
. Utwórz skrypt powłoki, który robi przełącznik umożliwiający ponowne uruchomienie w zależności od potrzeb. Stworzyłem równoważny skrypt Pythona, który spełnia te wymagania, ale oczywiście trzeba go wywołaćsudo
. Po prostu włączyłem go w/usr/bin
konfiguracji jako dowiązanie symboliczne do samego skryptu. Uwaga: korzystam z Fluxboksa na Archu, więc nie jestem pewien, czy są jakieś rozbieżności między tym skryptem a Ubuntu, ale myślę, że nie powinno być żadnych modyfikacji lub ich brak. Skrypt wygląda następująco:Skrypt po prostu określa, czy masz menu do załadowania, czy nie (automatyczne uruchamianie, czy nie). Na podstawie swoich ustaleń pyta, czy chcesz go włączyć, czy wyłączyć, a następnie pyta, czy chcesz zrestartować komputer. I odwrotnie, jeśli chcesz, aby działał na odwrót (tj. W systemie Windows) i masz skonfigurowany system Windows do uzyskiwania dostępu do plików w systemie Linux, możesz uruchomić ten sam skrypt również w tym środowisku, jeśli chcesz. Mam nadzieję, że to pomaga.
źródło
Więc nawet jeśli ustawisz GRUB_TIMEOUT na 0, jeśli masz GRUB_HIDDEN_TIMEOUT, 30_os-prober ustawi limit czasu na 10, czy ci się to podoba, czy nie. Inne rozwiązania tutaj edytują ten skrypt, ale może to powodować problemy z aktualizacją, które będziesz musiał scalić, jeśli GRUB zostanie zaktualizowany.
Lepsze rozwiązanie: napisz w
/etc/grub.d/50_goddamnit
(nowy plik):Zasadniczo będzie to działało jako ostatnie i będzie ostatnim wierszem w /boot/grub/grub.conf, zastępując w ten sposób wszystkie inne głupie bzdury w domyślnej konfiguracji.
źródło