virtio_blkとNICドライバーvirtio_netを含む)をサポートする必要があります。カスタムイメージで作成されたCVMインスタンスが起動しない不具合を未然に防ぐには、イメージをインポートする前に、イメージがソースサーバーでVirtioドライバーをサポートしているかどうかを確認してください。このドキュメントでは、CentOSを例に、イメージをインポートする前に、イメージがVirtioドライバーをサポートしているかどうかを確認する方法を説明します。grep -i virtio /boot/config-$(uname -r)

CONFIG_VIRTIO_BLKとパラメータCONFIG_VIRTIO_NETの値がmである場合、ステップ2 を実行してください。CONFIG_VIRTIO_BLKとパラメータCONFIG_VIRTIO_NETの値がyである場合、このOSにVirtioドライバーが含まれていることを示し、カスタムイメージをTencent Cloudに直接インポートすることができます。操作の詳細については イメージのインポートの概要 をご参照ください。CONFIG_VIRTIO_BLKとパラメータCONFIG_VIRTIO_NETの情報がない場合、このOSのイメージをTencent Cloudにインポートできないことを意味します。カーネルをダウンロードしてコンパイル してください。initramfsまたはinitrdにvirtioドライバーが含まれているかどうかを確認する必要があります。OSによって、対応するコマンドを実行してください。lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
mkdir -p /tmp/initrd && cd /tmp/initrdzcat /boot/initrd-$(uname -r).img | cpio -idmvfind . -name "virtio*"
lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio

Initramfsには、virtio_blkドライバーと、それに依存するvirtio.ko、virtio_pci.koおよびvirtio_ring.koが含まれていることが分かり、カスタムイメージをTencent Cloudに直接インポートすることができます。操作の詳細については、イメージのインポートの概要 をご参照ください。
Initramfsまたはinitrdにvirtioドライバーが含まれていない場合、ステップ3 を実行してください。initramfsまたはinitrdにvirtioドライバーが含まれていないことが判明した場合は、一時ファイルシステムinitramfsまたはinitrdを再構成してvirtioドライバーを含むようにする必要があります。OSによって、対応する操作を選択してください。mkinitrd -f --allow-missing --with=virtio_blk --preload=virtio_blk --with=virtio_net --preload=virtio_net --with=virtio_console --preload=virtio_console /boot/initramfs-$(uname -r).img $(uname -r)
cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bakmkinitrd -f --with=virtio_blk --with=virtio_pci /boot/initramfs-$(uname -r).img $(uname -r)
cp /boot/initrd-$(uname -r).img /boot/initrd-$(uname -r).img.bakmkinitrd -f --with=virtio_blk --with=virtio_pci /boot/initrd-$(uname -r).img $(uname -r)
echo -e "virtio_pci\\nvirtio_blk" >> /etc/initramfs-tools/modulesupdate-initramfs -u
yum install -y ncurses-devel gcc make wget
uname -r
2.6.32-642.6.2.el 6.x 86_64であることを示します。

2.6.32-642.6.2.el 6.x 86_64バージョンのカーネルは、linux-2.6.32.tar.gzのインストールパッケージをダウンロードし、そのダウンロードパスはhttps://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.gzです。cd /usr/src/
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.gz
tar -xzf linux-2.6.32.tar.gz
ln -s linux-2.6.32 linux
cd /usr/src/linux
make mrpropersymvers_path=$(find /usr/src/ -name "Module.symvers")test -f $symvers_path && cp $symvers_path .cp /boot/config-$(uname -r) ./.configmake menuconfig





configファイルを保存します。.configファイルを手動で編集します。.configファイルが保存されていない場合。make oldconfigmake preparemake scriptsmakemake install
find /lib/modules/"$(uname -r)"/ -name "virtio.*" | grep -E "virtio.*"grep -E "virtio.*" < /lib/modules/"$(uname -r)"/modules.builtin
virtio_blk、virtio_pci.virtio_consoleなどのファイルリストを出力した場合、Virtioドライバーが正しくインストールされていることを示します。フィードバック