如何避免升级 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
如何优化内核并避免启动失败
编辑系统配置文件,若配置文件中缺失下列内容需要您手动加上:
- 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:
- 执行
vi /etc/sysconfig/kernel,添加INITRD_MODULES=" virtio_blk virtio_pci xen-vbd"。 - 执行
vi /etc/dracut.conf,添加add_drivers+="virtio_blk virtio_pci xen-vbd"。
- 执行
- CentOS 6和CentOS 7:执行
更新内核:
- CentOS:执行
yum install kernel。 - OpenSUSE/SUSE:执行
zypper install kernel-default。
- CentOS:执行
执行命令
lsinitrd /boot/initramfs-$(new-kernel-ver).img | grep -E 'virtio|xen'检查并确认initrd / initramfs文件中已经包含了virtio-blk和xen-blkfront驱动。必须确认virtio-blk和xen-blkfront驱动在initrd中才可以重启实例。
如何避免升级 Linux 实例内核后无法启动的更多相关文章
- ubuntu升级内核后vmware-player启动失败
在虚拟机软件中,vmware player是对硬件支持很好的,通过它可以很方便的使用网银.单片机开发等等工作.但是最近ubuntu每次升级内核后,vmware都会启动失败,提示:Before you ...
- 002如何升级 Linux 的内核?
我们不应该升级 Linux 内核,而是始终使用 rpm 命令来安装新的内核,因为升级内核会让你的 Linux 机器处于一个无法启动的状态.
- Centos7升级内核后无法启动解决办法
前言 这个问题存在有一段时间了,之前做的centos7的ISO,在进行内核的升级以后就存在这个问题: 系统盘在板载sata口上是可以正常启动新内核并且能识别面板硬盘 系统盘插在面板口上新内核无法启动, ...
- 39、升级linux的内核
39.1.什么是linux系统内核: 操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件.一个计算机 系统是一个硬件和软件的共生体,它们互相依赖,不可分割.计算机的硬件,含有外 ...
- Linux VMware 克隆后无法启动eth0网卡
引: VMware 下LINUX出现:Device eth0 does not seem to be present, delaying initialization.解决办法 VMWare 克隆 复 ...
- 升级了Springboot版本后项目启动不了了
问题背景 项目上使用的springboot版本是2.1.1.RELEASE,现在因为要接入elasticsearch7.x版本,参考官方文档要求,需要将springboot版本升级到2.5.14. 本 ...
- Linux服务器重启后MySQL启动失败
Redirecting to /bin/systemctl start mysql.service Job for mysqld.service failed because the control ...
- Linux 实例常用内核网络参数介绍与常见问题处理
本文总结了常见的 Linux 内核参数及相关问题.修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,不建议随意调整内核参数. 了解参数的具体作用,且注意同类型或版本环境的内核参数可能有所 ...
- Linux实例常用内核网络参数介绍与常见问题处理---重要
文章转载自:https://help.aliyun.com/knowledge_detail/41334.html 本文主要介绍如下几点内容,您可以根据实际需要选择. 查看和修改Linux实例内核参数 ...
随机推荐
- win7系统扩展双屏幕时,怎样在两个屏幕下都显示任务栏
扩展屏幕下都显示任务栏!!! win7系统本身无法设置该功能(眼下我是不知道) 但能够下载第三方软件来解决该问题. 第一步:Dual Monitor Taskbar 下载软件 下载链接:http:// ...
- activiti designer下载地址
http://www.activiti.org/designer/update/ http://www.activiti.org/designer/archived/ 这个地址貌似不能用了 ...
- SSH——基于BaseDao和BaseAction实现用户登录
基于BaseDao和BaseAction实现用户登录 1. 首先修改login.jsp页面,点击登录按钮,提交表单 <a onclick="document.forms ...
- 檢查php文件中是否含有bom的php文件
原文链接: http://www.cnblogs.com/Athrun/archive/2010/05/27/1745464.html 另一篇文章:<关于bom.php>,http://h ...
- JavaScript-2.4 改进的Hello程序,使用div,---ShinePans
<html> <head> <meta http-equiv="content-type" content="text/html;chars ...
- unity, write/read txt file
在Assets下新建文件夹StreamingAssets.然后下面代码可在其中生成test.txt文件,并读写: using UnityEngine;using System.Collections; ...
- pthread_cleanup_push和pthread_cleanup_pop清除函数是否执行的说明
示例1: #include <stdio.h> #include <pthread.h> void* clean(void* arg) { printf("clean ...
- imx6用文件io操作gpio
具体请参考: http://blog.csdn.net/u014213012/article/details/53140781 这里要注意的是: 要让linux支持文件io方式操作gpio,首先驱动必 ...
- 问题解决 —— Http Status 500
在完成JavaWeb项目的过程中经常会出现这种错误 500:指的是服务器内部错误 通常遇到这种情况,我会去看控制台的信息,那里肯定会有提示,空指针(值没有传过去),或者java.sql.SQLExce ...
- oracle高水位
oracle高水位http://www.cnblogs.com/chuyuhuashi/p/3548260.htmlhttp://blog.csdn.net/wyzxg/article/details ...