出错提示“Not enough space on /boot”

问题描述

在操作系统迁移时,出错提示“Not enough space on /boot”。

问题原因

/boot分区的可用空间要求大于100 MiB,如果待迁移的操作系统的/boot目录没有100 MiB的空间来更新initramfs和新内核,可能会导致操作系统迁移失败。

解决方案

清理/boot目录下不再需要的内核版本,包括对应的initramfs、vmlinuz和config等,请保证清理后的内核能成功启动。

  1. 使用root用户远程连接ECS实例。具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 执行以下命令,查看已安装的内核版本。

    rpm -qa | grep kernel
  3. 执行以下命令,查看正在使用的内核版本。

    uname -r

    回显信息如下所示。

    [root@iZbp104w56ovfyfxy9o**** ~]# uname -r
    3.10.0-1160.el7.x86_64
  4. 清理不再需要的内核版本。

    例如,清理kernel-3.10.0-514.26.2.el7.x86_64

    • 如果内核通过rpm包的方式安装,执行以下命令,清理内核。

      yum remove kernel-3.10.0-514.26.2.el7.x86_64
    • 如果内核通过编译源码的方式安装,依次执行以下命令,清理内核。

      REMOVE_KERNEL=3.10.0-514.26.2.el7.x86_64
      grubby --remove-kernel=/boot/vmlinuz-$REMOVE_KERNEL
      rm -rf /boot/initramfs-$REMOVE_KERNEL.img /boot/initramfs-${REMOVE_KERNEL}kdump.img /boot/symvers-$REMOVE_KERNEL.gz /boot/System.map-$REMOVE_KERNEL /boot/vmlinuz-$REMOVE_KERNEL /boot/config-$REMOVE_KERNEL
      grubby --remove-kernel=/boot/vmlinuz-$REMOVE_KERNEL
  5. 设置剩余内核中最新版本的内核作为默认启动内核。

    1. 执行以下命令,查看目前已安装的所有内核。

      grubby --info=ALL
    2. 执行以下命令,查看目前默认启动内核。

      grubby --default-kernel

      回显信息如下所示。

      [root@iZbp104w56ovfyfxy9o**** ~]# grubby --default-kernel
      /boot/vmlinuz-3.10.0-1160.90.1.el7.x86_64
    3. 执行以下命令,设置剩余内核中最新版本的内核作为默认启动内核。

      例如,设置剩余内核中最新版本的内核为3.10.0-1160.76.1.el7.x86_64

      grubby --set-default /boot/vmlinuz-3.10.0-1160.76.1.el7.x86_64
  6. 问题排查解决后,运行SMC客户端再试。具体操作,请参见运行SMC客户端