پرش به محتوا

ماشین مجازی روی Fedora با KVM و virt-manager

گروه بسته‌های مجازی‌سازی را نصب کنید، کاربر را به گروه libvirt اضافه کنید، با virt-manager یا virt-install ماشین بسازید و دیسک را با qemu-img مدیریت کنید.

Fedora 45سطح: مقدماتیبه‌روزرسانی: ۱۷ آبان ۱۴۰۵

۱. نصب

bash
grep -cE 'vmx|svm' /proc/cpuinfo          # must be > 0
sudo dnf install -y @virtualization
sudo systemctl enable --now virtqemud.socket virtnetworkd.socket virtstoraged.socket
sudo virt-host-validate qemu

۲. دسترسی کاربر عادی

برای مدیریت ماشین‌های سیستمی (qemu:///system) بدون sudo:

bash
sudo usermod -aG libvirt "$USER"
newgrp libvirt
virsh -c qemu:///system list --all

عضو گروه libvirt عملاً دسترسی root دارد، چون می‌تواند هر دیسکی را به ماشین وصل کند. فقط کاربران مدیر را اضافه کنید.

۳. ساخت ماشین

با رابط گرافیکی: virt-manager را اجرا کنید، File › New Virtual Machine و فایل ISO را انتخاب کنید.

با خط فرمان:

bash
virt-install --connect qemu:///system \
  --name ubuntu-test --memory 4096 --vcpus 2 \
  --disk size=25 --os-variant ubuntu24.04 \
  --cdrom ~/Downloads/ubuntu-24.04-live-server-amd64.iso \
  --network network=default

شبکه‌ی default یک NAT است (192.168.122.0/24). ماشین به اینترنت دسترسی دارد، ولی از شبکه‌ی بیرونی دیده نمی‌شود. برای اینکه ماشین در شبکه‌ی اصلی باشد، bridge لازم است (آموزش KVM خانواده‌ی Rocky را ببینید).

۴. فایل ISO و SELinux

اگر ISO در پوشه‌ی خانه است و ماشین بالا نمی‌آید، علت معمولاً SELinux است. ISOها را در مسیر استاندارد بگذارید:

bash
sudo mv ~/Downloads/*.iso /var/lib/libvirt/images/
sudo restorecon -Rv /var/lib/libvirt/images

۵. دیسک‌ها با qemu-img

bash
sudo qemu-img info /var/lib/libvirt/images/ubuntu-test.qcow2
sudo qemu-img resize /var/lib/libvirt/images/ubuntu-test.qcow2 +10G      # VM must be off
sudo qemu-img convert -O qcow2 -c old.qcow2 compact.qcow2               # shrink/compress a copy

بعد از بزرگ کردن دیسک، پارتیشن و فایل‌سیستم را داخل خود ماشین بزرگ کنید.

۶. snapshot

bash
virsh -c qemu:///system snapshot-create-as ubuntu-test clean-install
virsh -c qemu:///system snapshot-revert ubuntu-test clean-install