(0275) 2974 127
Meskipun pesan error tersebut menunjukkan bahwa ruang penyimpanan telah habis, penyebabnya tidak selalu karena kapasitas hard disk atau SSD penuh. Partisi yang kehabisan inode, file sementara yang menumpuk, log sistem yang terlalu besar, atau file yang sudah dihapus tetapi masih digunakan oleh suatu proses juga dapat memicu masalah serupa.
Oleh karena itu, cara mengatasi No Space Left on Device di Linux perlu disesuaikan dengan penyebab yang sebenarnya. Menghapus file secara sembarangan tanpa memeriksa kondisi sistem justru dapat menyebabkan layanan terganggu atau data penting hilang.
Artikel ini membahas penyebab, cara memeriksa kondisi penyimpanan, langkah-langkah mengatasi error, serta tips pencegahan agar masalah yang sama tidak sering terjadi, terutama pada server Linux.
No Space Left on Device adalah pesan error yang muncul ketika Linux tidak dapat memenuhi permintaan penulisan data ke suatu lokasi penyimpanan. Pesan ini biasanya berkaitan dengan kode error ENOSPC yang dikembalikan oleh sistem operasi. Error tersebut dapat terjadi saat pengguna mengunduh atau mengunggah file ke server, menginstal paket menggunakan package manager, membuat file baru melalui terminal, menjalankan aplikasi yang membutuhkan file sementara, atau menyimpan log dari layanan yang sedang berjalan. Masalah ini juga dapat memengaruhi database, container, dan aplikasi berbasis web yang membutuhkan ruang penyimpanan untuk beroperasi.
Sebagai contoh, ketika pengguna menginstal aplikasi menggunakan APT, proses instalasi dapat gagal karena partisi yang digunakan untuk menyimpan paket atau file sementara tidak memiliki ruang yang cukup. Pesan error yang muncul dapat berupa No space left on device, write failed: No space left on device, cannot create temporary file: No space left on device, atau failed to extract archive: No space left on device.
Penting untuk dipahami bahwa error ini tidak selalu berarti kapasitas hard disk atau SSD telah habis. Linux menggunakan mekanisme penyimpanan yang melibatkan kapasitas disk dan inode, yaitu struktur data yang menyimpan informasi tentang file dan direktori.
Oleh karena itu, sistem tetap dapat menolak pembuatan file baru meskipun ruang disk masih tersedia. Sebagai contoh, sebuah partisi mungkin masih memiliki ruang kosong sebesar 10 GB, tetapi seluruh inode-nya sudah terpakai akibat terlalu banyak file kecil. Dalam kondisi tersebut, Linux tidak dapat membuat file baru sampai tersedia inode yang mencukupi.
1. Kapasitas Partisi Disk Penuh
Error dapat terjadi ketika kapasitas partisi sudah habis akibat pertumbuhan file aplikasi, database, cadangan data, atau konten website. Jika partisi seperti /, /var, /home, atau /tmp penuh, operasi yang bergantung pada partisi tersebut dapat gagal meskipun partisi lain masih memiliki ruang kosong.
2. Inode Habis
Inode menyimpan informasi tentang file dan direktori pada filesystem Linux. Terlalu banyak file kecil, seperti cache, session, email, dan file sementara, dapat menghabiskan inode meskipun kapasitas disk masih tersedia.
3. File Log Terlalu Besar
File log yang terus bertambah tanpa pengelolaan dapat menghabiskan ruang penyimpanan. Masalah ini biasanya terjadi pada direktori /var/log atau penyimpanan jurnal systemd, terutama pada server dengan aktivitas aplikasi yang tinggi.
4. Cache dan File Sementara Menumpuk
Cache paket, file unduhan, dan file sementara dapat memenuhi penyimpanan jika tidak dibersihkan secara berkala. Contohnya, cache paket APT tersimpan di /var/cache/apt/archives, sedangkan file sementara aplikasi umumnya berada di /tmp.
5. File Sudah Dihapus, tetapi Masih Digunakan Proses
File yang dihapus secara manual masih dapat menggunakan ruang disk jika proses tertentu tetap membukanya. Kondisi ini sering terjadi pada file log berukuran besar yang sudah dihapus, tetapi layanan terkait belum menutup file tersebut.
6. Pembatasan Ruang Penyimpanan atau Konfigurasi Filesystem
Error juga dapat disebabkan oleh kuota pengguna, batas kapasitas volume, atau pembatasan penyimpanan pada container. Oleh karena itu, pemeriksaan perlu disesuaikan dengan lingkungan Linux yang digunakan, baik pada server fisik, mesin virtual, maupun container.
Sebelum menghapus file atau mengubah konfigurasi sistem, periksa kondisi penyimpanan untuk mengetahui sumber masalah. Berikut beberapa perintah yang dapat digunakan untuk memeriksa kapasitas disk, inode, direktori, dan file yang masih digunakan oleh proses.
Jalankan perintah berikut melalui terminal: df -h
Perintah df -h menampilkan kapasitas, ruang terpakai, dan ruang yang tersedia pada setiap filesystem dalam satuan yang mudah dibaca.
Contohnya, jika partisi root (/) memiliki penggunaan 99%, sementara partisi /home masih memiliki banyak ruang kosong, kemungkinan masalah berada pada partisi root. Perhatikan kolom Size, Used, Avail, Use%, dan Mounted on untuk mengetahui kondisi setiap partisi.
Jika ruang disk masih tersedia tetapi error tetap muncul, periksa penggunaan inode dengan perintah: df -i
Perintah ini menampilkan jumlah inode yang telah digunakan dan yang masih tersedia. Jika kolom IUse% mencapai 100%, sistem mungkin tidak dapat membuat file baru karena kehabisan inode, meskipun kapasitas disk belum penuh. Kondisi ini biasanya terjadi ketika terlalu banyak file kecil tersimpan dalam satu filesystem.
Untuk mengetahui direktori yang menggunakan ruang disk paling besar, jalankan:sudo du -xhd1 / 2>/dev/null | sort -h
Perintah tersebut menghitung penggunaan ruang pada direktori tingkat pertama di partisi root dan mengurutkan hasil berdasarkan ukuran. Jika direktori /var terlihat besar, periksa lebih lanjut menggunakan perintah:
sudo du -xhd1 /var 2>/dev/null | sort -h
Pemeriksaan dapat dilanjutkan pada direktori seperti /var/log dan /var/cache. Identifikasi isi serta fungsi direktori sebelum menghapus file agar tidak mengganggu sistem atau aplikasi yang berjalan.
Gunakan perintah berikut untuk menemukan file berukuran lebih dari 1 GB pada filesystem root:
sudo find / -xdev -type f -size +1G -print 2>/dev/null
Perintah tersebut membantu menemukan file besar, seperti arsip, cadangan database, atau log aplikasi. Periksa lokasi dan kegunaan setiap file sebelum menghapusnya. Jika masalah terjadi pada partisi lain, sesuaikan lokasi pencarian dengan mount point yang bermasalah.
Jika penggunaan disk tetap tinggi meskipun file besar tidak ditemukan, periksa kemungkinan adanya file yang sudah dihapus tetapi masih digunakan oleh suatu proses.
Jalankan perintah: sudo lsof +L1
Perintah ini menampilkan file terbuka yang jumlah hard link-nya kurang dari satu, termasuk file yang sudah dihapus tetapi masih digunakan proses. Perhatikan kolom COMMAND, PID, SIZE/OFF, dan NAME untuk mengidentifikasi file yang masih menggunakan ruang disk.
Jika ditemukan file berukuran besar dengan penanda (deleted), ruang penyimpanannya biasanya baru dapat dibebaskan setelah proses menutup file tersebut. Identifikasi layanan terkait terlebih dahulu sebelum melakukan reload atau restart agar tidak mengganggu aplikasi yang sedang berjalan.
Setelah penyebabnya diketahui, lakukan perbaikan secara bertahap. Pilih langkah yang sesuai dengan hasil pemeriksaan, bukan menjalankan seluruh perintah sekaligus.
Cache paket dapat dibersihkan untuk mengembalikan sebagian ruang disk yang digunakan oleh file unduhan instalasi.
Pada Ubuntu atau Debian, gunakan:
sudo apt clean
Perintah tersebut menghapus file paket yang tersimpan dalam cache APT. File paket yang dihapus dapat diunduh kembali ketika dibutuhkan.
Jika ingin menghapus paket dependensi yang tidak lagi diperlukan, gunakan:
sudo apt autoremove
Tinjau daftar paket yang akan dihapus sebelum mengonfirmasi prosesnya. Jangan melanjutkan jika daftar tersebut mencakup paket yang masih dibutuhkan oleh aplikasi atau layanan penting.
Pada distribusi berbasis Fedora atau RHEL yang menggunakan DNF, cache dapat dibersihkan dengan:
sudo dnf clean all
Perintah pembersihan cache berbeda menurut distribusi dan package manager yang digunakan. Gunakan perintah yang sesuai dengan sistem Linux Anda.
Direktori /tmp digunakan oleh banyak aplikasi untuk menyimpan file sementara. Jika direktori ini membesar, periksa isinya terlebih dahulu: sudo du -sh /tmp
Untuk melihat file dan direktori di dalamnya: sudo du -sh /var/log
Hapus hanya file sementara yang sudah dipastikan tidak dibutuhkan dan tidak sedang digunakan aplikasi. Hindari menjalankan perintah penghapusan massal seperti sudo rm -rf /tmp/* tanpa pemeriksaan karena dapat mengganggu proses yang masih berjalan.
Pada sistem yang menggunakan systemd, pengaturan pembersihan file sementara dapat dikelola melalui systemd-tmpfiles. Kebijakan pembersihan sebaiknya disesuaikan dengan kebutuhan aplikasi dan distribusi Linux yang digunakan.
Log sistem dapat diperiksa untuk mengetahui apakah ada file yang tumbuh secara tidak wajar.
Periksa ukuran direktori log: sudo du -sh /var/log
Kemudian, identifikasi file log berukuran besar: sudo find /var/log -type f -size +100M -print
Perintah tersebut menampilkan file di /var/log yang ukurannya lebih dari 100 MB. Ukuran tersebut hanya batas pencarian, bukan berarti semua file yang ditemukan harus dihapus.
Jika sistem menggunakan jurnal systemd, periksa penggunaan ruangnya:
sudo journalctl --disk-usage
Untuk menghapus entri jurnal yang lebih lama dari 14 hari, gunakan:
sudo journalctl --vacuum-time=14d
Alternatifnya, untuk membatasi total arsip jurnal hingga sekitar 500 MB:
sudo journalctl --vacuum-size=500M
Perintah --vacuum-time dan --vacuum-size terutama membersihkan file jurnal yang sudah diarsipkan, bukan seluruh entri pada jurnal aktif. Pilih batas yang sesuai dengan kebutuhan audit dan pemecahan masalah.
Untuk file log aplikasi biasa, gunakan mekanisme rotasi seperti logrotate atau prosedur resmi aplikasi. Jangan menghapus seluruh isi /var/log karena log dapat dibutuhkan untuk audit, investigasi insiden, dan diagnosis gangguan.
File cadangan, arsip unduhan, dan hasil ekspor database dapat menghabiskan ruang dalam jumlah besar, terutama pada server yang jarang melakukan pembersihan.
Cari file yang berukuran besar:
sudo find / -xdev -type f -size +1G -print 2>/dev/null
Setelah menemukan file yang diduga tidak diperlukan, periksa informasi file tersebut:
ls -lh /path/ke/file
Ganti /path/ke/file dengan lokasi file yang sebenarnya.
Pastikan file tersebut bukan satu-satunya salinan cadangan, data database aktif, atau file penting aplikasi. Jika file masih diperlukan, pertimbangkan memindahkannya ke penyimpanan lain yang memiliki kapasitas cukup dan telah diverifikasi.
Jangan menghapus file berdasarkan ukuran saja. File besar belum tentu merupakan file yang tidak diperlukan.
Jika masalah disebabkan oleh inode yang habis, menghapus satu atau dua file besar belum tentu membantu. Anda perlu menemukan direktori yang berisi sangat banyak file kecil.
Periksa penggunaan inode terlebih dahulu: df -i
Kemudian, hitung jumlah entri pada direktori yang dicurigai. Sebagai contoh, untuk direktori cache aplikasi:
sudo find /var/cache -xdev -type f | wc -l
Perintah tersebut menghitung jumlah file di bawah /var/cache pada filesystem yang sama. Ubah lokasi direktori sesuai hasil pemeriksaan.
Direktori yang dapat menghasilkan banyak file kecil antara lain:
Setelah menemukan sumbernya, bersihkan file melalui mekanisme resmi aplikasi jika tersedia. File session, misalnya, mungkin masih diperlukan oleh pengguna yang sedang aktif. Sementara itu, menghapus file cache secara manual dapat menyebabkan aplikasi membangun ulang cache dan meningkatkan beban server untuk sementara.
Jika ditemukan file berukuran besar dengan status (deleted) melalui lsof +L1, identifikasi proses yang menahannya.
Periksa detail proses menggunakan PID yang ditemukan:
ps -fp PID
Ganti PID dengan nomor proses sebenarnya.
Jika file tersebut merupakan log layanan, pendekatan yang lebih aman biasanya adalah melakukan rotasi log atau memuat ulang layanan sesuai prosedur yang didukung aplikasi. Dalam kondisi tertentu, layanan perlu dimulai ulang agar file lama ditutup.
Sebagai contoh, jika layanan yang terkait adalah Nginx, periksa statusnya terlebih dahulu:
sudo systemctl status nginx
Jika aman dan sesuai prosedur operasional, Anda dapat memuat ulang konfigurasi layanan:
sudo systemctl reload nginx
Perintah ini hanya contoh untuk Nginx dan tidak selalu membebaskan file yang ditahan proses. Hasilnya bergantung pada cara aplikasi membuka dan menutup file. Jangan memulai ulang database atau layanan produksi tanpa mempertimbangkan dampak terhadap pengguna.
Pada server multiuser atau hosting, penggunaan disk dapat dibatasi oleh kuota. Dalam kondisi tersebut, error dapat muncul meskipun filesystem masih memiliki ruang kosong.
Jika sistem menggunakan kuota filesystem, periksa kuota pengguna dengan:
quota -s
Untuk memeriksa kuota pengguna lain, administrator mungkin perlu menggunakan perintah yang sesuai dengan konfigurasi kuota pada server.
Jika kuota sudah mencapai batas, beberapa pilihan yang dapat dilakukan adalah:
Menghapus file yang tidak lagi dibutuhkan.
Memindahkan data ke lokasi penyimpanan lain.
Mengurangi penggunaan ruang oleh aplikasi.
Meminta administrator meningkatkan kuota jika memang diperlukan.
Pada container atau layanan cloud, periksa pula batas penyimpanan volume, kapasitas disk yang dialokasikan, dan konfigurasi penyimpanan yang diterapkan oleh platform.
Jika ruang penyimpanan fisik atau virtual memang tidak mencukupi, pembersihan file mungkin hanya menjadi solusi sementara.
Periksa struktur perangkat penyimpanan:
lsblk
Untuk sistem yang menggunakan Logical Volume Manager (LVM), periksa volume fisik, volume group, dan logical volume melalui perintah yang sesuai, misalnya:
sudo pvs
sudo vgs
sudo lvs
Hasil pemeriksaan membantu mengetahui apakah masih tersedia ruang yang dapat dialokasikan untuk memperbesar logical volume.
Jika kapasitas disk virtual baru saja ditingkatkan, partisi dan filesystem mungkin masih perlu diperluas. Proses tersebut berbeda bergantung pada filesystem, skema partisi, dan konfigurasi LVM. Pastikan tersedia cadangan data yang valid sebelum mengubah partisi atau memperbesar filesystem.
Jangan langsung menjalankan perintah resize2fs, xfs_growfs, atau perintah partisi lainnya tanpa memastikan jenis filesystem dan konfigurasi perangkat yang digunakan.
Setiap penyebab membutuhkan penanganan yang berbeda. Tabel berikut dapat digunakan sebagai panduan untuk memilih langkah awal yang tepat.
| Gejala atau penyebab | Perintah pemeriksaan | Tindakan yang disarankan |
|---|---|---|
| Partisi hampir penuh | df -h |
Identifikasi dan bersihkan file yang tidak diperlukan |
| Inode habis | df -i |
Temukan direktori yang memiliki terlalu banyak file kecil |
| Cache paket menumpuk | du -sh /var/cache |
Bersihkan cache menggunakan package manager |
| Log sistem terlalu besar | journalctl --disk-usage |
Bersihkan jurnal lama sesuai kebijakan retensi |
| File terhapus masih digunakan | sudo lsof +L1 |
Tutup file melalui prosedur layanan yang sesuai |
| Kuota pengguna tercapai | quota -s |
Kurangi penggunaan atau sesuaikan kuota |
| Kapasitas volume tidak mencukupi | lsblk, df -h |
Evaluasi penambahan kapasitas penyimpanan |
Perintah pemeriksaan pada tabel tersebut merupakan contoh untuk membantu diagnosis. Tidak semua perintah tersedia secara default pada setiap distribusi Linux.
Setelah melakukan perbaikan, periksa kembali kondisi penyimpanan dan pastikan sistem berjalan normal.
1. Periksa Ruang Disk
Jalankan perintah berikut: df -h
Pastikan partisi yang sebelumnya penuh sudah memiliki ruang kosong yang cukup untuk kebutuhan sistem dan aplikasi.
2. Periksa Penggunaan Inode
Jalankan perintah: df -i
Pastikan penggunaan inode tidak lagi mencapai 100% dan tersedia inode untuk membuat file baru.
3. Uji Operasi yang Sebelumnya Gagal
Ulangi aktivitas yang sebelumnya memunculkan error, seperti membuat file, mengunduh data, atau menginstal paket. Pastikan proses berhasil tanpa mengganggu layanan lain.
4. Periksa Status Layanan
Jika error terjadi pada server atau aplikasi, periksa status layanan terkait, misalnya: sudo systemctl status nginx
Sesuaikan nama layanan dengan aplikasi yang digunakan. Jika error masih muncul, periksa kembali partisi, direktori sementara, atau volume penyimpanan yang digunakan aplikasi.
Mengatasi error setelah penyimpanan penuh memang penting, tetapi pencegahan dapat membantu mengurangi risiko gangguan layanan dan kehilangan data.
df -h dan inode menggunakan df -i. Pada server produksi, pemantauan dapat diintegrasikan dengan sistem monitoring yang memberikan peringatan ketika kapasitas mendekati batas tertentu.docker system df
Perintah ini menampilkan penggunaan ruang oleh image, container, volume lokal, dan cache build.docker system prune -a --volumes tanpa memahami dampaknya. Data pada volume yang masih diperlukan dapat ikut terhapus jika tidak dikelola dengan benar.Error No Space Left on Device di Linux tidak selalu disebabkan oleh kapasitas disk yang penuh. Masalah ini juga dapat terjadi ketika inode habis, log membesar, file sementara menumpuk, file yang sudah dihapus masih digunakan proses, atau terdapat pembatasan kuota penyimpanan.
Langkah terbaik untuk mengatasinya adalah memeriksa penggunaan disk dengan df -h, memeriksa inode menggunakan df -i, lalu mengidentifikasi direktori atau file yang menjadi penyebab masalah. Setelah itu, lakukan pembersihan atau penyesuaian kapasitas sesuai kebutuhan tanpa menghapus data penting secara sembarangan.
Untuk menjaga server tetap stabil, terapkan pemantauan disk, rotasi log, pengelolaan cache, serta kebijakan pencadangan yang teratur. Dengan pengelolaan penyimpanan yang baik, risiko gangguan aplikasi akibat kehabisan ruang dapat dikurangi.
Untuk memahami lebih banyak tentang Linux, server, hosting, cloud computing, dan keamanan infrastruktur digital, simak berbagai artikel informatif lainnya di Blog Hosteko.
Bystander Privacy Problem menjadi tantangan yang semakin relevan seiring meningkatnya penggunaan media sosial, perangkat pintar,…
Website merupakan salah satu aset digital penting bagi bisnis, baik untuk memperkenalkan perusahaan, menawarkan produk,…
Email menjadi salah satu sarana komunikasi penting bagi bisnis, baik untuk melayani pelanggan, menerima permintaan…
Perkembangan teknologi digital memberikan banyak kemudahan dalam kehidupan sehari-hari, mulai dari berkomunikasi, bekerja, berbelanja, hingga…
Email hosting penuh merupakan salah satu masalah yang dapat mengganggu aktivitas komunikasi, terutama bagi bisnis…
Perkembangan teknologi mendorong bisnis untuk menggunakan infrastruktur IT yang mampu mendukung operasional secara efisien, aman,…