問題描述

已經設定 sudo virsh autostart <vm_name>,但 VM 在重啟後一樣不會自動啟動

系統環境

  • Fedora 40 with GNOME
  • 已經忘記當初 virsh 是怎麼裝,不過應該是跟著 cockpit virtual machine 外掛元件的指示做

除錯經過

以下每做完一個步驟都重新開機過

  • sudo virsh dominfo <vm_name> 確定 autostart 是 enabled
  • sudo systemctl disable libvirtd 後重新 enable
  • sudo journalctl -xeu libvirtd.service 顯示 -- No entries --

解決辦法

依照 Not start after boot - Fedora Discussion 給的靈感,先執行

$ systemctl list-unit-files '*virt*'
# UNIT FILE                   STATE    PRESET  
# libvirt-dbus.service        disabled disabled
# libvirt-guests.service      disabled disabled
# libvirtd.service            enabled  disabled
# virtinterfaced.service      disabled disabled
# virtlockd.service           disabled disabled
# virtlogd.service            disabled disabled
# virtlxcd.service            enabled  enabled 
# virtnetworkd.service        disabled  disabled
# ......(略)

挑出幾個感覺會用到的 enable

# 看起來像是是虛擬網卡
$ sudo systemctl enable virtnetworkd.service
# 因為 VM 有用到硬體直通,所以也啟用它 
$ sudo systemctl enable virtnodedevd.service
# 看起來像是儲存空間相關的
$ sudo systemctl enable virtstoraged.service

tada 🎉 ,問題解決

後記

sudo systemctl status libvirtd 還是顯示 inactive (dead),有點不解…