como capturar a versão mais recente do kernel a partir do grub.conf

2

Como posso capturar a última versão do kernel a partir de grub.conf (no caso de default = 0)?

Por exemplo, o kernel mais recente do arquivo é 2.6.18-409.el5

 #          all kernel and initrd paths are relative to /boot/, eg.
 #          root (hd0,0)
 #          kernel /vmlinuz-version ro root=/dev/rootvg/slash
 #          initrd /initrd-version.img

#boot=/dev/cciss/c0d0
default=0
timeout=5
#splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-409.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-409.el5 ro root=/dev/rootvg/slash
    initrd /initrd-2.6.18-409.el5.img

Eu tentei isso:

  grep kernel /etc/grub.conf | grep -v "#" |sed s'/-/ /' | head -1 | awk '{print $3}'
  2.6.18-409.el5

mas acho que essa abordagem não é confiável e não atende a alguns casos.

Por favor, informe qual é a abordagem correta para obter o kernel mais recente somente a partir do 'grub.conf' '.

    
por yael 07.06.2016 / 07:45

1 resposta

0

A abordagem é específica para a versão do grub, note que para o grub 2+ então kernel foi substituído por linux , então essa abordagem leva isso em conta

awk '/\/vmlinuz{kernel[$2]}
     END{
     asorti(kernel);
     latest=kernel[length(kernel)];
     print "Latest kernel : ",gensub(/\/vmlinuz-([[:digit:].-]*[[:digit:]]).*$/,"\1","1",latest)}
    ' /boot/grub/grub.cfg

Saída de amostra

Latest kernel :  3.13.0-86

Nota: Requer [gnu-awk]

    
por 03.08.2016 / 14:14