Instal dan muat driver virtio dalam gambar Linux kustom Anda agar instance ECS dapat mendeteksi perangkat penyimpanan dan jaringan yang divirtualisasi saat boot.
Prosedur
Bagan alir berikut menunjukkan cara menginstal driver virtio pada sistem Linux:
Prosedur
Periksa apakah kernel mendukung virtio
-
Pada mesin virtual tempat Anda membuat gambar, jalankan perintah berikut untuk memeriksa apakah kernel mendukung virtio:
grep -i virtio /boot/config-$(uname -r)Contoh output:

-
Analisis output tersebut.
Periksa parameter
CONFIG_VIRTIO_BLKdanCONFIG_VIRTIO_NET:-
Jika nilai parameternya y: Driver virtio dikompilasi ke dalam kernel dan dimuat secara otomatis saat startup. Tidak diperlukan tindakan lebih lanjut.
-
Jika nilai parameternya m atau salah satu nilainya y dan yang lainnya m: Driver virtio ada sebagai modul kernel. Tambahkan driver virtio ke sistem file temporary.
-
Jika parameter tidak muncul: Driver virtio belum terinstal. Instal driver virtio secara manual.
-
Tambahkan driver virtio ke sistem file temporary
Jika kernel memiliki CONFIG_VIRTIO_BLK=m atau CONFIG_VIRTIO_NET=m tetapi modul-modul ini tidak ada di initramfs, sistem mungkin gagal memuat virtio saat startup.
-
Jika
CONFIG_VIRTIO_BLKatauCONFIG_VIRTIO_NETbernilai m, jalankan salah satu perintah berikut untuk memeriksa apakah driver virtio ada di initramfs:Seri CentOS
lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
Seri Debian
lsinitramfs /boot/initrd.img-$(uname -r)|grep virtio
Seri SUSE
lsinitrd /boot/initrd-$(uname -r)|grep virtio
-
Jika output berisi
virtio_blk.kodanvirtio_net.ko, driver virtio sudah ada di initramfs. Tidak diperlukan tindakan lebih lanjut. -
Jika keluaran tidak memiliki
virtio_blk.koatauvirtio_net.ko, atau hanya berisi salah satu darivirtio_blk.kodanvirtio_net.ko, lanjutkan ke langkah berikutnya.
-
-
Tambahkan driver virtio ke initramfs.
Seri CentOS
Berlaku untuk CentOS 6, Anolis OS 7, AlmaLinux 8, Fedora 33, atau versi yang lebih baru dengan versi kernel lebih baru dari 2.6.24 (jalankan
uname -runtuk memeriksa).-
Buka file dracut.conf:
vim /etc/dracut.conf -
Tekan i untuk masuk ke mode Insert dan tambahkan konten berikut:
add_drivers+="virtio_blk virtio_net"Tekan Esc, ketik :wq, lalu tekan Enter untuk menyimpan dan menutup file.
CatatanJika salah satu nilai
CONFIG_VIRTIO_BLKdanCONFIG_VIRTIO_NETadalah y dan yang lainnya m, Anda hanya perlu menambahkan driver virtio yang nilainya m ke file tersebut. Misalnya, jika nilai parameterCONFIG_VIRTIO_NETadalah m, tulis hanyaadd_drivers+="virtio_net"ke file tersebut. -
Buat ulang initrd:
dracut -fCatatanJalankan
echo $?untuk memverifikasi nilai kembali 0. Jalankan perintahlsinitrd /boot/initramfs-$(uname -r).img | grep virtiountuk memverifikasi bahwa virtio ada di initramfs.
Seri Debian
-
Buka file modules:
vim /etc/initramfs-tools/modules -
Tekan i untuk masuk ke mode Insert dan tambahkan konten berikut:
virtio_blk virtio_netTekan Esc, ketik :wq, lalu tekan Enter untuk menyimpan dan menutup file.
CatatanJika salah satu nilai
CONFIG_VIRTIO_BLKdanCONFIG_VIRTIO_NETadalah y dan yang lainnya m, Anda hanya perlu menambahkan driver virtio yang nilainya m ke file tersebut. Misalnya, jika nilai parameterCONFIG_VIRTIO_NETadalah m, tambahkan hanyavirtio_netke file tersebut. -
Buat ulang initrd:
update-initramfs -uCatatanJalankan
echo $?untuk memverifikasi nilai kembali 0. Jalankan perintahlsinitramfs /boot/initrd.img-$(uname -r)|grep virtiountuk memverifikasi bahwa virtio ada di initramfs.
Seri SUSE
-
Versi sebelum SUSE 12 SP1 atau openSUSE 13
-
Buka file kernel:
vim /etc/sysconfig/kernel -
Tekan i untuk masuk ke mode Insert dan tambahkan konten berikut:
INITRD_MODULES="virtio_blk virtio_net"Tekan Esc, ketik :wq, lalu tekan Enter untuk menyimpan dan menutup file.
CatatanJika salah satu nilai
CONFIG_VIRTIO_BLKdanCONFIG_VIRTIO_NETadalah y dan yang lainnya m, Anda hanya perlu menambahkan driver virtio yang nilainya m ke file tersebut. Misalnya, jika nilai parameterCONFIG_VIRTIO_NETadalah m, tulis hanyaINITRD_MODULES="virtio_net"ke file tersebut. -
Buat ulang initrd:
mkinitrd
-
-
SUSE 12 SP1, OpenSUSE 13, atau versi yang lebih baru
-
Buka file dracut.conf:
vim /etc/dracut.conf -
Tekan i untuk masuk ke mode Insert dan tambahkan konten berikut:
add_drivers+="virtio_blk virtio_net"Tekan Esc, ketik :wq, lalu tekan Enter untuk menyimpan dan menutup file.
CatatanJika salah satu nilai
CONFIG_VIRTIO_BLKdanCONFIG_VIRTIO_NETadalah y dan yang lainnya m, Anda hanya perlu menambahkan driver virtio yang nilainya m ke file tersebut. Misalnya, jika nilai parameterCONFIG_VIRTIO_NETadalah m, tulis hanyaadd_drivers+="virtio_net"ke file tersebut. -
Buat ulang initrd:
dracut -f
-
CatatanJalankan
echo $?untuk memverifikasi nilai kembali 0. Jalankan perintahlsinitrd /boot/initrd-$(uname -r)|grep virtiountuk memverifikasi bahwa virtio ada di initramfs. -
Instal driver virtio secara manual
Langkah 1: Unduh paket instalasi kernel
Dalam contoh ini, paket instalasi kernel linux-4.4.24.tar.gz digunakan pada CentOS. Sesuaikan perintah berdasarkan versi kernel Anda.
-
Instal komponen yang diperlukan untuk kompilasi kernel:
yum install -y ncurses-devel gcc make wget -
Kueri versi kernel. Dalam contoh ini, versi kernel adalah 4.4.24-2.al7.x86_64.
uname -r
-
Buka halaman daftar kernel Linux dan temukan URL unduhan untuk versi kernel Anda.
Dalam contoh ini, URL unduhan linux-4.4.24.tar.gz adalah
https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz.
-
Unduh paket instalasi:
cd /usr/src/ wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz -
Ekstrak paket dan buat tautan simbolik:
tar -xzf linux-4.4.24.tar.gz ln -s linux-4.4.24 linux cd /usr/src/linux
Langkah 2: Kompilasi kernel
-
Kompilasi kernel:
make mrproper symvers_path=$(find /usr/src/ -name "Module.symvers") test -f $symvers_path && cp $symvers_path . cp /boot/config-$(uname -r) ./.config make menuconfigCatatanJika perintah make menuconfig gagal, instal komponen yang hilang. Contohnya:
yum install ncurses-devel yum install bison yum install flex -
Selesaikan konfigurasi terkait virtio pada halaman berikut:
CatatanMemilih konfigurasi dengan tanda bintang (*) akan mengompilasi driver virtio ke dalam kernel. Memilih m akan mengompilasinya sebagai modul.
-
Konfigurasikan opsi Virtualisasi.
-
Pilih Virtualization dan tekan Enter.

