edit-icon download-icon

カーネルのアップグレード後、Linux インスタンスの起動失敗を回避する方法

最終更新日: Mar 14, 2018

CentOS、OpenSUSE、SLES(SUSE Linux Enterprise Server)、または Aliyun Linux を実行している Linux インスタンスがアップグレード後に起動しない場合は、virtio-blk および xen-blkfront ドライバがアップグレードされたカーネルの initrd ファイルにないことが原因です。Debian や Ubuntu には、virtio-blk と xen-blkfront ドライバがカーネルに組み込まれているため、これは起こりません。

注意:あなた自身でカーネルをアップグレードすることはお勧めしません。詳細は、ECS を使用する際の考慮事項を参照してください。

initrdファイルとは何ですか?

コンピューティングで、initrd(initial ramdisk) は一時的なルートファイルシステムをメモリにロードするスキームであり、Linux インスタンスの起動プロセスの一部として使用されます。initramf は代わりにそれのために使用されます。それらは 2 つの異なる方式ですが、実際のルートファイルシステムがマウントされる前に、両方をベースに準備するのが一般的です。

どのカーネルが直接カーネルのアップグレードをサポートしていますか?

Alibaba Cloud は、 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 |を実行します。 virtio-blk ドライバと xen-blkfront ドライバが initrd/initramfsファイルで利用可能かどうかを確認するために、grep -E ‘virtio|xen’ を実行します。

  4. virtio-blk および xen-blkfront ドライバが initrd ファイルで使用可能になるまで、インスタンスを再起動しないでください。

問題が解決しない場合は、 チケットを発行してください。