Come aggiungere un nuovo kernel a grub2


24

Come possiamo aggiungere un kernel a grub2? sapevo le cose che potevamo fare con le versioni precedenti, ma sembra che siano cambiate. Quali file dovremmo modificare?

Risposte:


11

Per aggiungere un nuovo kernel a grub2:

  1. Sposta il kernel in / boot /
  2. Esegui sudo update-grub

update-grub eseguirà la scansione del computer alla ricerca di kernel e creerà un elenco di kernel disponibili all'avvio.

Per poter selezionare il kernel da avviare all'avvio, potrebbe essere necessario tenere premuto il pulsante SHIFT subito dopo che il BIOS ha effettuato la sua pubblicazione.

È possibile modificare / etc / default / grub per modificare le opzioni di avvio predefinite e i parametri che potrebbero essere necessari.

Linux non Debian

Vedi le note di grub per la tua distribuzione, come questi documenti Fedora GRUB 2 .

  • grub2-mkconfig -o /boot/grub2/grub.cfg

Cosa succede se si hanno 2 distro Linux senza una partizione separata / boot? Devi copiare il kernel dal rootfs secondario a quello primario? O 'grub-update' controlla anche altre partizioni per i nuovi kernel?
Jiggunjer,

Questa è una domanda separata, ma entrambi i file eseguibili utilizzati devono essere letti /boot/e generati correttamente. Il file di configurazione di grub (es:) /etc/default/grubpotrebbe essere diverso per sistema operativo, quindi assicurati di sincronizzarli. Tuttavia, è consigliabile che un singolo sistema operativo generi voci grub per te.
earthmeLon

Non è una domanda separata, OP non ha specificato la sua configurazione e i dual boot a sono comuni. Ho pensato che potesse aggiungere valore alla tua risposta, il che è già positivo. Quindi, in altre parole, il sistema operativo secondario non ha nemmeno bisogno del proprio grub, il grub di quello primario cercherà le cartelle / boot su tutte le partizioni e troverà i kernel.
Jiggunjer,

1
Come posso spostare un kernel su / boot? mv kernel /boot? Dove trovo un kernel che potrebbe essere spostato in / boot?
Thomas Weller,

3

Sto eseguendo Fedora 20 e il comando per aggiornare grub2 è grub2-mkconfig. Inoltre, l'intero processo può essere realizzato con il build del kernel:

make xconfig (make config, etc)
make bzImage
make modules
sudo make modules_install
sudu make install

Questo (ultimo passo) copierà il kernel in / boot e aggiornerà il boot loader grub2. Molto semplice, e ha funzionato correttamente nel mio caso. Il mio unico problema è che non impari davvero alcun dettaglio importante del processo, tutto è automatizzato. Se hai problemi e devi capire cosa c'è che non va, potresti rimanere bloccato.


sudo make installmi dice: Cannot find LILO.
René Nyffenegger,

Forse stai costruendo una versione molto più vecchia del kernel? LILO è stato usato sulla versione del kernel precedente alla 3.x (non sono sicuro della versione esatta) Con quale distribuzione stai lavorando?
philbrooksjazz,

Questo era su Arch Linux, con il più recente rc (4.6.0-rc5) che ho clonato dal repository Torvalds di Linux.
René Nyffenegger

0

/boot/grub/grub.cfgè il file sostituito menu.lstda grub1

Nei sistemi Debian / Ubuntu questo è generato da update-grub, che esegue gli script /etc/grub.dusando qualcosa di simile a run-parts.


0

Se il nuovo kernel è installato con dpkg (come se fosse compilato con make-kpkg), update-grub2 è sufficiente (rimuove anche i kernel esistenti)


0

Non si "modifica" per aggiungere più kernel. Esegue la scansione e li aggiunge in modo dinamico. Se DEVI aggiungerne uno che una scansione non trova, dovresti cercare in /etc/grub.d e modificarlo o copiarlo e personalizzarlo40 (è stato aggiunto per ultimo, quindi è un ottimo posto per testare la tua configurazione prima di metterlo in cima al tuo elenco).


0

Prova update-grubo in update-grub2base alla tua versione di grub. Si dovrà eseguire questi come root, sudo. Questo ha funzionato per me quando ho installato una seconda distro Linux senza reinstallare grub.


Mi sono reso conto che la mia risposta è simile alla risposta di Alan, ma ho aggiunto il comando grub2.
Beatgammit
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.