Ana içeriğe geç
Kategoriye Dön

Kernel Güncelleme ve GRUB Yönetimi: Güvenli Rehber

apt/yum ile kernel güncelleme, mevcut kernel sürümünü kontrol etme, GRUB yapılandırması, önceki kernel sürümüne geri dönme ve güvenli kernel yönetimi rehberi.

Okuma süresi: 12 dk Sunucu Yönetimi
kernelgrublinux kernelgüncellemeaptyumrollback

İçindekiler

Kernel Güncelleme ve GRUB Yönetimi: Güvenli Rehber

Linux kernel, işletim sisteminin çekirdeğidir ve donanım ile yazılım arasındaki köprüyü oluşturur. Kernel güncellemeleri güvenlik açıklarını kapatır, yeni donanım desteği ekler ve performans iyileştirmeleri sağlar. Bu rehberde kernel güncelleme sürecini, GRUB yapılandırmasını ve sorun durumunda önceki kernel sürümüne nasıl geri döneceğinizi öğreneceksiniz.

Mevcut Kernel Sürümünü Kontrol Etme

hljs bash
# Çalışan kernel sürümünü görüntüle
uname -r

# Detaylı kernel bilgisi
uname -a

# Örnek çıktı:
# Linux hostname 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

# Yüklü tüm kernel sürümlerini listele (Ubuntu/Debian)
dpkg --list | grep linux-image

# RHEL/CentOS/AlmaLinux
rpm -qa | grep kernel

# Mevcut ve kullanılabilir kernel sürümleri
apt-cache showpkg linux-image-generic  # Ubuntu/Debian

Kernel Güncelleme

Ubuntu/Debian ile Kernel Güncelleme

hljs bash
# Paket listesini güncelle
sudo apt update

# Mevcut güncellemeleri listele
apt list --upgradable | grep linux

# Tüm sistemi güncelle (kernel dahil)
sudo apt upgrade -y

# Sadece kernel güncelle
sudo apt install linux-image-generic linux-headers-generic

# Belirli bir kernel sürümü kur
sudo apt install linux-image-5.15.0-91-generic

# Güncelleme sonrası yeniden başlat
sudo reboot

RHEL/CentOS/AlmaLinux ile Kernel Güncelleme

hljs bash
# Paket listesini güncelle
sudo dnf update

# Sadece kernel güncelle
sudo dnf update kernel

# Mevcut kernel sürümlerini listele
sudo dnf list installed kernel

# Güncelleme sonrası yeniden başlat
sudo reboot

Kernel güncellemesi sonrası mutlaka yeniden başlatma gerekir. Yeniden başlatmadan önce tüm önemli işlemleri kaydedin ve çalışan servisleri not edin.

Kernel Güncelleme Sonrası Doğrulama

hljs bash
# Yeni kernel sürümünü doğrula
uname -r

# Sistem loglarını kontrol et
sudo journalctl -b | head -50

# Kritik servislerin çalıştığını kontrol et
sudo systemctl status nginx
sudo systemctl status mysql

GRUB Yapılandırması

GRUB (Grand Unified Bootloader), Linux sistemlerinde kullanılan önyükleyicidir. Birden fazla kernel sürümü yüklüyken hangi kernel ile başlatılacağını yönetir.

GRUB Menüsünü Görüntüleme

hljs bash
# GRUB menü girişlerini listele
grep -E "^menuentry|^submenu" /boot/grub/grub.cfg

# Daha okunabilir format
grep -E "menuentry '" /boot/grub/grub.cfg | head -20

# Mevcut varsayılan kernel
grub-editenv list

GRUB Yapılandırma Dosyası

hljs bash
# Ana GRUB yapılandırma dosyasını düzenle
sudo nano /etc/default/grub
hljs bash
# Önemli GRUB parametreleri:

# Varsayılan kernel seçimi (0 = ilk, 1 = ikinci, vb.)
GRUB_DEFAULT=0

# Menü bekleme süresi (saniye)
GRUB_TIMEOUT=5

# Menüyü her zaman göster (gizleme)
GRUB_TIMEOUT_STYLE=menu

# Kernel parametreleri
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Seri konsol (uzak sunucular için)
# GRUB_TERMINAL=serial
# GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
hljs bash
# GRUB yapılandırmasını güncelle
sudo update-grub  # Ubuntu/Debian
sudo grub2-mkconfig -o /boot/grub2/grub.cfg  # RHEL/CentOS

Varsayılan Kernel Değiştirme

hljs bash
# Mevcut GRUB menü girişlerini numaralandırılmış listele
awk -F\' '/menuentry / {print i++" : "$2}' /boot/grub/grub.cfg

