如何在完全满的卷上释放空间?

San*_*ndy 4 disk-usage apt

我正在使用 Linux。在一个不受控制的事件中,我的 4GB 系统磁盘已满。

当我尝试通过 卸载某个程序时sudo apt-get purge program-name,它给了我这个错误:

/usr/bin/mandb: can't write to /var/cache/man/25843: No space left on device
Run Code Online (Sandbox Code Playgroud)

这种情况下有没有可以删除的系统文件?

Gra*_*eme 7

您将需要删除一些文件,以便再次拥有最少的可用空间。删除哪些将取决于首先填满磁盘的偶数。肯定已经在某处创建了一些不必要的文件,最好的办法是找到它们并删除它们!

当程序失控时,有时会发生的情况是,它会产生带有多个重复消息的过大日志文件。您可以/var/log为此检查目录。一个好的使用命令是:

 du -ah /var/log | sort -h
Run Code Online (Sandbox Code Playgroud)

这将对底部的最大文件进行排序,以便您可以轻松查看是否有某些事情失控。该/tmp目录(如果它是根文件系统的一部分)是另一个查找问题文件的好地方。

另一个要看的地方是/var/cache/apt/archives/,这包含.debapt. 此处的文件可以使用apt-get clean.

如果您找不到要删除的任何其他文件(尽管可能另一个用户的主目录是尝试 a 的地方du),删除旧的日志文件可能是最安全的方法。中的许多文件/var/log后面都会有数字,数字越大,日志越旧。许多还会有.gz扩展名,这只是因为它们已被压缩以节省空间。

其他值得检查的地方是/opt(一些非发行版程序使用这个),/root(root 用户的主目录)。

aptitude可用于清除已删除包的所有配置文件。尽管通常这最多只能释放几 MB(如果磁盘太满而apt-get无法工作,则无法工作)。命令行是:

sudo aptitude purge '~c'
Run Code Online (Sandbox Code Playgroud)

通常我不建议卸载软件,除非你真的必须卸载,但磁盘已满的原因可能是有人安装了太多软件。


Hau*_*ing 2

不是可以删除一些数据吗?或者日志文件?

您可以创建一个 ramdisk ( mount -t tmpfs tmpfs /mnt/tmpfs),将大约 100 MiB 文件移到那里,希望系统不会崩溃,卸载一些软件,然后将文件从 ramdisk 移回。