Linux
Debian KVM 和 vm 映像的位置不同於 /var/lib/libvirt/images
我在 ZFS 上為 VM 定義了儲存池:
virsh # pool-dumpxml zfs <pool type='dir'> <name>zfs</name> <uuid>b2fba550-467f-8133-dee8-44ada7d0a807</uuid> <capacity unit='bytes'>210316853248</capacity> <allocation unit='bytes'>32768</allocation> <available unit='bytes'>210316820480</available> <source> </source> <target> <path>/winvm/win1</path> <permissions> <mode>0700</mode> <owner>4294967295</owner> <group>4294967295</group> </permissions> </target> </pool>
為 vms 創建 RAW 圖像文件:
host /winvm/win1 % l total 3.5K drwxrwxr-x. 2 root root 3 Jan 3 14:03 . drwxr-xr-x 3 libvirt-qemu libvirt-qemu 3 Dec 30 13:45 .. -rw-------. 1 libvirt-qemu libvirt-qemu 20G Jan 3 14:03 t1.raw
定義了 t1 VM,但是當我嘗試啟動它時:
host /winvm/win1 % virsh start t1 error: Failed to start domain t1 error: internal error process exited while connecting to monitor: char device redirected to /dev/pts/13 kvm: -drive file=/winvm/win1/t1.raw,if=none,id=drive-sata0-0-0,format=raw,cache=none: could not open disk image /winvm/win1/t1.raw: Invalid argument
VM的儲存文件不斷將所有者更改為root:root:
host /winvm/win1 % ls -l total 1 -rw-------. 1 root root 21474836480 Jan 3 14:03 t1.raw
我在那台機器上禁用了 SELinux:
host /winvm/win1 % sestatus SELinux status: disabled
甚至更改了使用者和上下文:
host /winvm/win1 % chcon -t virt_image_t -u libvirt-qemu t1.raw
而且我仍然不斷收到上面的錯誤。為什麼?SELinux 禁用後如何影響文件訪問?
這不是 ZFS,而是
virt-manager
導致配置不正確的實用程序 -if=none
出於某種原因將罪魁禍首添加到磁碟規範中(我曾經virt-manager
在 ZFS 卷上定義原始磁碟)。我在磁碟映像上遇到間歇性的“權限被拒絕”錯誤,所以我認為這是權限問題。如果您在 中設置磁碟映像上的所有可用選項,就會發生這種情況virt-manager
,顯然每個人都只是保留預設值。