全部产品
Search
文档中心

Elastic Compute Service:Instal driver virtio

更新时间:Oct 23, 2025

Driver virtio adalah driver I/O berperforma tinggi yang diperlukan untuk lingkungan virtualisasi. Untuk memastikan gambar Linux kustom Anda dapat boot dengan benar di Alibaba Cloud, Anda harus menginstal driver virtio dan menyertakannya dalam sistem file sementara. Jika tidak, instans Elastic Compute Service (ECS) yang dibuat dari gambar Anda mungkin gagal untuk mulai karena tidak dapat mendeteksi perangkat penyimpanan dan jaringan virtual. Topik ini membimbing Anda melalui instalasi driver virtio di Linux.

Alur operasi

Berikut adalah alur operasi untuk menginstal driver virtio di sistem Linux:

Prosedur

Periksa apakah kernel sistem mendukung driver virtio

  1. Di mesin virtual tempat Anda membuat gambar, jalankan perintah berikut untuk memeriksa apakah kernel sistem saat ini mendukung driver virtio. Ini membantu menentukan apakah akan menginstal driver virtio untuk gambar kustom atau menambahkan driver ke sistem file sementara.

    grep -i virtio /boot/config-$(uname -r)

    Keluaran perintah berikut dikembalikan:

    virtio_driver

  2. Analisis keluaran perintah.

    Periksa parameter CONFIG_VIRTIO_BLK (driver perangkat blok virtio) dan CONFIG_VIRTIO_NET (driver perangkat jaringan virtio) dalam keluaran perintah:

    • Jika nilai parameternya adalah y: Sistem telah menginstal driver virtio dengan benar, dan driver tersebut dikompilasi ke dalam kernel. Driver akan dimuat secara otomatis saat startup. Anda tidak perlu melanjutkan langkah-langkah dalam topik ini.

    • Jika nilai parameternya adalah m atau satu nilai parameter y dan yang lainnya m: Driver virtio ada sebagai modul kernel. Anda hanya perlu menambahkan driver virtio ke sistem file sementara.

    • Jika parameter tidak muncul: Sistem tidak memiliki driver virtio yang terinstal. Anda perlu menginstal driver virtio secara manual.

Tambahkan driver virtio ke sistem file sementara

