Solution to Centos 6 or Centos 7 vm not booting on Citrix Xenserver after kernel update
With latest kernel update, Centos 6 and Centos 7 vm’s on Citrix Xenserver are found not booting when rebooted.
After installing the latest updates (including the latest kernel), neither boots. The virtual serial consoles provided by the VM services show nothing.
As an alternative the only solution is
to manually boot the affected VM into old kernel
Or to install Centos Plus kernel
Or simply do not update kernels on Centos 6 / Centos 7 vm’s
This issue is apparently something to do with the new code for the “meltdown” vulnerability and is currently failing on both el6 and el7 latest kernels.
This is being tracked in https://bugs.centos.org/view.php?id=14336
Solution :
If you have already updated the kernel then manually configure grub to boot into old kernel
OR
You can try installing Centos Plus kernel as follows:
- Edit the following file:
/etc/yum.repos.d/CentOS-Base.repo
2) Change the following section from
[base]
name=CentOS-$releasever – Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever – Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
To:
[base]
name=CentOS-$releasever – Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude = kernel kernel-devel kernel-PAE- *
#released updates
[updates]
name=CentOS-$releasever – Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude = kernel kernel-devel kernel-PAE- *
Then to enable Centos Plus apply the following section to this file from:
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
To:
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
includepkgs = kernel *
Once done, you can now install Centos-plus kernel as follows:
yum install kernel-plus
The VPS now when booted into new kernel, will come up in Centos 6 kernel plus with similar output:
uname -r
2.6.32-696.16.1.el6.centos.plus.x86_64