我想升级我的 Ubuntu 18.04,但由于 /boot 中没有足够的可用空间,因此无法升级。
/boot的内容为:
System.map-4.15.0-173-通用 System.map-4.15.0-204-通用 System.map-4.15.0-29-通用 abi-4.15.0-29-通用 配置-4.15.0-173-通用 配置-4.15.0-204-通用 配置-4.15.0-29-通用 蛴螬 initrd.img-4.15.0-204-通用 失物招领 retpoline-4.15.0-29-通用 vmlinuz-4.15.0-173-通用 vmlinuz-4.15.0-204-通用 vmlinuz-4.15.0-29-通用
下列的如何在 /boot 中释放更多空间?我对除已加载版本之外的所有版本执行了“sudo apt purge -y linux-{image,headers}-VERSION”。
这确实删除了所有这些版本,命令dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}'
显示:
Linux 标头-4.15.0-204 Linux 标头-4.15.0-204-通用 Linux-映像-4.15.0-204-通用
但是,它并没有从 /boot 中删除任何文件 - 所以这个问题的可接受答案对我来说根本不起作用。还有其他选择吗?
更新:的输出apt-mark showmanual | grep linux-'[g|h|m|i]'
是
linux 通用 linux-headers-通用
是否可以安全地简化sudo rm ...
属于不需要的版本的文件?
更新:我开始尝试sudo apt autoremove --purge
,但没有任何效果。
更新:输出dpkg -l | grep linux-'[g|h|i|m|e]' | cut -d ' ' -f 3
是
binutils-x86-64-linux-gnu linux 通用 Linux 标头-4.15.0-204 Linux 标头-4.15.0-204-通用 linux-headers-通用 Linux-映像-4.15.0-204-通用 linux-image-通用 Linux-映像-未签名-4.15.0-173-通用 Linux-映像-未签名-4.15.0-29-通用 Linux 模块-4.15.0-173-通用 Linux 模块-4.15.0-204-通用 Linux 模块-4.15.0-29-通用 Linux 模块额外-4.15.0-204-通用
更新:输出为for f in /boot/* ; do dpkg -S $f ; done | grep -v 204-generic | cut -f 1 -d ":"
:
Linux 模块-4.15.0-173-通用 Linux 模块-4.15.0-29-通用 Linux 模块-4.15.0-29-通用 Linux 模块-4.15.0-173-通用 Linux 模块-4.15.0-29-通用 Linux 模块-4.15.0-29-通用 Linux-映像-未签名-4.15.0-173-通用 Linux-映像-未签名-4.15.0-29-通用
使用以下命令删除所有文件for f in /boot/* ; do dpkg -S $f ; done | grep -v 204-generic | cut -f 1 -d ":" | xargs -n 1 sudo apt purge -y
:
这确实删除了 /boot 中所有不必要的文件 - 感谢@user535733 在评论中分享相关想法!
答案1
根据用户@user535733 的建议解决方案:删除所有仍然与 /boot 中的文件相关的软件包,但包含当前版本字符串的软件包除外:
cur=`uname -r` `对于 /boot/* 中的 f ; 执行 dpkg -S $f ; 完成 | grep -v $cur | cut -f 1 -d ":" | xargs -n 1 sudo apt purge -y`