Jika kernel telah mengaktifkan CONFIG_VIRTIO_BLK=m atau CONFIG_VIRTIO_NET=m, tetapi modul ini belum ditambahkan ke sistem file sementara (initramfs), sistem mungkin gagal memuat driver virtio saat startup, menyebabkan mesin virtual gagal mendeteksinya.

  1. Jika nilai parameter CONFIG_VIRTIO_BLK dan CONFIG_VIRTIO_NET adalah m atau satu nilai parameter y dan yang lainnya m, jalankan salah satu perintah berikut untuk memeriksa apakah driver virtio telah ditambahkan ke sistem file sementara.

    Seri CentOS

    lsinitrd /boot/initramfs-$(uname -r).img | grep virtio

    image

    Seri Debian

    lsinitramfs /boot/initrd.img-$(uname -r)|grep  virtio

    image

    Seri SUSE

    lsinitrd /boot/initrd-$(uname -r)|grep virtio

    image

    • Seperti yang ditunjukkan pada gambar sebelumnya, jika keluaran berisi informasi virtio_blk.ko dan virtio_net.ko, driver virtio sudah ditambahkan ke sistem file sementara. Anda tidak perlu melanjutkan langkah-langkah dalam topik ini.

    • Jika keluaran tidak berisi informasi virtio_blk.ko dan virtio_net.ko, atau hanya berisi salah satu dari virtio_blk.ko dan virtio_net.ko, Anda perlu melanjutkan ke langkah berikutnya untuk menambahkan driver virtio ke sistem file sementara.

  2. Tambahkan driver virtio ke sistem file sementara.

    Seri CentOS

    Jika versi sistem operasi adalah CentOS 6, Anolis OS 7, AlmaLinux 8, Fedora 33, atau lebih baru dan versi kernel lebih baru dari 2.6.24 (Anda dapat menjalankan perintah uname -r untuk memeriksa versi kernel), lakukan operasi berikut untuk menambahkan driver virtio ke sistem file sementara.

    1. Jalankan perintah berikut untuk membuka file dracut.conf:

      vim /etc/dracut.conf
    2. Tekan tombol i untuk masuk ke mode Insert dan tambahkan konten berikut ke file:

      add_drivers+="virtio_blk virtio_net"

      Tekan tombol Esc, masukkan :wq, lalu tekan tombol Enter untuk menyimpan dan menutup file.

      Catatan

      Jika salah satu nilai CONFIG_VIRTIO_BLK dan CONFIG_VIRTIO_NET adalah y dan yang lainnya m, Anda hanya perlu menambahkan driver virtio yang nilainya m ke file. Sebagai contoh, jika nilai parameter CONFIG_VIRTIO_NET adalah m, tuliskan hanya add_drivers+="virtio_net" ke file.

    3. Jalankan perintah berikut untuk meregenerasi initrd:

      dracut -f
      Catatan

      Setelah Anda menjalankan perintah, Anda dapat menjalankan perintah echo $? untuk memeriksa apakah nilai 0 dikembalikan. Jika ya, initrd diregenerasi sesuai harapan. Anda juga dapat menjalankan

      lsinitrd /boot/initramfs-$(uname -r).img | grep virtio perintah untuk memeriksa apakah driver virtio telah ditambahkan ke sistem file sementara sesuai harapan.

    Seri Debian

    1. Jalankan perintah berikut untuk membuka file modules:

      vim /etc/initramfs-tools/modules
    2. Tekan tombol i untuk masuk ke mode Insert dan tambahkan konten berikut ke file:

      virtio_blk
      virtio_net

      Tekan tombol Esc, masukkan :wq, lalu tekan tombol Enter untuk menyimpan dan menutup file.

      Catatan

      Jika salah satu nilai CONFIG_VIRTIO_BLK dan CONFIG_VIRTIO_NET adalah y dan yang lainnya m, Anda hanya perlu menambahkan driver virtio yang nilainya m ke file. Sebagai contoh, jika nilai parameter CONFIG_VIRTIO_NET adalah m, tambahkan hanya virtio_net ke file.

    3. Jalankan perintah berikut untuk meregenerasi initrd:

      update-initramfs -u
      Catatan

      Setelah Anda menjalankan perintah, Anda dapat menjalankan perintah echo $? untuk memeriksa apakah nilai 0 dikembalikan. Jika ya, initrd diregenerasi sesuai harapan. Anda juga dapat menjalankan lsinitramfs /boot/initrd.img-$(uname -r)|grep virtio perintah untuk memeriksa apakah driver virtio telah ditambahkan ke sistem file sementara sesuai harapan.

    Seri SUSE

    • Versi sebelum SUSE 12 SP1 atau openSUSE 13

      1. Buka file kernel:

        vim /etc/sysconfig/kernel
      2. Tekan tombol i untuk masuk ke mode Insert dan tambahkan konten berikut ke file:

        INITRD_MODULES="virtio_blk virtio_net"

        Tekan tombol Esc, masukkan :wq, lalu tekan tombol Enter untuk menyimpan dan menutup file.

        Catatan

        Jika salah satu nilai CONFIG_VIRTIO_BLK dan CONFIG_VIRTIO_NET adalah y dan yang lainnya m, Anda hanya perlu menambahkan driver virtio yang nilainya m ke file. Sebagai contoh, jika nilai parameter CONFIG_VIRTIO_NET adalah m, tuliskan hanya INITRD_MODULES="virtio_net" ke file.

      3. Meregenerasi initrd:

        mkinitrd
    • SUSE 12 SP1, OpenSUSE 13, atau lebih baru

      1. Buka file dracut.conf:

        vim /etc/dracut.conf
      2. Tekan tombol i untuk masuk ke mode Insert dan tambahkan konten berikut ke file:

        add_drivers+="virtio_blk virtio_net"

        Tekan tombol Esc, masukkan :wq, lalu tekan tombol Enter untuk menyimpan dan menutup file.

        Catatan

        Jika salah satu nilai CONFIG_VIRTIO_BLK dan CONFIG_VIRTIO_NET adalah y dan yang lainnya m, Anda hanya perlu menambahkan driver virtio yang nilainya m ke file. Sebagai contoh, jika nilai parameter CONFIG_VIRTIO_NET adalah m, tuliskan hanya add_drivers+="virtio_net" ke file.

      3. Meregenerasi initrd:

        dracut -f
    Catatan

    Setelah Anda menjalankan perintah, jalankan perintah echo $? untuk memeriksa apakah nilai 0 dikembalikan. Jika ya, initrd diregenerasi sesuai harapan. Anda juga dapat menjalankan

    lsinitrd /boot/initrd-$(uname -r)|grep virtio perintah untuk memeriksa apakah driver virtio telah ditambahkan ke sistem file sementara sesuai harapan.

