Czy istnieje sposób wyszukiwania listy tytułów „menuentries” GRUB?
Potrzebuję wyników w formacie, grub-set-default
który zaakceptuje. na przykład.
"Ubuntu"
"Memory test (memtest86+)"
etc.
command-line
grub2
madneon
źródło
źródło
Odpowiedzi:
Za pomocą
awk
daje pełną listę wszystkich pozycji menu w
grub.cfg
.źródło
awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg
awk
. : \awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg
do użyciagrub-set-default
Kolorowy zrzut ekranu (krótka wersja)
Koło używać myszki do przewijania, Home, End, PgUp, PgDn, ↑oraz ↓klucze do poruszania się po menu.
Tekstowy zrzut ekranu (długa wersja)
Skrypt bash używa
whiptail
zamiastdialog
wyświetlać menu. Jedną z zalet jest to, że możesz skopiować obraz terminala do schowka jako tekst i wkleić go na tej stronie jako tekst. Inne zalety to:dialog
nie jest domyślnie instalowany na Ubuntu Server lub Lubuntu.whiptail
jest dołączony domyślnie.Oto zrzut ekranu tekstowego:
Podświetl wpis i naciśnij Enter
Użyj klawiszy nawigacyjnych, aby podświetlić opcję i naciśnij, Enteraby zobaczyć załadowane sterowniki jądra
grub
i parametry rozruchowe przekazanegrub
do jądra podczas uruchamiania:grub-menu.sh
skrypt bashgrub-menu.sh
ma tylko jedną opcję dostosowania:Ustaw wartość na
true
(ukryj dodatkowe wpisy) lubfalse
(wyświetl wszystkie wpisy).Domyślny format można zastąpić podczas wywoływania skryptu za pomocą:
lub:
Kod:
źródło
Dokładnie to mnie denerwuje od ponad roku - dlatego zrobiłem szybki i brudny skrypt, aby to zrobić. Mam nadzieję, że to pomaga innym?
To układa nazwy w kolejce push / pop, ale nie indeksuje menu, więc może być lepiej, ale posunąłem się tak daleko, jak mogłem.
Tutaj możesz zobaczyć zrzut ekranu z mojego pudełka pokazujący, że działa
Jak wspomniano w komentarzu z 2019/8 r., Wspomniałem powyżej, wykonując „temp boot”. Ten pomysł był początkowo początkiem mojego skryptu, a metoda temp boot pochodzi z innego postu i wygląda mniej więcej tak
# vi /etc/default/grub
# sudo update-grub
# sudo grub-set-default 0
# sudo grub-reboot 4
Patrz: https://ubuntuforums.org/showthread.php?t=1310463
źródło
push
ipop
w twojej odpowiedzi. Szkoda, że ich nie znałem, zanim napisałem odpowiedź.test
1. Ustaw GRUB_DEFAULT na GRUB_DEFAULT = zapisany (/ etc / default / grub) 2. Zaktualizuj konfigurację grub w / boot #sudo update-grub 3. Ustaw domyślny system operacyjny na ładowanie (ładuje się przy każdym ponownym uruchomieniu komputera) # sudo grub -set-default 0 4. Gdy trzeba załadować inny system operacyjny (liczba to numer menu systemu operacyjnego, jak w /boot/grub/grub.cfg, spowoduje to załadowanie innego systemu operacyjnego tylko raz podczas następnego restartu - restart należy uruchomić ręcznie): sudo grub-reboot 4To powinien być odpowiedni „ciąg” ...
Ostatnia rura usuwa białe znaki na początku każdego wiersza i koryguje sekwencję numerów zgodnie z wprowadzeniem numeru grub. Przykładowe dane wyjściowe:
Jeśli chcesz zobaczyć wszystkie wpisy, również zaawansowane, możesz użyć
ale sekwencja liczb nie nadaje się do użycia z grub-set-default.
źródło
Właśnie dowiedziałem się, że możesz po prostu użyć autouzupełniania (
tab
dwukrotne naciśnięcie ) poleceń takich jakgrub-reboot
lubgrub-set-default
, a wyświetli się lista dostępnych pozycji menu rozruchu. Następnie możesz po prostu skopiować tytuł, który chcesz dosłownie, nie musisz używać numeru.Niestety z jakiegoś powodu moja instalacja systemu Windows 7 nie wyświetla się w ten sposób.
źródło
Inny awk one-liner, który obsługuje podmenu:
Może to być omylne, ponieważ \ t służy do identyfikowania pozycji podmenu.
źródło
W OpenSuSE grub2-once zapewnia identyfikator menu, którego można następnie użyć w innych poleceniach. Jednak niewiele pomocy dla użytkowników Ubuntu.
źródło