カーネルの更新後に起動しない


Centos 7 VMカーネルを更新した後、新しいカーネルはXenserver Hypervisorでブートを停止しました.私はXenServerバージョン7.1を使用してきた
カーネルバージョンyum update , was 3.10.0-693 そして後にyum update カーネルバージョン3.10.0-1127.19.1
この問題は私が更新したカーネルによるものですspectre/meltdown パッチを.しかし、我々のXenServer 7はそうしません.興味深いことに、この問題はCentos VMSにしか影響しない.私の他のUbuntuサーバーだけで問題なしで更新プログラムを実行することができますが、CentOS VMのは、ホストが更新される必要がありますか、または動作を停止します.
この問題を修正するには、最新バージョンにXenServerを更新する必要があります.
XenServer 7.1のホットフィックス用のリンク集.https://support.citrix.com/article/CTX230788
XenServer 7.1をアップグレードするには、まずCitrixライセンスを使用する必要があります.しかし、「無料」パッチは7.2のためにリリースされました.
しかし、以前のXenServerのバージョンを実行している場合は7.1より古いので、XenServerを最新に更新する他に選択肢はありません.
また、Centosは新しいカーネルバージョンに関するブート問題を修正しました.

メルトダウンとスペクトル脆弱性とは何か


https://spectreattack.com
VMにアクセスできない人は、VM自身の外でメモリを読むことができ、したがって、同じ物理ホスト上の他のVMからデータを読み込みます.攻撃者はあなたのVMSの他のアプリケーションexploit(webserver etc)を通して入ることができました.

私は影響を受けますか?


メルトダウンは、インテルのczのみに設計欠陥を使用しています.これは、シュンXen Sec Team Count“SP 3”(別名シュガーデータキャッシュロード)によって呼び出されます.
使用している場合にのみ影響を与えます.
  • 64ビットpv型VM ( HVM/PVHVMは影響を受けません!)
  • インテルCPU(AMDチップ設計は少し異なり、影響を受けません)
  • 信頼できないVMS、VMアクセスを持っていない信頼できないユーザ( root以外でも)
  • すべてのXenServerバージョンが影響を受ける
  • 64-bits PV guests are vulnerable because guest and hypervisor share the same address space, but with different privileges. HVM aren't.


    リスク軽減


    すべてのVMの移動PV to HVM または、XenServerを最新にアップグレードするか、利用可能ならばhotfixをインストールしてください.
    しかし、古いバージョンのXenServerを実行している場合、7.1 次に、この問題を解決するためにあなたのXenServerを更新する必要があります.
    バックトゥケントス7ブートの問題.
    ブートの問題は最新のCentosカーネルバージョンで修正されたようです.XenServerが最新のものであるならば、VMのものはどんな問題も持ってはいけません.しかし、私のケースでは、私のXenServerを更新しなかったので、今私はいずれかの最新のCentOS 7カーネルをインストールするか、以前の実行中の1つにダウングレードする必要があります.

    カーネルバージョンのアップグレード


    追加ELRepo Repository ファースト.
    ELREPO GPGキーをシステムに加えてください.
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    

    This is important – CentOS will not allow the installation of an unsigned software package. The GPG key provides a digital signature to verify that the software is authentic.


    今すぐ新しいelrepoリポジトリを追加します.
    rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    
    それが完了すると、システム上で有効になっているすべてのリポジトリをチェックし、elrepoがリストにあることを確認します.
    yum repolist
    
    yum --enablerepo=elrepo-kernel install kernel-ml
    
    カーネルMLは-これは、より短いサポートの用語が、より頻繁に更新をメインラインのリリースを示します.
    またはインストールする
    yum --enablerepo=elrepo-kernel install kernel-lt
    
    カーネルLTは、-安定した長期的なサポートリリースを示す.
    お使いのシステム上の既存のカーネルバージョンをすべて表示します.
    awk -F\' /^menuentry/{print\$2} /etc/grub2.cfg
    
    CentOS Linux (4.4.234-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.18.2.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-c848e02bc90943f7a4daa50b09df4) 7 (Core)
    
    Centos最新カーネルバージョンを4.4.234-1 . これをデフォルトのカーネルとして設定します.

    デフォルトのカーネルバージョンを設定する


    最初のすべての既存のカーネルバージョンを聞きます.
    awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
    
    CentOS Linux (4.4.234-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.18.2.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-c848e02bc90943f7a4daa50b09df4) 7 (Core)
    

    NOTE: The first entry is denoted as Zero. Let us modify the Kernel Version to 4.4.234-1 which is at line number 1 but denoted as entry 0.

    Set default kernel.
    grub2-set-default 0
    
    次はRebuild grub.cfg ファイルを'gurb2-mkconfig' コマンド.
    grub2-mkconfig -o /boot/grub2/grub.cfg
    

    デフォルトのカーネルバージョンをチェックするには
    cat /boot/grub2/grubenv |grep saved
    
    saved_entry=CentOS Linux (4.4.234-1.el7.elrepo.x86_64) 7 (Core)
    
    リブートサーバ
    reboot
    
    上記のソリューションは起動問題を解決します.
    あなたがCentosカーネルを最新のものに更新したくないならば、既存の前の働くカーネルからブートしたいならば、あなたのシステムを再起動して、以前からうまく働いていたカーネル・バージョンを選んでくださいgrub menu と選択enter 以下の手順に従います.
    デフォルトのカーネルバージョンを設定しますが、既存のカーネルバージョンを最初に一覧表示します.
    awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
    
    CentOS Linux (4.4.234-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-1127.18.2.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-c848e02bc90943f7a4daa50b09df4) 7 (Core)
    

    NOTE: The first entry is denoted as Zero. So currently the Server is booted to 0th entry as per the above command output. Let us modify the Kernel Version to 3.10.0-693 which is at line number 4 but denoted as entry 3.

    Set default kernel.
    grub2-set-default 3
    
    次はRebuild grub.cfg ファイルを'gurb2-mkconfig' コマンド.
    grub2-mkconfig -o /boot/grub2/grub.cfg
    

    デフォルトのバージョン
    cat /boot/grub2/grubenv | grep saved
    
    saved_entry=CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    
    リブートサーバ
    reboot