Linux镜像如何添加驱动,安装virtio驱动(Linux)
為了確保私有鏡像能正常創(chuàng)建啟動云服務(wù)器,您需要在導(dǎo)入之前檢查virtio驅(qū)動是否已經(jīng)安裝。
檢查鏡像內(nèi)核是否支持virtio驅(qū)動
執(zhí)行g(shù)rep -i virtio /boot/config-$(uname -r)檢查系統(tǒng)內(nèi)核是否支持virtio。
其中,如果參數(shù)CONFIG_VIRTIO_BLK 及CONFIG_VIRTIO_NET 取值為 y,表示包含了 virtio 驅(qū)動,可以直接上傳。如果參數(shù) CONFIG_VIRTIO_BLK 及CONFIG_VIRTIO_NET 取值為 m時,進行步驟2以確認臨時文件系統(tǒng)是否包含virtio驅(qū)動。
CentOS執(zhí)行l(wèi)sinitrd /boot/initramfs-$(uname -r).img | grep virtio,Ubuntu執(zhí)行l(wèi)sinitrd /boot/initrd.img-$(uname -r) | grep virtio,確認virtio是否包含在臨時文件系統(tǒng)中。
如上面截圖,表示系統(tǒng)以及包含了virtio驅(qū)動,可以進行進行上傳。
如果臨時文件系統(tǒng)沒有包含virtio驅(qū)動,則需要修復(fù)臨時文件系統(tǒng)。
修復(fù)臨時文件系統(tǒng)
如果檢查發(fā)現(xiàn)內(nèi)核支持virtio但是臨時文件系統(tǒng)又沒有包含virtio驅(qū)動時,需要修復(fù)臨時文件系統(tǒng)。
CentOS/RedHat 5
mkinitrd -f --allow-missing \ --with=xen-vbd --preload=xen-vbd \ --with=xen-platform-pci --preload=xen-platform-pci \ --with=virtio_blk --preload=virtio_blk \ --with=virtio_pci --preload=virtio_pci \ --with=virtio_console --preload=virtio_console \
CentOS/RedHat 6/7
mkinitrd -f --allow-missing \ --with=xen-blkfront --preload=xen-blkfront \ --with=virtio_blk --preload=virtio_blk \ --with=virtio_pci --preload=virtio_pci \ --with=virtio_console --preload=virtio_console \ /boot/initramfs-$(uname -r).img $(uname -r)
Debian/Ubuntu
echo -e 'xen-blkfront\nvirtio_blk\nvirtio_pci\nvirtio_console' >> \ /etc/initramfs-tools/modules mkinitramfs -o /boot/initrd.img-$(uname -r)"
編譯安裝virtio驅(qū)動
如果檢查發(fā)現(xiàn)當(dāng)前內(nèi)核不支持virtio驅(qū)動,可以參考以下方式進行安裝。這里以CentOS為例。
1. 下載內(nèi)核安裝包
執(zhí)行yum install -y ncurses-devel gcc make wget以安裝編譯所需的工具。
執(zhí)行uname -r以確認當(dāng)前內(nèi)核版本。
在Linux內(nèi)核列表下載對應(yīng)的內(nèi)核版本源碼。如3.10.10的源碼下載地址為https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.10.10.tar.gz
在這個例子中,通過wget下載內(nèi)核包,解壓到/usr/src/目錄中。具體操作如下:
cd /usr/src wget https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/linux-3.10.10.tar.gz tar -xzf linux-3.10.10.tar.gz ln -s linux-3.10.10 linux cd /usr/src/linux
2. 編譯內(nèi)核
依次執(zhí)行以下指令編譯內(nèi)核:
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
出現(xiàn)以下界面,開始進行virtio相關(guān)配置(圖中*表示編譯到內(nèi)核,m表示編譯為模塊):
使用空格勾選Virtualization項。然后回車鍵進入詳細列表
在詳細列表確認是否勾選了Kernel-based Virtual Machine選項。
返回到主界面,再通過上下鍵選擇“Processor type and features”,回車鍵進入詳細列表,再選擇“Paravirtualized guest support”并回車鍵進入詳細列表。確認是否選擇了“KVM paravirtualized clock”和“KVM Guest support”。
返回到主界面,通過上下鍵選擇“Device Drivers”,回車鍵進入詳細列表,再選擇“Block devices”并回車鍵進入詳細列表。確認是否選擇了“Virtio block driver (EXPERIMENTAL)”。
回到上一級“Device Drivers”的詳細列表界面,上下鍵選擇“Network device support”并回車鍵進入詳細列表,確認是否選擇了“Virtio network driver (EXPERIMENTAL)”。
最后按Esc鍵退出并根據(jù)彈窗提示保存.config文件。
完成上述步驟再按照《檢查鏡像內(nèi)核是否支持virtio驅(qū)動》方法檢測virtio配置。
(可選)如果還是未發(fā)現(xiàn)virtio相關(guān)配置,可以執(zhí)行以下命令手動編輯.config文件:
make oldconfig
make prepare
make scripts
make
make install
執(zhí)行以下命令查看virtio驅(qū)動安裝情況:
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等文件列表,表示您已經(jīng)完成virtio驅(qū)動的安裝了。
總結(jié)
以上是生活随笔為你收集整理的Linux镜像如何添加驱动,安装virtio驱动(Linux)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 各位大神,帮我鉴定一下,这狗是不是纯种罗
- 下一篇: 惠普硬盘安装linux,hp台式电脑原本