
最新のカーネルバージョンをキャプチャする方法grub.conf
(デフォルト= 0の場合)は何ですか?
たとえば、ファイルの最新のカーネルは次のようになります。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
私はこれを試しました:
grep kernel /etc/grub.conf | grep -v "#" |sed s'/-/ /' | head -1 | awk '{print $3}'
2.6.18-409.el5
しかし、私はこの方法が信頼できず、特定の状況を処理できないと思います。
"grub.conf"から最新のカーネルを取得する正しい方法は何ですか?
答え1
この方法は grub バージョンに固有のものです。 grub 2+の場合にkernel
置き換えられたので、linux
この方法はこれを考慮します。
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
サンプル出力
Latest kernel : 3.13.0-86
メモ:必要[グヌ-awk]
答え2
grep title /etc/grub.conf | awk '{print $7}' | tr -d "()"