Solusi 1:
Menghapus nama file tidak benar-benar menghapus file. Beberapa proses lain menahan file terbuka, menyebabkannya tidak dihapus; restart atau matikan proses itu untuk melepaskan file.
Gunakan
lsof +L1
untuk mengetahui proses mana yang menggunakan file yang dihapus (tidak ditautkan).
Solusi 2:
seperti yang disebutkan Ignacio, menghapus file tidak akan mengosongkan ruang hingga Anda menghapus proses yang memiliki pegangan terbuka terhadap file tersebut.
Namun demikian, Anda dapat merebut kembali ruang tanpa menghentikan prosesnya. Yang perlu Anda lakukan hanyalah menghapus deskriptor file.
Eksekusi pertama lsof | grep dihapus untuk mengidentifikasi proses yang menahan file
[[email protected] log]$ /usr/sbin/lsof |grep deleted
java 8859 hudson 1w REG 253,0 3662503356 7578206 /crucible/data/current/var/log/fisheye.out (deleted)
Kemudian jalankan:
cd /proc/PID/fd
lalu
[[email protected] fd]$ ls -l |grep deleted
total 0
l-wx------ 1 hudson devel 64 Feb 7 11:48 1 -> /crucible/data/current/var/log/fisheye.out (deleted)
"1" akan menjadi deskriptor file. Sekarang ketik "> FD" untuk merebut kembali ruang itu
> 1
Anda mungkin perlu mengulangi operasi jika ada proses lain yang menahan file tersebut.
Solusi 3:
Satu kemungkinan adalah file yang Anda hapus memiliki lebih banyak referensi di sistem file. Jika Anda telah membuat hardlink, beberapa nama file akan mengarah ke data yang sama, dan data (konten sebenarnya) tidak akan ditandai sebagai bebas/dapat digunakan sampai semua referensi dihapus. Sebelum Anda menghapus file, stat file tersebut (Entri bernama Tautan) atau lakukan ls -l pada file tersebut (harus di kolom kedua).
Jika ternyata file tersebut direferensikan di tempat lain, saya kira Anda harus ls -i file untuk menemukan nomor inode, dan kemudian melakukan pencarian dengan -inum
Solusi 4:
Jika partisi telah dikonfigurasi untuk mencadangkan bagian tertentu dari ruang disk hanya untuk penggunaan root, df
tidak akan menyertakan ruang ini jika tersedia.
[[email protected]]# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/optvol 625G 607G 0 100% /opt
...
Bahkan setelah ruang diambil kembali dengan menghapus file/direktori, pengguna non-root tidak akan dapat menulis ke partisi tertentu.
Anda dapat dengan mudah memeriksa apakah itu kasus Anda dengan mencoba membuat file di perangkat sebagai pengguna root dan non-root.
Selain itu, Anda dapat memeriksa konfigurasi sistem file dengan menjalankan
tune2fs -l <device> | egrep "Block count|Reserved block count
dan menghitung sendiri % sebenarnya.
Untuk mengubah % disk yang dicadangkan untuk penggunaan hanya root, jalankan
tune2fs -m <percentage> <device>
Solusi 5:
File masih terkunci oleh proses membukanya. Untuk mengosongkan ruang, lakukan langkah-langkah berikut:
-
Jalankan
sudo lsof | grep deleted
dan lihat proses mana yang menyimpan file. Contoh hasil:$ sudo lsof | grep deleted COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME cron 1623 root 5u REG 0,21 0 395919638 /tmp/tmpfPagTZ4 (deleted)
-
Hentikan proses menggunakan
sudo kill -9 {PID}
. Dalam contoh di atas, PID-nya adalah 1623.$ sudo kill -9 1623
-
Jalankan
df
untuk memeriksa apakah ruang sudah kosong. Jika masih penuh, mungkin Anda perlu menunggu beberapa detik dan memeriksa kembali.