# Varsayılan kernel'i değiştir (0-tabanlı indeks)
sudo grub-set-default 1

# Değişikliği doğrula
grub-editenv list

# GRUB'u güncelle
sudo update-grub

Önceki Kernel Sürümüne Geri Dönme

Yöntem 1: GRUB Menüsünden Manuel Seçim

Sunucu yeniden başlarken GRUB menüsünde:

  1. Advanced options for Ubuntu (veya dağıtımınıza göre) seçeneğini seçin
  2. Listeden eski kernel sürümünü seçin
  3. Enter ile başlatın

Uzak sunucularda GRUB menüsüne erişmek için REXE müşteri panelindeki KVM/VNC konsol özelliğini kullanın.

Yöntem 2: Varsayılan Kernel'i Eski Sürüme Ayarlama

hljs bash
# Yüklü kernel sürümlerini listele
dpkg --list | grep linux-image | grep -v meta

# Örnek çıktı:
# linux-image-5.15.0-88-generic
# linux-image-5.15.0-91-generic  (mevcut)

# GRUB menü girişlerini listele
grep -E "menuentry '" /boot/grub/grub.cfg

# Eski kernel'i varsayılan yap
# Önce tam menü adını bul:
grep "menuentry '" /boot/grub/grub.cfg | grep "5.15.0-88"

# Varsayılanı ayarla (tam menü adı ile)
sudo grub-set-default "Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-88-generic"

# GRUB'u güncelle
sudo update-grub

# Yeniden başlat
sudo reboot

Yöntem 3: Sorunlu Kernel'i Kaldırma

hljs bash
# Sorunlu kernel sürümünü kaldır (Ubuntu/Debian)
sudo apt remove linux-image-5.15.0-91-generic
sudo apt autoremove

# GRUB'u güncelle
sudo update-grub

# RHEL/CentOS için
sudo dnf remove kernel-5.15.0-91

Kernel Parametreleri

Kernel parametreleri, sistem davranışını özelleştirmek için kullanılır.

hljs bash
# Mevcut kernel parametrelerini görüntüle
cat /proc/cmdline

# Çalışma zamanında parametre değiştirme (geçici)
sudo sysctl -w net.ipv4.ip_forward=1

# Kalıcı parametre değişikliği
sudo nano /etc/sysctl.conf
# veya
sudo nano /etc/sysctl.d/99-custom.conf

# Değişiklikleri uygula
sudo sysctl -p

# Tüm kernel parametrelerini listele
sysctl -a

Yaygın Kernel Parametreleri

hljs bash
# Ağ performansı
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.core.netdev_max_backlog = 65535

# Bellek yönetimi
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5

# Dosya sistemi
fs.file-max = 2097152
fs.inotify.max_user_watches = 524288

Kernel Güncelleme Stratejileri

Üretim Sunucuları için Güvenli Güncelleme

hljs bash
# 1. Yedek al
rsync -avz /var/www/ backup-server:/backup/

# 2. Snapshot al (varsa)
# REXE panelinden snapshot oluşturun

# 3. Güncellemeyi test ortamında dene
# Önce test sunucusunda güncelle

# 4. Bakım penceresi belirle
# Düşük trafik saatlerinde güncelle

# 5. Güncelle ve yeniden başlat
sudo apt update && sudo apt upgrade -y
sudo reboot

# 6. Servisleri kontrol et
sudo systemctl status nginx mysql
curl -I http://localhost

Üretim sunucularında kernel güncellemesini hemen uygulamak yerine, önce test ortamında deneyin. Kritik sistemlerde bakım penceresi belirleyerek güncelleme yapın.

Sorun Giderme

Kernel Güncelleme Sonrası Sistem Açılmıyor

hljs bash
# GRUB menüsünden eski kernel ile başlat
# (REXE KVM konsol üzerinden)

# Eski kernel ile başladıktan sonra sorunlu kernel'i kaldır
sudo apt remove linux-image-[sorunlu-versiyon]
sudo update-grub

Kernel Modülü Yüklenmiyor

hljs bash
# Yüklü modülleri listele
lsmod

# Modül yükle
sudo modprobe module-adi

# Modül bilgisi
modinfo module-adi

# Kernel log'larını kontrol et
sudo dmesg | tail -50

Sonuç

Kernel güncellemeleri, Linux sunucu güvenliği ve performansı için kritik öneme sahiptir. Düzenli kernel güncellemeleri yaparak güvenlik açıklarını kapatabilir, yeni özelliklerden yararlanabilirsiniz. GRUB yapılandırmasını anlayarak sorun durumunda hızlıca eski kernel sürümüne geri dönebilirsiniz.