Ghi chú · 22/8/2026
Đính chính — libvirt modular daemon trên Ubuntu
Rất nhiều tài liệu — kể cả bản soạn đầu của lộ trình này — ghi Ubuntu dùng modular daemon. Filelist gói chính thức nói ngược lại.
Cái sai
Bản soạn đầu của Phiên 1 — và rất nhiều blog, câu trả lời StackExchange, tài liệu nội bộ — khẳng định Ubuntu 24.04 trở đi dùng libvirt modular daemon. Kiểm chứng 22/8/2026: sai.
Bằng chứng
Filelist gói chính thức của Ubuntu, kiểm 3 suite:
| Suite | libvirt | Binary trong libvirt-daemon |
|---|---|---|
| noble (24.04) | 10.0.0 | libvirtd, virtlogd, virtlockd |
| questing (25.10) | 11.6.0 | libvirtd |
| resolute (26.04) | — | libvirtd |
Không có binary virtqemud, không có unit virtqemud.socket, không có manpage virtqemud(8) trên bất kỳ suite nào. Ba cách kiểm độc lập: filelist của libvirt-daemon, filelist của libvirt-daemon-system (danh sách unit systemd), và sự vắng mặt của manpage virtqemud(8) trên manpages.ubuntu.com trong khi libvirtd(8) vẫn có.
Debian/Ubuntu 25.10+ tách packaging thành libvirt-daemon-driver-qemu, -network, -storage… Đó là các driver .so nạp động vào một tiến trình libvirtd duy nhất, không phải daemon rời. Gói libvirt-daemon-driver-qemu của questing không chứa binary virtqemud và không chứa unit virtqemud*.socket nào.
Modular daemon thật (virtqemud & co., socket-activated) là mặc định ở Fedora 35+, RHEL 9+, openSUSE và Arch. Upstream tách từ libvirt 5.7.0 (09/2019); mỗi distro tự quyết có ship hay không.
Hệ quả
- Trên host Ubuntu,
systemctl status libvirtdchính là cả câu chuyện.systemctl restart libvirtdlàm đúng điều mình tưởng. - Bài so sánh hai họ distro vẫn còn nguyên giá trị — khác biệt này có thật, chỉ ngược chiều: Arch mới là bên modular.
- Lệnh
systemctlcho libvirt không bê được từ Ubuntu sang Arch: Arch enable.socket(socket activation, daemon tự tắt khi rảnh), Ubuntu enable.service.
Cách phân biệt trên bất kỳ host nào:
$ systemctl is-active virtqemud.socket # modular, ngay bây giờ
$ systemctl is-active libvirtd.socket # monolithic, ngay bây giờ
$ systemctl list-units 'virt*' 'libvirt*'
$ ls -l /run/libvirt/*-sock*
Nguồn: libvirt Daemons · packages.ubuntu.com — noble libvirt-daemon · resolute libvirt-daemon · Fedora Changes/LibvirtModularDaemons
Ba điểm kỹ thuật khác đã xác minh, đáng nhớ cho P2
instance-idluôn là hằng sốnocloudnếu không tự truyềnmeta-data.virt-install --cloud-initsinhmeta-datarỗng → NoCloud dùng mặc định. Đây là lý do sâu xa (bên cạnh việc seed ISO bị gỡ) khiến sửauser-datarồi reboot là vô nghĩa. Script reset lab nên sinhinstance-idkhác nhau mỗi lần dựng.virt-install --cloud-initgỡ hẳn CD-ROM seed và xoá file ISO sau boot đầu — nó dựng hai bản XML (initial có CDROM, final không) vàdefineXML(final)sau khi guest tắt lần đầu. Không có flag giữ lại. Muốn giữ seed thì phải tự tạo ISO bằngxorrisofs -V cidatavà attach qua--disk.osinfo-dbtrong pocketnoblegốc là bản 0.20231215 — build trước khi 24.04 ra đời, nên không có entryubuntu24.04. Bản dùng được nằm ởnoble-updates(0.20250606).
Ngoài ra: thiếu --osinfo là lỗi cứng với guest HVM từ virt-manager 4.0.0 (03/2022), và thiếu -F/backing_format khi tạo qcow2 có backing file là lỗi cứng từ QEMU 6.1 (08/2021). Cả hai đều từng chỉ là cảnh báo — tài liệu cũ trên mạng sẽ không nhắc.