在Ubuntu系統(tǒng)上安裝 libvirtd
(即Libvirt守護進程)是搭建虛擬化環(huán)境(如KVM/QEMU)的核心步驟。以下是嚴謹且已驗證的安裝流程,適用于Ubuntu 22.04 LTS及更高版本:
一、安裝前準備
-
系統(tǒng)更新確保系統(tǒng)處于最新狀態(tài),避免依賴沖突:
sudo apt update && sudo apt upgrade -y
-
檢查CPU虛擬化支持
運行命令確認CPU支持硬件虛擬化(輸出結(jié)果需包含vmx
(Intel)或svm
(AMD)):egrep -c '(vmx|svm)' /proc/cpuinfo # 返回值≥1即支持
二、安裝Libvirt及相關(guān)組件
-
安裝核心軟件包以下命令一次性安裝Libvirt守護進程、管理工具及KVM驅(qū)動:
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
qemu-kvm
:KVM虛擬化內(nèi)核模塊libvirt-daemon-system
:包含libvirtd
服務(wù)及配置文件libvirt-clients
:提供virsh
等管理命令bridge-utils
:網(wǎng)絡(luò)橋接工具(可選但推薦)virt-manager
:圖形化管理工具(可選)
-
驗證驅(qū)動加載
檢查KVM內(nèi)核模塊是否激活:lsmod | grep kvm # 應(yīng)顯示kvm_intel或kvm_amd
三、配置權(quán)限與用戶組
關(guān)鍵步驟:將當前用戶加入 libvirt
用戶組,避免每次使用 sudo
:
sudo usermod -aG libvirt $(whoami) # 添加當前用戶到libvirt組 newgrp libvirt # 立即生效用戶組變更
📌 注銷并重新登錄系統(tǒng)可使變更全局生效。
四、啟動并驗證服務(wù)
-
啟用Libvirt守護進程
sudo systemctl enable --now libvirtd.service # 啟動并設(shè)置開機自啟
-
檢查服務(wù)狀態(tài)
sudo systemctl status libvirtd.service # 確認顯示"active (running)"
-
測試連接虛擬化環(huán)境
virsh list --all # 正常應(yīng)輸出空虛擬機列表(無錯誤提示)
五、網(wǎng)絡(luò)配置(可選但推薦)
默認會創(chuàng)建 default
NAT網(wǎng)絡(luò),若需橋接網(wǎng)絡(luò):
- 編輯網(wǎng)絡(luò)配置文件:
sudo virsh net-edit default
- 將
<forward>
模式改為bridge
(需提前配置物理網(wǎng)橋)
或直接創(chuàng)建新橋接網(wǎng)絡(luò):sudo virt-manager # 圖形化配置更直觀
六、安全加固建議
-
**禁用TCP監(jiān)聽(提升安全性)**編輯配置文件:
sudo nano /etc/libvirt/libvirtd.conf
修改以下參數(shù):
listen_tls = 0 listen_tcp = 0 # 關(guān)閉TCP監(jiān)聽 unix_sock_group = "libvirt" unix_sock_rw_perms = "0770"
-
重啟服務(wù)生效
sudo systemctl restart libvirtd
七、故障排查
現(xiàn)象 | 解決方案 |
---|---|
virsh 提示權(quán)限不足 |
確認用戶已加入 libvirt 組,執(zhí)行 newgrp libvirt |
虛擬機無法啟動 | 檢查 /var/log/libvirt/qemu/ 日志 |
網(wǎng)絡(luò)橋接失敗 | 確保 bridge-utils 安裝,網(wǎng)卡未被NetworkManager接管 |
總結(jié)
完成上述步驟后,你的Ubuntu系統(tǒng)已具備完整的虛擬化能力:✅ 通過 virt-manager
管理圖形化虛擬機✅ 使用 virsh
命令實現(xiàn)高級控制(如 virsh start my_vm
)✅ 支持KVM加速的Linux/Windows虛擬機
💡 提示:生產(chǎn)環(huán)境建議關(guān)閉
virt-manager
的spice
服務(wù)端口(TCP 5900+),改用SSH隧道更安全。
保持所有操作在終端直接執(zhí)行,避免依賴第三方腳本。