Instal driver virtio secara manual

Langkah 1: Unduh paket instalasi kernel

Catatan

Dalam contoh ini, paket instalasi kernel linux-4.4.24.tar.gz digunakan di sistem operasi CentOS. Modifikasi perintah berdasarkan versi kernel sistem operasi Anda.

  1. Instal komponen yang diperlukan untuk kompilasi kernel:

    yum install -y ncurses-devel gcc make wget
  2. Kueri versi kernel sistem operasi Anda. Dalam contoh ini, versi kernel adalah 4.4.24-2.al7.x86_64.

    uname -r

    kernel_version

  3. Kunjungi halaman daftar kernel Linux untuk menemukan URL unduhan kode sumber versi kernel yang sesuai.

    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.

    download

  4. Unduh paket instalasi:

    cd /usr/src/
    wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz
  5. Ekstrak paket instalasi 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

  1. Jalankan perintah berikut secara berurutan untuk mengompilasi 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 menuconfig
    Catatan

    Jika pesan kesalahan muncul saat Anda menjalankan perintah make menuconfig, atasi masalah berdasarkan pesan tersebut. Sebagai contoh, jika komponen ncurses-devel, bison, dan flex belum diinstal, Anda dapat menjalankan perintah berikut secara berurutan untuk menginstal komponen:

    yum install  ncurses-devel
    yum install  bison
    yum install  flex
  2. Selesaikan konfigurasi terkait virtio pada halaman berikut:

    Catatan

    Jika Anda memilih konfigurasi yang berisi tanda bintang (*), driver virtio dikompilasi ke dalam kernel. Jika Anda memilih konfigurasi yang berisi m, driver virtio dikompilasi menjadi modul.

    1. Konfigurasikan opsi Virtualization.

      1. Tekan tombol spasi untuk memilih Virtualization, lalu tekan tombol Enter untuk melihat opsi.Select_Virtualization

      2. Periksa bahwa opsi dukungan Kernel-based Virtual Machine (KVM) dipilih.Select_KVM

    2. Konfigurasikan opsi Processor type and features.

      1. Kembali ke menu utama, tekan tombol panah atas dan bawah untuk memilih Processor type and features, lalu tekan tombol Enter untuk melihat opsi.

      2. Tekan tombol spasi untuk memilih Paravirtualized guest support, lalu tekan tombol Enter untuk melihat opsi.guest_support

      3. Periksa bahwa opsi KVM paravirtualized clock dan KVM Guest support dipilih.KVM

    3. Konfigurasikan opsi Device Drivers.

      1. Kembali ke menu utama, tekan tombol panah atas dan bawah untuk memilih Device Drivers, lalu tekan tombol Enter untuk melihat opsi.

      2. Tekan tombol spasi untuk memilih Block devices, lalu tekan tombol Enter untuk melihat opsi.

      3. Periksa bahwa opsi Virtio block driver dipilih.Virtio_block

      4. Kembali ke daftar opsi Device Drivers, tekan tombol panah atas dan bawah untuk memilih Network device support, lalu tekan tombol Enter untuk melihat opsi.

      5. Periksa bahwa opsi Virtio network driver dipilih.Virtio_network

    4. Tekan tombol Esc untuk keluar dari jendela konfigurasi kernel dan pilih Yes pada prompt untuk menyimpan file .config.

    5. Periksa apakah konfigurasi terkait virtio sudah lengkap.

      Untuk informasi lebih lanjut, lihat Periksa apakah kernel sistem mendukung driver virtio.

    6. (Opsional) Jika konfigurasi terkait virtio belum lengkap, jalankan perintah berikut secara berurutan untuk memodifikasi file .config:

      make oldconfig
      make prepare
      make scripts
      make
      make install
    7. Periksa apakah driver virtio telah diinstal:

      find /lib/modules/"$(uname -r)"/ -name "virtio*" | grep -E "virtio*"
      grep -E "virtio*" < /lib/modules/"$(uname -r)"/modules.builtin

      Jika driver virtio telah diinstal, salah satu keluaran perintah berisi daftar file terkait virtio, seperti virtio_blk, virtio_pci, dan virtio_console, seperti yang ditunjukkan pada gambar berikut.确认结果