首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在virt-manager中向QEMU/KVM虚拟机添加物理分区。

在virt-manager中向QEMU/KVM虚拟机添加物理分区。
EN

Ask Ubuntu用户
提问于 2017-06-21 02:21:05
回答 2查看 33K关注 0票数 7

我按照这个答案中的说明回答了一个相关问题:向KVM虚拟机添加物理磁盘

VM的.xml文件中产生的代码如下:

代码语言:javascript
复制
<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none'/>
  <source dev='/dev/disk/by-partuuid/d8b63353-34n6-6587-ac07-810dmf36d544'/>
  <target dev='vdb' bus='virtio'/>
  <boot order='2'/>
  <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</disk>

请注意,我是如何将/dev/disk/by-partuuid/d8b63353-34n6-6587-ac07-810dmf36d544用于<source>元素,而不是/dev/sda4

困扰我的是,我的用例是将分区传递给QEMU,而不是磁盘。我在上面安装了Windows 10,安装程序无法识别存储空间,所以我不得不从viostor上加载FedoraProject驱动程序。

Windows安装进行得很好,性能也很好,但是当VM关闭时,主机系统就无法识别分区格式。

我发现有趣的是,Windows -加载了viostor驱动程序--创建了普通磁盘上Windows通常需要的附加分区。换句话说,它在所谓的分区中创建了分区。这不应该是可能的,或者我是这么想的。

/dev/sda4存在于主机中,但不被认为既不是NTFS文件系统(实际上是不可预期的),也不是LVM或LDM (用工具工具测试)。

VM在UEFI模式中使用Q35芯片组正确引导。

问题:我向virt添加分区的过程是正确的,还是应该只对磁盘-而不是对分区进行?另外,我最终得到了什么分区类型或格式?

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2018-04-20 02:53:34

解决方案似乎是将整个块设备(如/dev/sda/dev/disk/by-id/等效的部分)传递给<source dev=''>设置。

这允许Windows安装程序查看现有分区,包括主机中的根分区。

不应发生任何冲突,只要:

  • 您不尝试装入/修改已在主机中挂载的客户端分区;
  • 当VM打开时,您不会从主机挂载/修改来宾当前使用的分区。

关于第一点,在启动VM之前,当然有必要从主机卸载ESP (EFI系统分区)。我首先为此编写了一个脚本,然后以QEMU自动化钩子的形式提出了更好的解决办法。我在https://gitlab.com/ranolfi/rvirtesp提供服务。

酷的是,您也可以通过在主板的启动菜单中选择它的新条目来本地启动虚拟化操作系统,就像在双引导中一样。

我不确定这是否得到了“支持”。但已经使用了将近一年,没有问题。

票数 8
EN

Ask Ubuntu用户

发布于 2021-05-09 16:09:18

如果您想将分区作为原始设备传递,您只需将/dev/sdaX作为原始图像文件名,它将使用它。但是,如果您使用ieg sda1,它将无法理解它是哪个分区,并将此分区视为一个整体磁盘。如果您由于明显的原因(在主机上使用其他/dev/sdaY )而不能将/dev/sda作为源,则可以尝试iscsi。但它也可能使分区被视为整个磁盘。这意味着你看不到你的文件和内容。

要解决这个问题,最好的选择似乎是通过samba共享。另一个选项是映射虚拟磁盘上的分区。另一个选项是共享挂载分区作为文件夹,qemu有此选项.Fedora virtio司机可能就像vmware vmtools一样。

我在virtio网络上使用超过4GB/s速度的ISCSI。但我已经将virbr和virbr-nic0的mtu改为9000,并增加了txqueulen。不用换客人了..。

无论如何,如果您想尝试一下iscsi,请看下面的内容:

首先安装open-iscsi和tgt。

代码语言:javascript
复制
sudo apt-get install open-iscsi tgt

然后配置它

代码语言:javascript
复制
nano /etc/tgt/conf.d/iscsi.conf

将分区名称改为sdb1 (目标名称将有所不同):

代码语言:javascript
复制
<target iqn.2019-11.example.com:lun1>
     # Provided device as an iSCSI target
     backing-store /dev/sdb1                             
     initiator-address 192.168.0.102 
    incominguser iscsi-user password
     outgoinguser iscsi-target secretpass
</target>

然后重新启动服务。

代码语言:javascript
复制
sudo systemctl restart tgt 

那就检查一下

代码语言:javascript
复制
tgtadm --mode target --op show

打开窗口并使用iscsi启动器连接它。Windows将其视为一个内部磁盘,享受高速块访问的乐趣。

如果您添加了NAT nic并将其设置为virtio,安装virtio红帽驱动程序,那么它可能会非常快。不要忘记通过192.168.123.XXX连接,而不是桥接LAN ip。

注意事项:使用测试分区进行第一次测试.iqn必须是a-z或1-9你可以。将密码和密码保留为空白,因为它们可能不接受空格或下划线.

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/927574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档