![即使有,設備上也沒有剩餘空間](https://rvso.com/image/1000411/%E5%8D%B3%E4%BD%BF%E6%9C%89%EF%BC%8C%E8%A8%AD%E5%82%99%E4%B8%8A%E4%B9%9F%E6%B2%92%E6%9C%89%E5%89%A9%E9%A4%98%E7%A9%BA%E9%96%93.png)
我透過 SSH 存取一台螢幕損壞的筆記型電腦。該sudo apt-get autoremove
命令給我以下錯誤
cp: error writing ‘/tmp/mkinitramfs_zN6ZvT//lib/x86_64-linux-gnu/libpthread.so.0’: No space left on device
cp: failed to extend ‘/tmp/mkinitramfs_zN6ZvT//lib/x86_64-linux-gnu/libpthread.so.0’: No space left on device
cp: error writing ‘/tmp/mkinitramfs_zN6ZvT//sbin/modprobe’: No space left on device
cp: failed to extend ‘/tmp/mkinitramfs_zN6ZvT//sbin/modprobe’: No space left on device
cp: error writing ‘/tmp/mkinitramfs_zN6ZvT//sbin/rmmod’: No space left on device
cp: failed to extend ‘/tmp/mkinitramfs_zN6ZvT//sbin/rmmod’: No space left on device
我從其他各種命令中收到類似的錯誤,但gparted
告訴我筆記型電腦上的(單一)分割區上剩餘超過 20GB 的空間。這是輸出df
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 502644 484 502160 1% /dev
tmpfs 505433 503 504930 1% /run
/dev/sda1 7331840 214087 7117753 3% /
none 505433 2 505431 1% /sys/fs/cgroup
none 505433 3 505430 1% /run/lock
none 505433 4 505429 1% /run/shm
none 505433 16 505417 1% /run/user
overflow 505433 401 505032 1% /tmp
和:
$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
udev 2010576 12 2010564 1% /dev
tmpfs 404348 1284 403064 1% /run
/dev/sda1 115247656 83994028 25809372 77% /
none 4 0 4 0% /sys/fs/cgroup
none 5120 0 5120 0% /run/lock
none 2021732 204 2021528 1% /run/shm
none 102400 16 102384 1% /run/user
overflow 1024 1024 0 100% /tmp
我運行後開始出現錯誤sudo apt-get upgrade
。
答案1
在過去的某個時刻,您的根檔案系統已滿,並且創建了一個小的臨時 /tmp 以允許引導成功。這個小 /tmp 從未被刪除,所以現在,即使 / 上有空間,您仍然正在填充小 /tmp 並看到您的問題。只需卸載它:
sudo umount /tmp
當然,請盡量確保您的 / 盡可能乾淨。
通常,/tmp 只是根(/) 檔案系統的一部分,不需要單獨掛載,除非有特殊情況,例如用完根檔案空間(當某些守護程式建立您看到的檔案空間時),或者您可能有 /在非常慢的媒體(如 USB 隨身碟)上,並且希望 /tmp 位於 RAM 中以提高效能,即使空間有限。
答案2
如果遇到此問題,您收到的錯誤似乎表示磁碟已滿,但實際上磁碟並未滿,請務必檢查 inode 利用率。
您可以使用df -i
來取得每個掛載點已使用/可用 inode 的快速報告。
如果您發現 inode 運行速度非常低或耗盡,那麼下一步就是確定哪個資料夾佔用了大多數 inode。由於每個檔案和目錄都使用索引節點,因此您可能會擁有一個包含數十萬個小檔案或空檔案的資料夾,這些檔案會耗盡所有索引節點。常見的嫌疑犯包括:暫存目錄、網站快取目錄、包快取目錄等。
使用此命令取得使用最多 inode 的子目錄的有序列表:
sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
在根資料夾中執行此命令,然後向下鑽取,直到找到罪魁禍首。
答案3
我相信你有很多未使用的文件刪除它們:
sudo apt autoremove
df
然後使用命令重新檢查您的空間
答案4
要查看每個資料夾有多少個 inode:
du * -s --inodes