每次我安装一个新的 Linux 内核时,它都会留在 grub_config 中,每次都会使引导菜单变长。
我知道我可以手动搜索已安装的软件包并删除它们。
Ubuntu 是否提供了更简单的方法来清理它们或防止它们显示在引导列表中?
我的启动分区在 SSD 上,所以它没有空间容纳超过 8 个已安装的内核版本,最终某些内核更新将无法安装,因为我的启动分区充满了旧版本。关于如何删除旧版本(甚至如何使过程自动化)有很多问题,但我的问题很简单:为什么不apt-get autoremove自动检测和删除它们,有没有办法让它这样做?我的意思是,apt-get无论如何安装它们,所以它知道它们,那么为什么它选择保留所有旧版本?
我正在使用 Ubuntu 11.04,我想释放一些超载的根目录中的空间。我特别想更改用于安装应用程序的路径(它们直接安装到根驱动器)。
另一个考虑是我在 MySQL 数据库服务器上工作。服务器本身安装在根目录中,所以我不想冒丢失任何数据的风险。
请给我一些提示来帮助解决这个问题。
在网上浏览 Ubuntu 文章时,我遇到了这个命令:
sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
Run Code Online (Sandbox Code Playgroud)
作者说这是一个单行命令,它将删除所有以前版本的Linux,只保留当前版本!
我实际上正在寻找这样的命令,但我不太确定这有多安全。我想知道:
当我试图自己推论时,我变得非常困惑和沮丧。它包含了这是如何指挥工作众多/,|,\,*,和^字符,这是很难为谷歌。
我正在寻找此命令的分步翻译和解释,但我无法在互联网上找到!
今天,我注意到该目录/lib/modules仍然包含以前安装的内核中的所有目录,因此:
$ ls /lib/modules
5.4.0-29-generic 5.4.0-31-generic 5.4.0-33-generic 5.4.0-37-generic 5.4.0-39-generic
5.4.0-40-generic 5.4.0-42-generic 5.4.0-45-generic 5.4.0-47-generic 5.4.0-48-generic
... etc.
Run Code Online (Sandbox Code Playgroud)
在每个目录中,都留下以下文件(Intel/AMD系统):
$ ls -l
-rw-r--r-- 1 root 143K 2022-04-28 18:36 modules.alias
-rw-r--r-- 1 root 154K 2022-04-28 18:36 modules.alias.bin
-rw-r--r-- 1 root 8.0K 2022-04-08 10:44 modules.builtin
-rw-r--r-- 1 root 25K 2022-04-28 18:36 modules.builtin.alias.bin
-rw-r--r-- 1 root 11K 2022-04-28 18:36 modules.builtin.bin
-rw-r--r-- 1 root 63K 2022-04-08 10:44 modules.builtin.modinfo
-rw-r--r-- 1 root 85K 2022-04-28 18:36 modules.dep
-rw-r--r-- 1 root 123K 2022-04-28 18:36 modules.dep.bin
-rw-r--r-- 1 …Run Code Online (Sandbox Code Playgroud) 我在 root 上运行带有 ZFS 的 Ubuntu,而且我的bpool似乎几乎已满。
输出zpool list bpool:
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
bpool 1.88G 1.69G 191M - - 60% 90% 1.00x ONLINE -
Run Code Online (Sandbox Code Playgroud)
输出df -h /boot:
Filesystem Size Used Avail Use% Mounted on
bpool/BOOT/ubuntu_s2c09x 367M 303M 64M 83% /boot
Run Code Online (Sandbox Code Playgroud)
这会导致完成内核更新安装时出现问题,例如运行sudo apt upgrade:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to …Run Code Online (Sandbox Code Playgroud) 磁盘使用分析器在 /lib/modules 下显示 4.4.0-45 和 4.4.0-47,这是为什么?是否需要有两个内核,还是更新后保留旧内核?删除旧内核是否安全?
kernel ×5
apt ×2
cleanup ×2
command-line ×1
disk-usage ×1
grub2 ×1
security ×1
upgrade ×1
zfs ×1