Vraag Stel de "oudere" kernel in als standaard grub-invoer


Ik heb een mainline kernel geïnstalleerd voor testdoeleinden. Ik wil grub standaard instellen vanaf de oudere kernel.

Ik weet dat ik het kan instellen GRUB_DEFAULT=0 instelling voor de eerste pagina van grub, maar hoe stel ik deze standaard in op één kernel op de tweede pagina (pagina Geavanceerd)?

Ik zou dit liever doen zonder andere software te installeren (bijvoorbeeld een grub-customizer).

Gerelateerde Vragen:
Hoe stel ik Windows zo in als standaard in de bootloader?
Hoe verander ik de grub-opstartvolgorde? 


77
2017-11-12 21:51


oorsprong


@belacqua: het is geen duplicaat. Deze vraag gaat over het instellen van een oudere kernel die standaard niet aanwezig is in de eerste pagina met opties van grub. - To Do
Het lijkt erop dat dit geval moet worden behandeld in de eerdere vragen, zelfs als de methode moet worden bijgewerkt voor 12.10, oudere kernels, enzovoort. - belacqua
Het gebruik van de vraag is anders en het antwoord is heel specifiek op een manier die niet van toepassing is op de andere geclaimde duplicaten. Ik kwam hier om dit specifieke probleem op te lossen; de opstartvolgorde niet wijzigen; noch om Windows op te starten. +1 voor "geen duplicaat". - Robie Basak


antwoorden:


Maak eerst een back-up van /etc/default/grub. Als er iets misgaat, kunt u gemakkelijk terugkeren naar de bekende kopie.

sudo cp /etc/default/grub /etc/default/grub.bak

Bewerk vervolgens het bestand met behulp van de teksteditor van uw keuze (bijvoorbeeld gedit, enz.).

sudo -H gedit /etc/default/grub

Zoek de regel die bevat GRUB_DEFAULT - dit is wat u wilt bewerken om de standaard in te stellen. Je moet de volledige naam weten van de kernel die je wilt - bijv. Ubuntu, with Linux 3.13.0-53-generic - samen met de volledige naam van het "geavanceerde menu" - b.v. Advanced options for Ubuntu.

Je combineert dan die twee snaren met > En instellen GRUB_DEFAULT voor hen als: GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic" (inclusief aanhalingstekens).

Sla het op en bouw dan het bijgewerkte grub-menu.

sudo update-grub

Zie ook: GNU GRUB Handleiding 2.02


Opmerking: er is een methode waarbij getallen worden gebruikt om toegang te krijgen tot kernels en menu's, maar dit wordt niet aanbevolen, omdat het onbetrouwbaar is wanneer kernelupdates plaatsvinden.


113
2017-11-12 22:31



Het gebruik van een numerieke waarde kan problematisch zijn als er updates plaatsvinden. Het is beter om een ​​tekststandaard te gebruiken, bijvoorbeeld: GRUB_DEFAULT = "Vorige Linux-versies> Ubuntu, met Linux 3.2.0-18-generiek" - Bealer
Men kan gebruiken sudo grub-mkconfig | less om alle mogelijke opties te zien - Nitz
Dit is een goede oplossing, maar nog beter is om een ​​te openen /boot/grub/grub.cfg en daar zult u alle zien manuentry en alle submenus. Als u ze bewerkt, kunt u de standaardinstellingen eenvoudig instellen en zelfs de titels van de opties in de lijst met grubs wijzigen bij het opnieuw opstarten van een computer. - Aleks
Het is zeker nuttig om te onderzoeken /boot/grub/grub.cfg om de exacte namen te bepalen die moeten worden gebruikt. Wijzig dit bestand echter niet, omdat het automatisch wordt geregenereerd door update-grub, inclusief bij het updaten van pakketten. - Robie Basak
De opmaak voor GRUB_DEFAULT is enigszins verouderd (sinds tenminste Ubuntu 14.04.2). hardlopen update-grub Ik ben een waarschuwing tegengekomen: gebruik alsjeblieft geen oude titel Previous Linux versions>Ubuntu, with Linux 3.13.0-53-generic voor GRUB_DEFAULT, gebruik Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic (voor versies voor 2.00) of gnulinux-advanced-b0ce60c3-184c-453b-af59-419b56a2584f>gnulinux-3.13.0-53-generic-advanced-b0ce60c3-184c-453b-af59-419b56a2584f (voor 2,00 of later) - Wumms


Nu dat een Advanced menu is standaard in Ubuntu, je zult het moeten selecteren voor de kernel die je wilt gebruiken > karakter.

Stel bijvoorbeeld in:

GRUB_DEFAULT="1>7"

in /etc/default/grub en opnieuw uitvoeren sudo update-grub.

Het is belangrijk op te merken dat voor de GRUB-menu-items die met nummering beginnen 0. Daarom, de 1 hierboven wijst naar de Advanced menu. Uit voorzorg wilt u misschien aanvankelijk instellen GRUB_TIMEOUT=5. Sommige hebben mogelijk geen toegang tot GRUB door tijdens het opstarten op een toets te drukken. Dit is een vangnet voor het geval je per ongeluk naar zoiets verwijst Memory test in plaats daarvan. Het is ook noodzakelijk om de bovenstaande cijfers tussen aanhalingstekens te plaatsen. Het zal niet anders werken.

Ik heb getest op 16.04 LTS.


12
2017-12-08 18:48



Werkt ook in Debian. - Lawrence D'Oliveiro


De beste oplossing voor mij was om in te stellen (in /etc/default/grub):

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

Met deze instellingen wordt de laatst geselecteerde waarde bewaard voor de volgende keer opstarten. Als je een nieuwe kernel hebt, hoef je je configuratie niet te bewerken.

Vergeet niet om opnieuw te lopen sudo update-grub

De oplossing is door te lezen: info grub-mkconfig


11
2018-01-28 19:08



Dit is geweldig - Mephisto
weet je het zeker over de puntkomma (;) aan het einde van de regels?!? - DJCrashdummy
Ik kan niet op mijn computer kijken waar ik het op dit moment gebruikte, maar je hebt gelijk ";" lijkt verkeerd of onnodig! - Martin T.


Om te kunnen instellen welke opstartoptie als standaard moet worden gebruikt, moet je weten wat er is ... dus:

Om de menu-items weer te geven zonder echt op te starten, probeer iets als:

$ lsb_release -s -rdc
Ubuntu 16.04.4 LTS
16.04
xenial

$ update-grub - versie
grub-mkconfig (GRUB) 2.02 ~ beta2-36ubuntu3.17

$ grep -Ei 'submenu | menuentry' /boot/grub/grub.cfg | sed -re "s / (.?) '([^'] +) '. * / \ 1 \ 2 /"
menukaart Ubuntu
submenu Geavanceerde opties voor Ubuntu
    menuentry Ubuntu, met Linux 4.4.0-34-generiek
    menuentry Ubuntu, met Linux 4.4.0-34-generic (upstart)
    menuentry Ubuntu, met Linux 4.4.0-34-generic (herstelmodus)
menuentry Systeeminstellingen


3
2018-03-31 17:58