即使有,設備上也沒有剩餘空間

即使有,設備上也沒有剩餘空間

我透過 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

相關內容