如何安全地从 /boot 分区中删除旧内核版本?

如何安全地从 /boot 分区中删除旧内核版本?

我不太喜欢Linux我有以下问题,与我的/启动分区似乎已满,并且似乎导致安装程序时出现问题。

我尝试详细解释我的疑虑,因为我对系统工程不太感兴趣(我是一名软件开发人员)。

1) 执行lsblk语句列出有关所有可用或指定的块设备的信息。

从经验上来说,我认为它应该显示所有分区/已安装的磁盘或者类似这样。块设备

因此,如果我在我的Ubuntu系统我获得:

root@MyServer-VPS:~# lsblk
NAME           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0              2:0    1    4K  0 disk
sda              8:0    0   20G  0 disk
├─sda1           8:1    0  476M  0 part /boot
├─sda2           8:2    0    1K  0 part
├─sda3           8:3    0   10G  0 part
│ └─vg-lv_root 252:0    0 18.6G  0 lvm  /
└─sda5           8:5    0  9.5G  0 part
  ├─vg-lv_root 252:0    0 18.6G  0 lvm  /
  └─vg-lv_swap 252:1    0  952M  0 lvm  [SWAP]
sr0             11:0    1 1024M  0 rom

那么磁盘部分(它应该是父磁盘的一个分区),lvm只读存储器

特定分区是引导, 这个:

sda1           8:1    0  476M  0 part /boot

这是一个星展银行磁盘分区。

据我所知,它应该包含Linux 内核下载版本。 是吗?

好的,挂载点是/启动所以我认为这是/启动目录进入我的系统(是吗?),这是内容:

root@MyServer-VPS:/boot# ls
abi-4.4.0-21-generic  config-4.4.0-21-generic  grub                         System.map-4.4.0-21-generic  vmlinuz-4.4.0-21-generic
abi-4.4.0-31-generic  config-4.4.0-31-generic  initrd.img-4.4.0-21-generic  System.map-4.4.0-31-generic  vmlinuz-4.4.0-31-generic
abi-4.4.0-34-generic  config-4.4.0-34-generic  initrd.img-4.4.0-31-generic  System.map-4.4.0-34-generic  vmlinuz-4.4.0-34-generic
abi-4.4.0-38-generic  config-4.4.0-38-generic  initrd.img-4.4.0-34-generic  System.map-4.4.0-38-generic  vmlinuz-4.4.0-38-generic
abi-4.4.0-42-generic  config-4.4.0-42-generic  initrd.img-4.4.0-38-generic  System.map-4.4.0-42-generic  vmlinuz-4.4.0-42-generic
abi-4.4.0-45-generic  config-4.4.0-45-generic  initrd.img-4.4.0-42-generic  System.map-4.4.0-45-generic  vmlinuz-4.4.0-45-generic
abi-4.4.0-47-generic  config-4.4.0-47-generic  initrd.img-4.4.0-45-generic  System.map-4.4.0-47-generic  vmlinuz-4.4.0-47-generic
abi-4.4.0-51-generic  config-4.4.0-51-generic  initrd.img-4.4.0-47-generic  System.map-4.4.0-51-generic  vmlinuz-4.4.0-51-generic
abi-4.4.0-53-generic  config-4.4.0-53-generic  initrd.img-4.4.0-51-generic  System.map-4.4.0-53-generic  vmlinuz-4.4.0-53-generic
abi-4.4.0-57-generic  config-4.4.0-57-generic  initrd.img-4.4.0-53-generic  System.map-4.4.0-57-generic  vmlinuz-4.4.0-57-generic
abi-4.4.0-59-generic  config-4.4.0-59-generic  lost+found                   System.map-4.4.0-59-generic  vmlinuz-4.4.0-59-generic

那么这些内容到底代表什么呢?这个系统上是否下载了不同的Linux内核版本?

有什么区别阿比配置-initrd.img-系统地图-vmlinuz-4文件?

如何检测使用的内核版本?

2)执行DF-H语句我获得这个输出:

root@MyServer-VPS:~# df -h
Filesystem              Size  Used Avail Use% Mounted on
udev                    477M     0  477M   0% /dev
tmpfs                   100M   16M   84M  16% /run
/dev/mapper/vg-lv_root   19G   12G  6.3G  64% /
tmpfs                   497M     0  497M   0% /dev/shm
tmpfs                   5.0M     0  5.0M   0% /run/lock
tmpfs                   497M     0  497M   0% /sys/fs/cgroup
/dev/sda1               461M  458M     0 100% /boot
tmpfs                   100M     0  100M   0% /run/user/0

我特别指出的是:

/dev/sda1               461M  458M     0 100% /boot

所以这意味着我的/启动分区是否已满?

我的问题是:我可以安全地删除所有旧内核版本(未使用的版本)以释放空间吗?/启动

我该怎么做?

答案1

您可以使用以下命令:

uname -a

查看你当前正在使用哪个内核。然后你可以使用以下命令:

dpkg -l | grep linux-image

查看可以安全删除哪些旧内核。

因为删除旧内核可能仍然需要 /boot 中有一些可用空间(是的,这是一个 catch22 情况),您可以使用“>”符号首先将您确定不会使用它们的旧内核清零来解决这个问题。

例如 :

sudo bash
> /boot/vmlinuz-4.4.0-59-generic
> /boot/vmlinuz-4.4.0-57-generic
exit

释放 /boot 中的空间后,使用 apt-get 或 dpkg 命令删除旧内核变得更加容易。

我过去曾成功使用过这种方法,因为如果您想使用“apt-get autoremove --purge”命令,使用 rm 命令手动删除 /boot/ 中的内核可能会导致 apt-get/dpkg 出现问题。

相关内容