Linux'ta “Cihazda Boş Alan Kalmadı” Hatasını Düzeltmenin En İyi 3 Yolu


Açık bir nedeni olmayan hatalar, başa çıkılması en rahatsız edici sorunlardır. Her ne kadar Linux hata mesajlarında genellikle spesifik olsa da, bu durum başarısız olduğu nadir durumlardan biridir.

"Cihazda yer kalmadı" hatası almanız, özellikle sürücünüz dolu olmaktan çok uzaksa, çok az şey ifade eder. Bu hata mesajı neden görünüyor? Diskte yeterli alan olmasına rağmen neden yeni dosyalar oluşturamıyorsunuz? Ve en önemlisi, bunu nasıl düzeltirsiniz?

Hadi öğrenelim.

Sabit Diskinizde Aslında Yeterli Alan Var mı?

Bir çözüm bulmak için acele etmeden önce, başlangıçta bir sorun olduğundan emin olun. Sonuçta, sisteminizde disk alanı gerçekten tükendiyse paniğe gerek yok. Daha fazla yer açmak için gereksiz verileri kaldırabilirsiniz.

Disk alanı hakkında bilgi almak için iki Linux sistem komutu vardır: du ve df. du komutu disk alanı kullanımını tahmin ederken df komutu diskte mevcut boş alanı analiz eder. Bunları sudo ile birlikte kullanmak, diskte gerçekte ne kadar alan bulunduğuna ilişkin doğru bir rapor sağlar.

  1. du komutuyla başlayalım. Çıktısı oldukça uzun ve zahmetli olabilir, bu nedenle -s ve -h işaretlerini kullanacağız. -s sonuçları özetler, -h ise sonuçların insanlar tarafından okunabilir olmasını sağlar. Bu nedenle sudo du -sh /komutunu girin; burada /temel dizine işaret eder.
    1. İzin reddedilen tüm iletiler için endişelenmeyin; bu, sistemin tüm alt dizinlerini bu şekilde tarar. Sürücünün boyutuna bağlı olarak, her şeyi yinelemeli olarak yaptığı için onu bir süre çalışır durumda bırakmanız gerekebilir.
      1. du taramayı bitirdiğinde, boyutlarının yanında basit bir dizin listesi çıkaracaktır. Örneğin bu sıradan bir dizine uygulanan du komutunun çıktısıdır.
      2. Şimdi ne kadar boş alan kaldığını görmek için df'yi kullanacağız. Yalnızca bağlı dosya sistemlerini ve bunların kullanım istatistiklerini gösterdiği için df komutunun kullanımı çok daha basittir. Çıktıyı insanlar tarafından okunabilir hale getirmek için bir kez daha -h işaretini kullanacağız.

        sudo df -h .

        Amaç du ve df komutlarının sonuçlarını hesaplamaktır. Herhangi bir tutarsızlık, herhangi bir dosya veya klasör tarafından kullanılmamasına rağmen serbestçe kullanılamayan disk alanına işaret eder.

        Linux Neden “Cihazda Boş Alan Kalmadı” Mesajını Gösteriyor?

        Diskinizde yeterli boş alan olmasına rağmen "Cihazda Boş Alan Kalmadı" hata mesajını görüyorsanız sorun donanımda değildir. Hatanın kesin nedenini bulmak biraz sorun giderme gerektirebilir.

        • Son Silinmiş Dosya: Bu hatayı görmenin en yaygın nedeni yakın zamanda silinmiş bir dosyadır. Çoğu zaman bir dosya, bir işlem onu ​​kullanmaya devam ederken silinir ve dosya zaten gitmiş olsa bile alan ayrılmış halde kalır.
        • Yeterli Düğüm Yok: Sık karşılaşılan başka bir neden de yeterli düğümler 'e sahip olmamaktır. Inode'lar, Unix dosya sisteminin indeks sayfalarıdır ve depolamadaki her dosyanın meta verilerini tutar. Ancak düğümler sınırsız değildir ve depolama alanının dolmasından önce düğümlerin tükenmesi "Cihazda boş alan kalmadı" hatasına neden olabilir.
        • Sabit Disk Arızası: Tabii ki, sabit diskin arızalanması ve görünürdeki boş alanın büyük kısmının bozuk sektörler tarafından kaplanmış olması ihtimali de vardır. Sistem bu konumlara dosya yazamadığı için hata veriyor.
        • Düzeltme 1: Silinen Dosyaları Kullanarak İşlemleri Yeniden Başlatma

          "Cihazda boş alan kalmadı" hatasının en olası nedeni, işlemin hâlâ silinmiş bir dosyayı kullanmasıdır. Neyse ki bu hatayı düzeltmek kolaydır. Ayrılmış depolama alanında yer açmak için süreci yeniden başlat yapmanız yeterlidir.

          1. Sorunlu işlemi bulmak için lsof ve grep komutlarını kullanmanız gerekir. lsof komutu size, çalışan işlemler tarafından kullanılan tüm açık dosyaların bir listesini verecektir ve grep, seçimi silinenleri içerecek şekilde daraltabilir. O halde sudo lsof / | girin grep silindiburada / temel dizindir ve | lsof çıktısını grep'e bağlamak için bir kanal.
            1. Artık etkilenen işlemi sudo systemctl restart service_namekomutuyla yeniden başlatabilirsiniz; burada hizmet adı, aramada ortaya çıkan hizmetin adıdır.
            2. .
              1. Bunun gibi birden fazla işlem varsa veya yalnızca belirli hizmetleri bulmakla uğraşmak istemiyorsanız, sudo systemctl daemon-reloadkomutuyla hepsini sıfırlayabilirsiniz. Bu, dosya sistemindeki değişiklikleri dikkate alarak tüm bağımlılıkları yeniden oluşturur.
              2. Bundan sonra, işlem tarafından tutulan depolama alanının yeniden kullanılabilir olması gerekir; bu, herhangi bir hatayla karşılaşmadan dosya yazmanıza olanak sağlar.

                Düzeltme 2: Inode'ları kontrol edin

                Her sürücüde çok sayıda inode bulunsa da, bunlar sınırlıdır. Sisteminiz inanılmaz sayıda dosyayla doluysa, sürücünün depolama kapasitesini tüketmeden bu sınıra ulaşmanız mümkündür. Bu nedenle çok sayıda küçük dosya yerine büyük dosyalara sahip olmak daha iyidir.

                df komutuyla -i işaretini kullanarak inode'ların kullanılabilirliğini kolayca kontrol edebilirsiniz. Bunun gibi:

                sudo df -i

                Bu, dosya sisteminde mevcut olan toplam inode sayısını ve şu anda kullanımda olan miktarı açıkça belirtecektir. Sisteminizde boş inode kalmamışsa "Cihazda boş alan kalmadı" hatasının kaynağı budur.

                Düğümler yalnızca sürücünün ilk biçimlendirilmesi üzerine oluşturulduğundan, daha fazla düğüm oluşturmanın bir yolu yoktur. Gelecekteki dosyalar için inode'larda yer açmak amacıyla tüm yapabileceğiniz gereksiz dosyaları silmektir.

                Düzeltme 3: Bozuk Blokları İşaretleme

                Veri bozulması her sabit sürücünün kaçınılmaz kaderidir. Yeni bir sürücüde bu sorunla karşılaşılmayacak olsa da eski sabit diskler yavaş yavaş "kötüleşmeye" başlayacaktır.

                Bunun anlamı, dosya sistemi bunları hala işlevsel olarak kabul etse bile, sabit sürücünün bazı bölümlerinin kullanılamaz hale gelmesidir. Bu hatalı bloklar, gerçekte onlara hiçbir dosya yazılamamasına rağmen, sürücüdeki görünen boş alanı yanlışlıkla şişirir. Bu, işletim sisteminin bu konumlara veri depolamaya çalışıp başarısız olması nedeniyle "Cihazda boş alan kalmadı" hatasına yol açar.

                Kötü sektörler sabit sürücünün fiziksel aşınması ve yıpranmasının bir sonucu olduğundan, bu sorunu düzeltmenin gerçek bir yolu yoktur. Yapabileceğiniz tek şey, dosya sistemi tarafından artık referans verilmemesi için bozuk kesimleri işaretlemektir..

                Çalışan bir sürücüde Dosya Sistemi Denetimi yapamayacağınız için bunu yapmak Canlı CD 'ten önyükleme yapmanızı gerektirir. Bunu yaptıktan sonra aşağıdaki komutu kullanmanız yeterlidir:

                sudo fsck -vcck /dev/sda

                Bu, /dev/sda dosyasını onarmak istediğiniz sürücünün yolu ile değiştirir. Bu, sürücüdeki tüm hatalı blokları otomatik olarak algılayacak ve bunları kullanılamaz olarak işaretleyecektir. Ancak bu size fazladan depolama kapasitesi sağlamayacaktır; bu nedenle, sürücüde yer açmak için bazı gereksiz dosyaları temizlemeye hazır olun.

                "Cihazda Boş Alan Kalmadı" Hatasını Düzeltmenin En İyi Yolu Nedir?

                Ubuntu'da veya başka herhangi bir Linux dağıtımında "Cihazda boş alan kalmadı" hatası görmenin olağan nedeni, silinmiş bir dosyanın çalışan bir işlem tarafından hala kullanılıyor olmasıdır. Bu, dosyanın kapladığı depolama alanını ayırarak diğer işlemlerin bu alana veri yazmasını engeller.

                Bu sorunu düzeltmek de en kolayıdır; tek yapmanız gereken söz konusu işlemi yeniden başlatmaktır. Ancak hatanın diğer nedenlerini çözmek o kadar da kolay değil.

                Sürücünüz ister hatalı veri bloklarıyla boğuşuyor, ister inode'ları tükenmiş olsun, bu sorunları düzeltmenin doğrudan bir yolu yoktur. Yazılacak yeni verilere yer açmak için mevcut dosyaları silmelisiniz.

                .

                İlgili Mesajlar:


                30.08.2022