设备上没有剩余空间,即使有

Rez*_*eza 22 apt disk disk-usage

我通过 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
Run Code Online (Sandbox Code Playgroud)

我从各种其他命令中得到类似的错误,但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
Run Code Online (Sandbox Code Playgroud)

和:

$ 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
Run Code Online (Sandbox Code Playgroud)

我跑后开始出错sudo apt-get upgrade

小智 13

如果您遇到此问题,并在其中收到似乎表明磁盘已满但未满的错误,请确保还检查 inode 利用率。

您可以使用df -i来快速报告每个挂载点的已用/可用 inode。

如果您发现运行的 inode 非常少或用完,那么下一步是确定哪个文件夹占用了最多的 inode。由于每个文件和目录都使用一个 inode,因此您可能拥有一个文件夹,其中包含数十万个正在耗尽所有 inode 的小文件或空文件。通常的嫌疑人包括:临时目录、网站缓存目录、包缓存目录等。

使用此命令获取使用最多 inode 的子目录的有序列表:

sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
Run Code Online (Sandbox Code Playgroud)

在您的根文件夹中运行它,然后向下钻取直到找到罪魁祸首。


ubf*_*an1 10

在过去的某个时刻,您的根文件系统已满,并创建了一个小的临时 /tmp 以允许引导成功。这个小 /tmp 从未被删除,所以现在,即使您在 / 上有空间,您仍然在填满小 /tmp 并看到您的问题。只需卸载它:

sudo umount /tmp
Run Code Online (Sandbox Code Playgroud)

当然,尽量确保您的 / 尽可能干净。


通常,/tmp 只是根 (/) 文件系统的一部分,不需要单独挂载,除非有特殊情况,例如用完根文件空间(当某些守护程序创建您看到的文件空间时),或者您可能有 /在非常慢的媒体(如 U 盘)上,即使空间有限,也希望在 ram 中使用 /tmp 以提高性能。

  • 它给了我`umount:/tmp:未安装`。我该怎么办 ? (2认同)

Geo*_*sen 9

我相信你有很多未使用的文件删除它们:

sudo apt autoremove
Run Code Online (Sandbox Code Playgroud)

然后用df命令重新检查你的空间