-
Verifikasi bahwa opsi dukungan Kernel-based Virtual Machine (KVM) telah dipilih.

-
-
Konfigurasikan opsi jenis prosesor dan fitur.
-
Kembali ke menu utama, pilih Processor type and features, lalu tekan Enter.
-
Pilih Paravirtualized guest support dan tekan Enter.

-
Verifikasi bahwa KVM paravirtualized clock dan KVM Guest support telah dipilih.

-
-
Konfigurasikan opsi Device Drivers.
-
Kembali ke menu utama, pilih Device Drivers, lalu tekan Enter.
-
Pilih Block devices dan tekan Enter.
-
Verifikasi bahwa Virtio block driver telah dipilih.

-
Kembali ke Device Drivers, pilih Network device support, lalu tekan Enter.
-
Verifikasi bahwa Virtio network driver telah dipilih.

-
-
Tekan Esc untuk keluar dari jendela konfigurasi kernel. Pilih Yes untuk menyimpan file .config.
-
Periksa apakah konfigurasi terkait virtio telah lengkap.
-
(Opsional) Jika konfigurasi virtio belum lengkap, modifikasi file .config:
make oldconfig make prepare make scripts make make install -
Periksa apakah driver virtio telah terinstal:
find /lib/modules/"$(uname -r)"/ -name "virtio*" | grep -E "virtio*" grep -E "virtio*" < /lib/modules/"$(uname -r)"/modules.builtinJika driver virtio telah terinstal, salah satu output perintah akan mencantumkan file terkait virtio seperti virtio_blk, virtio_pci, dan virtio_console.

-