# Kernel in uso [RISOLTO]

## ænigma

Ciao a tutti, ho un dubbio: alcuni giorni fa ho fatto l'aggiornamento del kernel dal 4.19.23 al 4.19.27, ma dando uname -a mi risulta ancora il 4.19.23. Come mai?

----------

## xdarma

Potrebbe essere un problema di bootloader, prova a postare cosa ti restituisce il comando: ls -lh /boot

----------

## ænigma

```
davide@gentoo ~ $ su

Password: 

gentoo /home/davide # ls -lh /boot

totale 17M

drwxr-xr-x 6 root root 1,0K 12 mar 11.08 grub

-rw-r--r-- 1 root root 7,6M 28 feb 11.27 initramfs-genkernel-x86_64-4.19.23-gentoo

-rw-r--r-- 1 root root 6,3M 28 feb 10.33 kernel-genkernel-x86_64-4.19.23-gentoo

drwx------ 2 root root  12K 28 feb 07.55 lost+found

-rw-r--r-- 1 root root 3,1M 28 feb 10.33 System.map-genkernel-x86_64-4.19.23-gentoo

gentoo /home/davide # 

```

 Ciao xdarma, ecco l'output.

----------

## fedeliallalinea

Non hai mai ricompilato il kernel nuovo, infatti in /boot hai solo il 4.19.23

----------

## ænigma

No, non l'ho ricompilato, come dovrei fare?

----------

## fedeliallalinea

 *aenigma wrote:*   

> No, non l'ho ricompilato, come dovrei fare?

 

Per prima cosa selezioni il kernel desiderato con eselect kernel set <quello_che_desideri>

Visto che hai usato genkernel puoi dare il comando

```
# genkernel --kernel-config=/etc/kernels/kernel-config-x86_64-4.19.23-gentoo all
```

(genkernel ti salva sempre la configurazione del vecchio kernel nella directory /etc/kernels)

e poi ricrei il menu di grub con

```
# grub-mkconfig -o /boot/grub/grub.cfg
```

----------

## ænigma

Fatto! Grazie gente, quante cose ho ancora da imparare!

 Ora posso eliminare il vecchio kernel? Qual'è il modo migliore?

----------

## ænigma

Il vecchio kernel l'ho eliminato seguendo il manuale, ma le voci del bootloader come le elimino?

----------

## xdarma

Puoi sempre farlo a mano editando il file /boot/grub/grub.cfg ma è preferibile farlo come ti ha indicato fedeliallalinea:

 *Quote:*   

> 
> 
> e poi ricrei il menu di grub con
> 
> ```
> ...

 

----------

## fedeliallalinea

 *aenigma wrote:*   

> Il vecchio kernel l'ho eliminato seguendo il manuale

 

C'e' anche l'utility app-admin/eclean-kernel, ma devo essere sincero che elimino sempre a mano i file dei vecchi kernel una volta testato che il nuovo funzioni.

 *aenigma wrote:*   

> ma le voci del bootloader come le elimino?

 

Come detto da xdarma

----------

## ænigma

Ho eliminato manualmente tutto ciò che riguardava il vecchio kernel (4.19.23) con il comando  rm /boot

 Spero sia tutto a posto, ciao.

----------

## sabayonino

Errori grossolani :

1 - rm /boot , è una directory e non te la fa rimuovere 

2 - se rmuovi /boot , al prossimo riavvio non ti parte più nulla perchè rimuovi anche /boot/grub (e comuqnue tutto il suo contenuto , kernel compresi)

3 - Ad ogni giornamento del kernel , va aggiornato il grub così da poterlo avere a disposizione all'avvio (se lo si vuole ...)

4 -la più recente versione di eclean-kernel è un salvagente

```
eclean-kernel -h

Usage: eclean-kernel [options]

Remove old kernel versions, keeping either N newest kernels (with -n) or only

those which are referenced by a bootloader (with -a).

Options:

  -h, --help            show this help message and exit

  -a, --all             Remove all kernels unless used by bootloader

  -A, --ask             Ask before removing each kernel

  -b BOOTLOADER, --bootloader=BOOTLOADER

                        Bootloader used (auto, lilo, grub2, grub, yaboot,

                        symlinks)

  -d, --destructive     Destructive mode: remove kernels even when referenced

                        by bootloader

  -D, --debug           Enable debugging output

  -l, --list-kernels    List kernel files and exit

  -M, --no-mount        Disable (re-)mounting /boot if necessary

  -n NUM, --num=NUM     Leave only newest NUM kernels (by mtime)

  -p, --pretend         Print the list of kernels to be removed and exit

  -x EXCLUDE, --exclude=EXCLUDE

                        Exclude kernel parts from being removed (comma-

                        separated, supported parts: vmlinuz, systemmap,

                        config, initramfs, modules, build)

```

Se usata consapevolmente , ti mantiene pulito il sistema rimuovendo 

- I kernels vecchi in /boot

- Rimuove /lib/modules/<kernel> non più necessario

- Rimuove /usr/src/<kernel>  se presente

- Aggiorna il grub in automatico

Un utilizzo basico potrebbe essere quello di mantenere almeno due kernel (l'ultimo ed uno di riserva,di norma la versione precedente installata) semplicemente eseguendo :

```
# eclean-kernel -n2
```

Poi , si può procedere alla rimozione dei kernel rimossi nel file world (se presenti) che tiene traccia delle installazioni 

```
# emerge -C gentoo-sources:<versione>
```

Se hai rimosso /boot ... buon chroot e reinstallazione/ricompilazione kernel e grub.

PS : se stai facendo pratica , ti consiglio di effettuare costantemente un backup del sistema così da ripristinarlo facilmente e riprendere agevolmente la tua fase di apprendimento (ma vale sempre per tutte le situazioni) ...possibilmente salvarlo su un supporto separato.

Un buon tool che potrei raccomandarti , oltre al classico "tar" , prendi in considerazione anche "fsarchiver" il quale fa egregiamente il suo lavoro...

```
app-backup/fsarchiver

     Available versions:  0.8.4 (~)0.8.5 {debug lz4 lzma lzo static zstd}

     Installed versions:  0.8.4(19:34:41 08/06/2018)(lzma lzo zstd -debug -lz4 -static)

     Homepage:            http://www.fsarchiver.org

     Description:         Flexible filesystem archiver for backup and deployment tool
```

E anche qui hai qualcos'altro da studiare...

----------

## ænigma

Scusa sabayonino se mi sono espresso male; volevo dire che ho eliminato in /boot tutto ciò che riguardava il kernel 4.19.23 (initramfs-genkernel, kernel-genkernel, System.map-genkernel).

 La prossima volta prenderò in considerazione eclean-kernel.

----------

## marziods

mi intrufolo nella conversazione ...

a sto punto prova pure a compilare il kernel manualmente... ti divertirai a capire come mai alcune cose non funzionano

 :Razz: 

----------

