# "No space left on device" ama disk boş görünüyor: inode dolmuş olabilir

https://kervanhosting.com/bilgi-bankasi/makale/no-space-left-on-device-inode-doldu-df-i

Bir dosya oluşturmaya, paket kurmaya ya da uygulamanızın günlük yazmasına çalışıyorsunuz ve şu hatayı görüyorsunuz:

```
No space left on device
```

İlk refleks `df -h` yazmaktır. Disk yüzde 40 dolu görünüyor, yani hata mantıksız. Bu durumun klasik bir sebebi vardır: **inode tükenmesi**.

## Inode nedir?

Linux dosya sistemi her dosya ve klasör için "inode" denen bir kayıt tutar. Disk oluşturulurken inode sayısı sabitlenir. Boyutu ne olursa olsun, bir dosya bir inode harcar. Yani milyonlarca küçük dosya (oturum dosyaları, önbellek, posta kuyruğu, günlük parçaları) disk alanını doldurmadan inode'ları bitirebilir. Inode biterse alan olsa bile yeni dosya oluşturulamaz.

## Doğrulama

```
df -i
```

`IUse%` sütunu yüzde 100'e yakınsa sorun budur (`df -h` ise bayt kullanımını gösterir). Normal bir sunucuda bu oran birkaç yüzde civarındadır.

## Çok dosyayı nerede olduğunu bulun

Dizinlerdeki dosya sayısını sayarak suçluyu arayın (kök dizinden başlayın, ardından daraltın):

```
sudo find / -xdev -type f | cut -d/ -f2-3 | sort | uniq -c | sort -rn | head
```

Bu komut en çok dosya içeren klasörleri sıralar. Büyük disklerde uzun sürebilir. Daha hedefli bakmak için bir klasörün içinde:

```
sudo find /var/lib/php/sessions -type f | wc -l
```

## Sık görülen suçlular

- **PHP oturum dosyaları** (`/var/lib/php/sessions`, `/tmp`): Temizlik çalışmıyorsa binlerce `sess_` dosyası birikir.
- **Posta kuyruğu** (`/var/spool`, `/var/lib/postfix`): Gönderilemeyen mailler birikir.
- **Uygulama önbellekleri** (WordPress önbellek eklentileri, Laravel `storage/framework`).
- **Docker** (`/var/lib/docker`): Eski katmanlar ve kapsayıcılar: `docker system prune` (dikkatle).
- **Eski çekirdek paketleri:** `sudo apt autoremove --purge`.
- Kontrolsüz büyüyen günlük dosyası parçaları: [logrotate](https://kervanhosting.com/bilgi-bankasi/makale/linux-logrotate-ile-log-dosyalarini-yonetme).

## Temizlemek

Hangi klasörün gereksiz olduğundan emin olun. Örneğin 7 günden eski PHP oturum dosyalarını silmek:

```
sudo find /var/lib/php/sessions -type f -mtime +7 -delete
```

Bir klasörde milyonlarca dosya varsa `rm -rf klasor/*` "argument list too long" verir; bunun yerine `find klasor -type f -delete` kullanın. Silmeden önce `-delete` yerine `-print | head` ile neyi sileceğinizi görün.

## Kalıcı çözüm

Nedeni (oturum temizliği, kuyruk, önbellek) düzeltmezseniz sorun geri gelir. İnode sayısı dosya sistemi oluşturulurken belirlendiğinden sonradan artırılamaz; ihtiyacınız büyükse veri için ayrı bir diskte inode yoğunluğu yüksek bir dosya sistemi kurmak gerekir: [ek disk](https://kervanhosting.com/bilgi-bankasi/makale/ek-disk-ekleme-ve-kullanima-hazirlama-linux-ve-windows). Alan gerçekten bittiğinde ise [disk doldu](https://kervanhosting.com/bilgi-bankasi/makale/disk-doldu-sunucumda-nasil-yer-acarim) makalesine bakın.

## Sık sorulanlar

### Windows'ta da inode sorunu olur mu?

Windows NTFS'te inode kavramı yoktur; benzer sınır neredeyse hiç görülmez. Bu makale Linux içindir.

### Hata sadece belirli bir klasörde çıkıyor.

Bölüm ayrıysa (örneğin `/var` ayrı bir disk) o bölümün inode'u bitmiş olabilir. `df -i` tüm bölümleri gösterir.

### Disk de dolu değil inode da, yine hata var.

Dosya sistemi salt okunur hale gelmiş olabilir (disk hatası) ya da kota/silinmiş ama açık dosya vardır. `mount | grep ' / '` ile `ro` var mı bakın; ayrıca `sudo lsof +L1` silinmiş ama hâlâ açık dosyaları gösterir.

**İlgili makaleler**

- [Disk doldu, sunucumda nasıl yer açarım?](https://kervanhosting.com/bilgi-bankasi/makale/disk-doldu-sunucumda-nasil-yer-acarim)
- [Yüksek işlemci (CPU) veya bellek (RAM) kullanımı nasıl çözülür?](https://kervanhosting.com/bilgi-bankasi/makale/yuksek-islemci-cpu-veya-bellek-ram-kullanimi-nasil-cozulur)
- [Linux'ta logrotate ile günlük dosyalarının büyümesini önleme](https://kervanhosting.com/bilgi-bankasi/makale/linux-logrotate-ile-log-dosyalarini-yonetme)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
