Selam arkadaşlar! Bugün Linux dünyasının en kritik ama bir o kadar da korkulan komutlarından birini konuşacağız: fsck (File System Check). Sisteminiz boot etmiyorsa, disk hatası alıyorsanız ya da “file system corrupted” mesajı görüyorsanız, fsck sizin en iyi dostunuz olacak!
fsck Nedir? Ne İşe Yarar?
fsck, “File System Consistency Check” kelimelerinin kısaltması. Türkçesiyle dosya sistemi tutarlılık kontrolü. Windows’taki chkdsk’nın Linux karşılığı diyebiliriz. Ama çok daha güçlü!
Dosya sistemleri bazen bozulabiliyor arkadaşlar. Elektrik kesilmesi, sistem çökmesi, hardware arızası, kötü sector’lar… Bunlar dosya sisteminde inconsistency’lere yol açabiliyor. İşte fsck bu tutarsızlıkları bulup düzeltiyor.
Ne Zaman fsck Kullanmalıyız?
Otomatik çalıştığı durumlar:
- Sistem anormal kapandıktan sonra boot’ta
- Mount count’u aştığında (genelde 30-40 boot)
- Filesystem’de dirty flag set edilmişse
- Son check’ten beri geçen süre fazlaysa
Manuel çalıştırmanız gereken durumlar:
- Disk I/O hataları alıyorsanız
- Dosyalar kayboluyorsa
- Permission’lar karışıksa
- Sistem garip davranıyorsa
fsck’nin Çalışma Mantığı
fsck dosya sistemini katman katman kontrol ediyor:
Superblock kontrolü: Dosya sisteminin meta verilerini barındıran superblock’u kontrol eder. Bozuksa backup’tan restore eder.
Inode kontrolü: Her dosya ve dizinin inode’unu kontrol eder. Orphan inode’ları bulur, link count’ları düzeltir.
Block kontrolü: Used/free block’ları kontrol eder. Duplicate block’ları tespit eder, bad block’ları işaretler.
Directory structure: Dizin yapısını kontrol eder. Loop’ları tespit eder, kayıp dizinleri lost+found’a taşır.
Reference counting: Her dosyanın kaç yerden referans edildiğini kontrol eder.
Kritik Kural: Unmounted Filesystem!
ÇOK ÖNEMLİ: fsck’yi ASLA mounted bir filesystem’de çalıştırmayın! Veri kaybına yol açar. Root partition için single user mode veya live USB kullanın.
Basit Kullanım Örnekleri
Filesystem kontrolü (dry run):
# Check without fixing (safe to run)
sudo fsck -n /dev/sda1
# Verbose output for details
sudo fsck -v /dev/sda1
# Check all filesystems in /etc/fstab
sudo fsck -A
Otomatik onarım:
# Auto repair (answer yes to all)
sudo fsck -y /dev/sda1
# Force check even if filesystem seems clean
sudo fsck -f /dev/sda1
# Check and fix bad blocks
sudo fsck -c /dev/sda1
fsck Tipleri
Linux’ta farklı dosya sistemleri için farklı fsck versiyonları var:
- fsck.ext4: ext4 filesystem için
- fsck.ext3: ext3 filesystem için
- fsck.xfs: XFS için (xfs_repair olarak da bilinir)
- fsck.btrfs: Btrfs için (btrfs check)
- fsck.vfat: FAT32 için
fsck otomatik olarak doğru versiyonu seçer!
Recovery Mode’da fsck
Sistem boot etmiyorsa:
- GRUB menüsünde recovery mode seçin
- Root shell’e düşün
- Filesystem’i read-only mount edin
- fsck çalıştırın
- Reboot edin
Live USB daha güvenli bir seçenek - sistemi dışarıdan boot edip, rahatça fsck çalıştırabilirsiniz.
fsck Exit Code’ları
fsck bittiğinde döndürdüğü kod önemli:
- 0: No errors
- 1: Errors corrected
- 2: System should be rebooted
- 4: Errors left uncorrected
- 8: Operational error
- 16: Usage or syntax error
- 32: User cancelled
- 128: Shared library error
Birden fazla problem varsa, kodlar toplanır (bitwise OR).
lost+found Dizini
fsck, sahipsiz dosyaları lost+found dizinine koyar. Her partition’ın root’unda bir lost+found dizini vardır. İçinde garip isimli dosyalar bulursanız, bunlar fsck’nin kurtardığı dosyalardır. İnceleyip, gerekli olanları geri alabilirsiniz.
Proaktif Önlemler
Tune2fs ile kontrol ayarları:
- Maximum mount count ayarlama
- Check interval belirleme
- Filesystem özelliklerini değiştirme
Smart monitoring:
- smartctl ile disk sağlığını takip
- Bad sector’ları önceden tespit
Düzenli backup:
- fsck her şeyi kurtaramayabilir
- Backup olmadan fsck’ye güvenmeyin!
Tehlikeli Durumlar
Force fsck dikkatli kullanın: -f flag’i clean görünen filesystem’i bile kontrol eder. Gereksiz yere kullanmayın.
fsck.ext2 on ext4: Yanlış fsck tipi kullanmak felaket olabilir! fsck otomatik seçsin.
Interrupted fsck: fsck yarıda kesilirse, filesystem daha kötü duruma gelebilir. UPS kullanın!
Sonuç
fsck, Linux sistem yöneticisinin cephanesindeki en güçlü silahlardan biri. Doğru kullanıldığında hayat kurtarır, yanlış kullanıldığında felaket olabilir.
Benim tavsiyem: fsck’yi tanıyın ama rutin kullanmayın. Modern filesystem’ler ve journaling sayesinde nadiren ihtiyaç duyarsınız. Ama o “nadir” an geldiğinde, fsck’nin nasıl çalıştığını bilmek kritik önem taşır.
Sistem yönetimi serüveninde fsck bilgisi olmazsa olmaz. Umarım hiç ihtiyacınız olmaz ama olursa, artık ne yapacağınızı biliyorsunuz!