对于某些项目,我需要具有原始磁盘映像的 QEMU/KVM 虚拟机。
所以我创建了这个原始磁盘映像,就像
dd if=/dev/zero of=~/disk.img bs=1M count=3092
并获得了 3 Gb 的空间。
virt-manager
然后我使用我的普通帐户在 Ubuntu 16.04 LTS 上的 Virtual Machine Manager ( ) 中设置了新的虚拟机。所以我已经将 Ubuntu 从mini.iso安装到~/disk.img中。我的用户是libvirtd
组的成员。当虚拟磁盘映像位于我的主文件夹中时,我可以启动 VM。
然后我将此文件移动到以读写方式安装的外部 FAT32 ( vfat ) 介质中。所以它位于/media/username/FLASH/disk.img内。我在虚拟机的虚拟磁盘设置部分指定了这个路径。
但是当我尝试启动这台机器时,我收到以下错误消息:
启动域时出错:内部错误:连接到监视器时进程退出:2020-01-22T21:45:20.221697Z qemu-system-x86_64: -drive file=/media/username/FLASH/disk.img,format=raw,if =none,id=drive-ide0-0-1:无法打开“/media/username/FLASH/disk.img”:权限被拒绝
即使我使用 root 运行虚拟机管理器,此消息仍然存在sudo virt-manager
。
该文件的权限如下:
$ ls -al /media/username/FLASH/disk.img -rw-r--r-- 1 username username 3221225472 Jan 23 00:18 /media/username/FLASH/disk.img
我还尝试使用创建符号链接ln -s /media/username/FLASH/disk.img ~/disk.img
并将机器设置为使用后一个磁盘路径。但它也不起作用。
如何从位于外部存储上的磁盘映像启动 QEMU/KVM 虚拟机?
从拇指驱动器运行虚拟机时,我遇到了这个权限问题。
我遇到的问题是我的系统(Fedora 27)自动将新驱动器(外部硬盘驱动器、USB、SD)安装到
/run/media/(username)/(device name)
(在您的系统上是 /media/username/....)无论出于何种原因,这都会导致权限问题。默认情况下,它是用
fmask=0022
and安装的dmask=0022
(man mount
用于详细信息)。要解决此问题,我们需要以 root 身份从该位置卸载驱动器,然后将其挂载到/mnt
. 在下面的示例中,拇指驱动器是/dev/sdc1
. 我们需要重新安装它fmask=0011
以允许所有用户和组的写访问。之后,我只是确保有从 qcow2 驱动器的原始位置到新位置的符号链接(仍以 root 身份)
所以如果你的虚拟机被命名为 MyVM
一旦我看到我的虚拟机现在正在工作,我编辑
/etc/fstab
以自动将驱动器安装在/mnt
. 文件夹和 qcow2 驱动器归我的标准用户帐户和组所有。我相信有更好的方法可以做到这一点,但这对我有用。