因此,我花了一下午的时间尝试将 Ubuntu 18.04 升级到 20.04
使用以下命令
sudo update-manager -c -d
但在安装完成一半时反复弹出以下错误
Not enough free disk space
The upgrade has aborted. The upgrade needs a total of 4,520 M free space on disk '/'. Please free at least an additional 3,510 M of disk space on '/'. Empty your trash and remove temporary packages of former installations using 'sudo apt-get clean'.
我已经完成了释放空间的所有常规步骤,包括删除所有非必要的 Linux 内核等。搜索后,我在这里找到了一个类似的 3 年前的问题 无法更新 ubuntu - 可用磁盘空间不足
这是 $df 命令的结果
Filesystem 1K-blocks Used Available Use% Mounted on
udev 32870524 0 32870524 0% /dev
tmpfs 6588324 2076 6586248 1% /run
/dev/sda2 41153856 38030268 1010052 98% /
tmpfs 32941612 0 32941612 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 32941612 0 32941612 0% /sys/fs/cgroup
/dev/loop0 56320 56320 0 100% /snap/core18/1705
/dev/nvme1n1p1 491209736 71596 466116444 1% /mnt/xxxxxxxxxxxx
/dev/loop1 114432 114432 0 100% /snap/cmake/340
/dev/loop2 116992 116992 0 100% /snap/cmake/283
/dev/loop3 56320 56320 0 100% /snap/core18/1754
/dev/loop4 56064 56064 0 100% /snap/core18/1668
/dev/sda1 562084 7324 554760 2% /boot/efi
/dev/loop5 114432 114432 0 100% /snap/cmake/323
/dev/sda3 660427896 538425036 88432044 86% /home
tmpfs 6588320 52 6588268 1% /run/user/1000
有经验的 Linux 用户能建议我下一步该怎么做吗?谢谢
答案1
您可以尝试一些方法来释放分区中的一些(或大量)空间/
。让我们按潜在好处的顺序看看:
1. (重新)移动交换文件
您的安装似乎不包含交换分区,可能使用交换文件进行内存交换。它的默认位置是/swapfile
,占用许多千兆字节小型系统分区中的空间。您可以:
- 在升级期间暂时禁用交换并删除交换文件;
/home
将交换文件移动到另一个具有更多可用空间的分区(例如:);- 缩小
/home
分区并创建交换分区分割替换交换文件。
在互联网上搜索如何做到这一点。
2. 卸载未使用的大型软件包
您可以搜索手动安装但不再需要的软件包,甚至可以暂时卸载一些较大的软件包并在升级后重新安装。
以下命令列出基于 Debian 的系统中占用最多磁盘空间的 20 个已安装软件包:
$ dpkg-query -Wf '${Installed-Size}\t${db:Status-Abbrev} ${Package}\n' | grep 'ii ' | sort -n | tail -n 20
如果您不认识某个特定的包(该包可能是其他重要包的依赖包),您可以使用以下命令进行调查:
apt rdepends --installed <package-name>
请注意仅删除手动安装的包/依赖项!
3. 清理软件包
作为最后的资源,运行这两个命令:
$ sudo apt autoremove --purge
$ sudo apt autoclean
答案2
遇到了同样的问题并发现最有效的方法是运行sudo apt-get clean
,删除 /var/cache/apt/archives/ 的内容并将大文件夹移动到另一个分区,然后在其原始位置创建符号链接,就像这样对于移出 /var/lib/clamav/ 的文件作为示例:sudo ln -s "/home/username/Software/daily.cld" "/var/lib/clamav/daily.cld"
。
如果可以避免,我认为删除交换文件不是一个好主意。
这两种方法只是我发现升级 Debian 最有用的方法;当您没有足够的磁盘空间进行升级时,更多方法以及删除大量数据的替代方法列在如何清理 Linux 系统以释放磁盘空间?(不删除个人文件)