journalctl ile /etc/fstab Önyükleme Hatası Nasıl Düzeltilir
Seviye: Başlangıç / Orta
Tahmini süre: ~15 dakika
Amaç: Sistemin açılmasını engelleyen bir /etc/fstab hatasını belirlemek ve düzeltmek için journalctl ile sistem günlüklerini analiz etmek.
Giriş
/etc/fstab dosyasındaki basit bir sözdizimi hatası, sunucunun açılmasını engelleyebilir ve sizi acil durum bakım kabuğuna (emergency shell) düşürebilir. Kurtarma için hatanın tam noktasını belirlemek üzere sistem günlüklerini analiz etmeniz gerekir. Bu eğitimde systemd journal'ını sorgulamak ve Linux'un önyükleme sırasında ürettiği sistem günlüklerini görüntülemek için journalctl kullanacağız. systemd günlüklerini anlamak, hızlı kurtarma ve hizmetleriniz için yüksek erişilebilirlik sağlayan Linux günlük yönetimi açısından kritik bir beceridir. Hataya neden olan bağlama noktasını bulmak için temel journalctl komutlarına aşina olmak gerekir.
Linux günlük yönetimi ve günlükleme yığını
Kurtarmaya geçmeden önce ilgili bileşenleri anlamak önemlidir. Systemd (Linux'un init sistemi ve hizmet yöneticisi), Systemd-journald'ı (günlük verilerini toplayan ve depolayan sistem hizmeti) kullanır. Bu hizmet her günlüğü (log) (sistemde gerçekleşen olayların kaydı) Journal içinde (Systemd-journald tarafından saklanan ikili biçimdeki günlük verileri) toplar. Bunlar arasında sistem günlükleri (sistem genelindeki olayların ve durum değişikliklerinin kayıtları), önyükleme günlükleri (sistem başlatma sürecinin kayıtları) ve çekirdek günlükleri (işletim sisteminin çekirdeği tarafından üretilen mesajlar) bulunur.
Yapılandırmanıza bağlı olarak bunlar geçici günlükler (bellekte tutulan ve yeniden başlatmada kaybolan günlükler) veya kalıcı günlükler (sistem yeniden başlatmalarından sonra da korunan, genellikle diskte saklanan günlükler) olabilir. Journal sürekli büyür; bu nedenle günlük döndürme (disk alanından tasarruf etmek için eski günlük dosyalarını arşivleme ve yönetme süreci) systemd tarafından otomatik olarak yürütülür.
Ön koşullar
Başlamadan önce aşağıdaki koşulların karşılandığından emin olun:
- İşletim sistemi: Ubuntu 22.04/24.04 LTS, Debian 12/13, AlmaLinux/Rocky 9/10 üzerinde test edilmiştir
- Erişim: Acil durum kabuğuna ulaşmak için doğrudan konsol erişimi (IPMI, VNC veya fiziksel konsol)
- Gerekli bilgi: Linux komut satırının rahat kullanımı ve temel metin düzenleme
Varsayılan Ubuntu ve Debian kurulumlarında root hesabı kilitlidir. sudo passwd root komutuyla önceden bir root parolası belirleyin; aksi hâlde acil durum moduna giriş yapamazsınız.
VPS örnekleri çoğunlukla root kullanıcısı varsayılan olarak etkin biçimde sunulur.
Adım 1: Önyükleme hatasını belirleme
/etc/fstab dosyasındaki bir sözdizimi hatası, yazım hatası veya eksik aygıt acil durum modunu tetikler, önyükleme sürecini durdurur ve aşağıdakine benzer bir mesaj gösterir:
Welcome to emergency mode! After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to boot into default mode. Give root password for maintenance (or press Control-D to continue):
İstem satırına ulaşmak için root parolanızı girin. Bu aşamada bazı dosya sistemleri bağlanmamış veya yalnızca okunur olarak bağlanmış olabilir.
Adım 2: Linux'un ürettiği sistem günlüklerini görüntülemek ve analiz etmek için journalctl kullanma
Hatanın nedenini belirlemek için geçerli önyüklemenin günlüklerini kontrol etmemiz gerekir.
Aşağıdaki komutu çalıştırın:
sudo journalctl -xb
Burada Journalctl'ı (systemd journal'ını sorgulamak için kullanılan bir komut satırı aracı) kullanıyoruz. Bu, en temel journalctl komutlarından biridir. Araca geçerli önyüklemenin günlüklerini (-b) göstermesini ve ek açıklayıcı metin (-x) eklemesini söyler.
Çıktı çok büyük olabilir. Hatayı bulmak için günlük filtrelemesi (günlük çıktısını belirli ölçütlere göre daraltma işlemi) yapmamız gerekir.
Sayfalayıcı (less kullanır) içinde arama yapmak için /fstab veya /mount yazıp Enter'a basın.
Beklenen çıktıdan bir kesit:
-- Subject: A start job for unit mnt-data.mount has failed -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- A start job for unit mnt-data.mount has finished with a failure. -- -- The job identifier is 123 and the job result is failed.
Bu, /mnt/data bağlamasından sorumlu bir unit'in (systemd'de bir kaynağın nasıl yönetileceğini tanımlayan yapılandırma dosyası) başarısız olduğunu gösterir. Daha açık söylemek gerekirse, mount unit (systemd tarafından yönetilen bir sürece ilişkin bilgileri barındıran unit yapılandırma dosyası) başlatılamamıştır.
Bir sayfa aşağı inmek için boşluk tuşunu, günlük görüntüleyiciden çıkmak için q tuşunu kullanabilirsiniz.
Adım 3: Belirli hataları bulmak için systemd günlüklerini filtreleme
Tüm önyükleme günlüğünü kaydırmak çok yavaşsa, belirli filtreler kullanarak günlükleri journalctl ile analiz edebiliriz.
Yalnızca yüksek öncelikli hataları görmek için aşağıdaki komutu çalıştırın:
sudo journalctl -p err -b
Beklenen çıktı:
May 23 10:00:01 server systemd[1]: Failed to mount mnt-data.mount - /mnt/data. May 23 10:00:01 server systemd[1]: Dependency failed for Local File Systems.
Dependency failed for Local File Systems mesajı yalnızca önyükleme sırasında görünür; elle systemctl start çalıştırdığınızda görünmez.
Önceliğe (-p err) göre journalctl ile günlük filtrelemesi yaparak bilgilendirme mesajlarını eleriz.
Başarısız olan unit'in tam adını biliyorsak hizmet günlüklerini doğrudan kontrol edebiliriz. Şunu çalıştırın:
sudo journalctl -u mnt-data.mount
Günlükleri journalctl ile unit düzeyinde analiz ettiğinizde, yapılandırma sorununu tam olarak izole edersiniz. journalctl ile filtrelemenin bir başka yöntemi zaman aralığı belirtmektir; ancak önyükleme sorunlarında unit'e göre filtreleme en verimli yaklaşımdır.
Adım 4: /etc/fstab hatasını düzeltme
systemd journal'ı sorunun /mnt/data bağlama noktası olduğunu doğruladığına göre, yapılandırma dosyasını düzeltmemiz gerekir.
Önce dosyayı düzenlemeyi deneyin. Kaydederken Read-only file system hatası alırsanız, acil durum modu kök dosya sistemini sıklıkla yalnızca okunur bağladığı için kök dosya sistemini okuma-yazma olarak yeniden bağlamanız gerekir:
sudo mount -o remount,rw /
Ardından değişiklik yapmadan önce yapılandırma dosyasını yedekleyin:
sudo cp /etc/fstab /etc/fstab.bak
Sonra dosyayı açın (AlmaLinux, Rocky veya RHEL gibi RPM tabanlı sistemlerde nano varsayılan olarak kurulu olmayabilir; önce sudo dnf install -y nano ile kurun):
sudo nano /etc/fstab
/mnt/data satırını bulun (doğru UUID'yi blkid ile öğrenebilirsiniz):
UUID=1234abcd-56ef-78gh-90ij-klmnopqrstuv /mnt/data ext4 defualts 0 2
Yazım hatasına dikkat edin: defaults yerine defualts. Yazım hatasını düzeltin:
UUID=1234abcd-56ef-78gh-90ij-klmnopqrstuv /mnt/data ext4 defaults 0 2
Dosyayı kaydedip çıkın. Ardından systemd'nin /etc/fstab dosyasında yapılan değişikliklerden haberdar olması için systemd yöneticisi yapılandırmasını yeniden yükleyin:
sudo systemctl daemon-reload
/etc/fstab içindeki UUID'leri ve sözdizimini her zaman doğrulayın. Hatalı bir girdi, sistemin bir sonraki açılışta yeniden acil durum kabuğuna düşmesine neden olur.
Doğrulama
Yeniden başlatmadan önce /etc/fstab dosyanızın sözdizimini findmnt ile doğrulayın:
findmnt --verify
Hata bildirilmezse, bağlama noktasının çalıştığını doğrulamaya geçin:
Şunu çalıştırın:
sudo mount -a
Komut herhangi bir çıktı vermezse sözdizimi doğrudur ve bağlama başarılı olmuştur. Hâlâ bir hata varsa komut bir hata mesajı verir. Debian 13 ve AlmaLinux 10'da mesaj kesin nedeni belirtebilir (ör. Unknown parameter 'defualts'), ancak Ubuntu 24.04'te çıktı çoğunlukla geneldir (wrong fs type, bad option). Ubuntu'da ayrıntılar için sudo dmesg | tail çalıştırın.
Doğruladıktan sonra, önyüklemeye devam etmek için acil durum kabuğundan çıkın veya sistemi yeniden başlatın:
sudo systemctl reboot
Yeniden başlattıktan sonra, bağlamanın normal önyükleme sürecinde sorunsuz gerçekleştiğinden emin olmak için journalctl komutlarıyla hizmet günlüklerini yeniden kontrol edebilirsiniz:
sudo journalctl -u mnt-data.mount -b
Sorun giderme
- Acil durum kabuğuna erişilemiyor: root hesabı kilitliyse ve acil durum kabuğuna erişemiyorsanız, sunucuyu bir Live USB veya kurtarma ortamıyla başlatmanız, kök bölümü bağlamanız ve
/etc/fstabdosyasını doğrudan oradan düzenlemeniz gerekir. - UUID değişti: Bir bölümü biçimlendirdiyseniz veya bir diski değiştirdiyseniz UUID değişir. Yeni UUID'yi bulmak için
sudo blkidkullanın ve/etc/fstabdosyasını buna göre güncelleyin. - Gerekli olmayan diskler için önyükleme hatalarını önleme: Kök veya sistem dışındaki birimler (yedekleme veya veri diskleri gibi) için
/etc/fstabgirdisinenofailbağlama seçeneğini ekleyin (ör.ext4 defaults,nofail 0 2). Bu, aygıt bağlanamasa bile systemd'ye önyüklemeye devam etmesini söyler.
Geri alma
Sunucu başarıyla açıldıysa ancak değiştirilen /mnt/data satırı uygulamalarda beklenmeyen davranışlara yol açıyorsa, /etc/fstab içinde satırı yorum satırına alarak bağlamayı geri alabilirsiniz:
sudo sed -i 's|^UUID=1234abcd-56ef-78gh-90ij-klmnopqrstuv /mnt/data|#UUID=1234abcd-56ef-78gh-90ij-klmnopqrstuv /mnt/data|' /etc/fstab
Sonra önceki durumu geri yüklemek için birimin bağlantısını kesin:
sudo umount /mnt/data
Sonuç
Etkili Linux günlük yönetimi, büyük ölçüde systemd günlükleri arasında nasıl gezineceğinizi bilmeye dayanır. journalctl ile Linux'un ürettiği sistem günlüklerini görüntüleyerek bunları verimli biçimde analiz edebilir ve /etc/fstab yapılandırma hataları gibi kritik önyükleme arızalarından kurtulabilirsiniz. Bu araçlarda ustalaşmak, erişilebilirliği korumanızı ve altyapınız genelindeki karmaşık sorunları teşhis etmenizi sağlar.
Belge sürümü: 1.0
Son güncelleme: Mayıs 2026
Sahibi: Teknik Dokümantasyon Ekibi