kvm 的guest与host共享文件
来源:互联网 发布:网络大专快速本科 编辑:程序博客网 时间:2024/05/22 06:54
Linux kernel最早从2.6.23支持paravirt-ops接口,也就是所谓的半虚拟化。本文简单介绍一下利用libvirt的功能通过virtio的方式将host的一块local block device 'passthru'到guest os中。
方式1,通过KVM虚拟机的xml配置文件指定,下面是一个虚机xml文件的片段,用来将host的/dev/sda4这一块设备passthru到guest os中:
<domain>
...
<disk type='block' device='disk'>
<source dev='/dev/sda4'/>
<target dev='vdb' bus='virtio'/>
</disk>
</domain>
实验可以用
在virsh命令行中,通过"create '/etc/libvirt/qemu/odm.xml‘"来启动虚机odm,起来之后在odm的guest os中会发现多出了一个块设备/dev/vdb,可以正常mount该块设备,里面的数据应该同host中看到的完全一样。
方式2,可以动态挂载一个host上的块设备到一个正在running的VM中,比如:
virsh# attach-disk odm /dev/sda4 vdb
在虚拟机中mount后会将原盘格式化
方式3,通过libvirt API的方式,有两个API分别用来实现挂载和卸载操作:
virDomainAttachDevice(domain, xml)以及virDomainDetachDevice()
libgustfs
libgustfs 是一个想要一统天下的虚拟机镜像查看/修改工具, 号称支持几乎所有 类型的虚拟机镜像, 在它面前 qemu-nbd 弱爆了. 分析它显然超出了这篇文档的范围. 过后将会专门写一篇文章来分析它, 以下简单的提供一种利用 libguestfs 来访问 虚拟机镜像的方法.
首先, 安装它
# 在 Gentoo中, 使用 $ sudo emerge libguestfs # 在 redhat 家族的发行版中, 使用 $ yum install libguestfs libguestfs-tools*
然后使用以下指令启动 guestfs 的命令行,
# --rw 参数表示挂载后对镜像具有读写权限, 可能有点慢, 需要 # 等待, 注意对运行中的虚拟机, 有必要使用 --ro 只读挂载 $ guestfish --rw -i -a path/to/image/file # 创建一个临时挂载点, guestfs 的命令行接口可以执行命令 # 命令前面加 ! 就可以了 $ !mkdir /tmp/mnt # 导出镜像文件到 /tmp/mnt, 导出后需要执行 mount-local-run $ mount-local /tmp/mnt # 进入 mount loop, 类似于 glib 的 g_main_loop_run # 卸载镜像后这个 loop 自动结束 $ mount-local-run
打开另外一个终端, 在 /tmp/mnt 里面就可以看到导出的文件了, 由于是读写方式的挂载, 可以在里面像在本地一样的读写文件, 完成后 使用下面指令卸载
$ fusermount -u /tmp/mnt
执行后, 上面的 loop 就会结束
启动虚拟机后, 所有的更改都会生效.
- kvm 的guest与host共享文件
- virtualBox guest与host共享文件
- host与guest共享
- kvm:qemu-kvm 用rdesktop实现共享Host的文件
- Windows host与VirtualBox中linux guest通过数据空间共享文件
- XP(host)与virtualbox中的Fedora 14(guest)Linux共享文件方法
- virtualbox文件共享ubuntu为host机器,win7为guest
- VM Guest与Host之间的通信
- 实现VirtualBox中的(Guest OS)Mac和主机(Host OS)Win7之间的文件和文件夹共享
- Windows主机(Host)下Virtualbox与Ubuntu(Guest)共享文件夹
- 安装VirtualBox Guest additions 实现虚拟机与主机文件共享
- ubuntu vm与windows host共享文件
- KVM中Guest OS的调度执行
- kvm虚拟化之guest镜像文件的挂载
- 在windows2003 host+Fedora6 guest(vmware)共享上网
- VirtualBox共享文件夹设置(host:win7; guest:Ubuntu)
- VirtualBox共享文件夹设置(host:win7; guest:Ubuntu) .
- VMware的Guest与Host进行通信的三种方式
- 自己动手写编译器、链接器章节划分
- memcache常见现象(一)雪崩现象
- 网络编程——第三篇 HTTP应用编程(下)
- The Swift Programming Language--语言指南--闭包
- GIS开源库shapeLib的使用方法
- kvm 的guest与host共享文件
- sizeof 几个不被注意的
- Web前端之复选框选中属性
- hdu1422 重温世界杯 (dp)
- poi从excel中读取父子关系型(树形)数据结构到数据库
- log4j:WARN Please initialize the log4j system properly解决办法
- Qt的setMouseTracking使用
- jion优化原理二
- R student score