我通过 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 放在内存中以获得更好的性能,即使空间有限。
答案2
如果您遇到此问题,即收到似乎表明磁盘已满但实际上并未已满的错误,请确保检查 inode 利用率。
您可以使用它df -i
来快速获取每个挂载点的已用/可用 inode 的报告。
如果您发现 inode 非常少或用尽,那么下一步就是确定哪个文件夹占用了最多的 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