• 如何避免升级 Linux 实例内核后无法启动


    如何避免升级 Linux 实例内核后无法启动_系统配置_操作运维 Linux_常见问题_云服务器 ECS-阿里云 https://help.aliyun.com/knowledge_detail/59360.html

    更新时间:2017-12-22 16:26:29

    注意:
    阿里云不建议随意自行升级内核,请参阅文档 ECS使用须知

    对于CentOS、OpenSUSE、SLES(SUSE Linux Enterprise Server) 和 Aliyun Linux,升级Linux实例后启动失败,可能是因为升级后的内核对应的initrd文件中没有virtio-blk和xen-blkfront驱动。而Debian和Ubuntu的virtio-blk和 xen-blkfront驱动是内核内置的,所以不存在这个可能性。

    什么是initrd文件

    initrd(initial ramdisk)是用于载入临时root文件系统到磁盘中的,运行于Linux实例启动阶段。起同样作用的还有initramfs文件,虽然initrd和initramfs是两种不同的操作概念,但这两个文件都活跃在启动实例时挂载root文件系统之前。

    可以直接升级内核的系统镜像

    阿里云优化了镜像名称 image_no 中时间戳从 20161115 开始的镜像公共系统镜像内核,这些镜像的initrd文件不会因为缺失virtio-blk和blkfront驱动的情况而导致启动失败。如下所示:

    • centos_6u8_64_40G_cloudinit_20161115.vhd
    • centos_6u8_32_40G_cloudinit_20161115.vhd
    • centos_5u11_64_40G_cloudinit_20161115.vhd
    • centos_5u11_32_40G_cloudinit_20161115.vhd
    • centos_6_8_64_40G_base_20170222.vhd
    • centos_6_8_32_40G_base_20170222.vhd
    • centos_7_2_64_40G_base_20170222.vhd
    • centos_5_11_64_40G_base_20170222.vhd
    • centos_5_11_32_40G_base_20170222.vhd
    • ……
    • ……
    • centos_6_08_64_20G_alibase_20170824.vhd
    • debian_8_09_64_20G_alibase_20170824.vhd

    如何优化内核并避免启动失败

      1. 编辑系统配置文件,若配置文件中缺失下列内容需要您手动加上:

        • CentOS 6和CentOS 7:执行 vi /etc/dracut.conf.d/virt-drivers.conf,添加 add_drivers+=" xen-blkfront virtio_blk "
        • CentOS 5:执行 vi /etc/dracut.conf.d/virt-drivers.conf,添加 add_drivers+=" xen-vbd virtio_blk virtio_console "
        • OpenSUSE/SUSE:
          1. 执行 vi /etc/sysconfig/kernel,添加 INITRD_MODULES=" virtio_blk virtio_pci xen-vbd"
          2. 执行 vi /etc/dracut.conf,添加 add_drivers+="virtio_blk virtio_pci xen-vbd"
      2. 更新内核:

        • CentOS:执行 yum install kernel
        • OpenSUSE/SUSE:执行 zypper install kernel-default
      3. 执行命令 lsinitrd /boot/initramfs-$(new-kernel-ver).img | grep -E 'virtio|xen' 检查并确认initrd / initramfs文件中已经包含了virtio-blk和xen-blkfront驱动。

      4. 必须确认virtio-blk和xen-blkfront驱动在initrd中才可以重启实例。

  • 相关阅读:
    2018.5.27 OraclePLSQL编程 if-else练习和循环结构练习
    桶排序
    从函数中返回引用
    函数返回值
    参数传递模式
    计数排序(不基于比较的排序算法)
    快排序
    堆用作优先队列
    堆排序
    合并算法
  • 原文地址:https://www.cnblogs.com/rsapaper/p/9649791.html
Copyright © 2020-2023  润新知