使用 virt-install 命令安装额外的虚拟机会导致以下错误:
ERROR internal error: process exited while connecting to monitor: 2019-02-20T08:21:45.534416Z qemu-system-x86_64: -drive file=/home/chris/VM/ubuntu-16.04.iso,format=raw,if=none,id=drive-ide0-0-0,readonly=on: Could not open '/home/chris/VM/ubuntu-16.04.iso': Permission denied
这是我的 virt-install 命令:
sudo virt-install \
-n VPNserver \
--description "VPN server" \
--os-type=Linux \
--os-variant=ubuntu16.04 \
--ram=1096 \
--vcpus=1 \
--disk path=/var/lib/libvirt/images/vpnserver.img,bus=virtio,size=10 \
--network bridge:br2 \
--graphics none \
--location /home/chris/VM/ubuntu-16.04.iso \
--extra-args console=ttyS0 \
--autostart
/chris/home/VM/ 中的文件权限:
-rw-rw-r-- 1 chris chris 93 Jan 3 14:15 Fileserver.README -rwx------ 1 chris chris 334 Nov 21 09:20 installFileserver -rwx------ 1 chris chris 332 Feb 20 08:21 installVPNServer -rwx------ 1 chris chris 331 Nov 21 09:20 installWebserver -rw-rw-rw- 1 chris chris 795 Jan 24 13:10 README.txt -rw-rw-r-- 1 libvirt-qemu kvm 912261120 Jul 31 2018 ubuntu-16.04.iso
类似问题:
我已尝试过...
1)将 iso 文件“chown”给用户“chris”
2)将文件移动到/tmp目录
3)Sudo -s 并执行脚本。
4)重新下载 iso 映像。
答案1
$HOME 权限可能过于严格。ISO 仅具有可读性是不够的 - 每个父目录也需要具有“x”权限。
ApArmor 或 SELinux 可能拒绝访问 $HOME 和/或 /tmp 下的文件
由于您使用的是特权 libvirtd,因此建议的方法是将 ISO 映像也与磁盘一起保存在 /var/lib/libvirt/images/ 下。
答案2
有一个类似的情况,virt-install
失败了:
Starting install...
Retrieving file vmlinuz... | 9.4 MB 00:00:00
Retrieving file initrd.img... | 72 MB 00:00:00
ERROR internal error: process exited while connecting to monitor
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start mymachine.local
otherwise, please restart your installation.
在胡闹了一阵之后,我注意到创建的机器发生了 OOM,在使用 查看机器状态后发现了这一点dmesg
。
由于我配置了大页面来占用几乎所有的虚拟机管理程序内存,以便机器获得快速的保留空间,所以我需要添加--memorybacking hugepages=yes
到我的virt-install
命令中。
答案3
virt-install 在 qemu 用户下运行。您会发现 ISO 文件上的用户和组已更改为 qemu。此用户无权查看 /home/chris 及其子文件夹。您应该将 iso 复制到 /tmp 之类的文件夹,这样应该可以解决问题。