Centos'da bilgisayarı yeniden başlatmadan, kernel upgrade etmek
Kimi durumlarda sunucumuzu reboot etmek istemiyoruz fakat update’lerin ardından sunucuyu yeniden başlatmaya mahkum oluyoruz.
Bu durumda yardımımıza kexec yetişiyor.
kexec’le ilgili detaylı bilgiye
yum install kexec-tools -y
komutu yardımıyla kexec’i yükledikten sonra man kexec
komutu yardımıyla komutun detaylarını öğrenebilirsiniz. Bu yüzden ben fazla detay’a girmeden direk işlemleri anlatmaya devam ediyorum.
Mevcut kernel sürümümüzü;
uname -r
Komutuyla bir yere not ediyoruz, malum işlemin başarıyla tamamlandığını ancak bu şekilde anlayabiliriz.
Güncellemeyi henüz yüklemediysek;
yum update kernel-* -y
komutuyla güncellemeleri sunucumuza yükleyip, kexec librarysine yeni yüklediğimiz güncellemeyi tanıtıyoruz;
lastkernel=`ls -t /boot/vmlinuz-* | sed "s/\/boot\/vmlinuz-//g" | head -n1`
komutu yardımıyla /boot klasöründe dosya ismi vmlinuz ile başlayan en güncel dosyanın adını lastkernel değişkenine atıyoruz. Yaptığımız işlemin doğruluğunu konsolda echo $lastkernel
yazarak test edebiliriz.
ardından yazmamız gereken komut;
kexec -l /boot/vmlinuz-${latestkernel} --initrd=/boot/initramfs-${latestkernel}.img --append="`cat /proc/cmdline`"
Bu komutu yazdıktan sonra ekranda unable to gather efi data şeklinde bir uyarı mesajı alabilirsiniz. /sys/firmware/ klasörü altında efi adında bir dosya yoksa uyarıyı yoksayıp işleme devam edebilir; varsa da ilgili dosyayı silip işleme devam edebilirsiniz.
Son olarak yazmamız gereken komut ise;
kexec -e
Bu işlem sonrasında bilgisayar boot ekranına düşmeden, sadece işletim sistemini restart etmekte. Normal hardware reboot’a göre daha kısa sürüyor ve bu işlem sırasında sunucunuz geçici süreliğine kullanılmaz oluyor, tüm servisleriniz yeniden başlıyor.