码迷,mamicode.com
首页 > Web开发 > 详细

Glance - 通过libguestfs挂载虚拟机image

时间:2014-10-23 06:57:19      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:libguestfs

libguestfs简介

libguestfs is a set of tools for accessing and modifying virtual machine (VM) disk images.

libguestfs官网介绍:http://libguestfs.org/


libguestfs使用

一、命令行工具

yum install -y libguestfs libguestfs-tools  # 安装命令行工具包,命令是guestfish,raw和qcow2格式的镜像guestfish都可以编辑
[root@compute5 Downloads]guestfish -a centos6.5.img -i  # -a:是attach  -i:会自动mount镜像里的分区
[root@compute5 Downloads]# guestfish -a centos6.5.img   # 不使用-i,要手动挂载分区
Welcome to guestfish, the libguestfs filesystem interactive shell for
editing virtual machine filesystems.
Type: ‘help‘ for help on commands
      ‘man‘ to read the manual
      ‘quit‘ to quit the shell
><fs> run 
><fs> mount /dev/sda2 /
# 你可以使用这样的shell script来编辑某个文件
[root@compute5 Downloads]# guestfish -a centos6.5-test-2.img -i << eof
rm /etc/udev/rules.d/70-persistent-net.rules 
eof
guestfish下没有类似sed的工具,不过提供了类似augtool的命令


二、python调用

yum install -y libguestfs python-libguestfs  # 安装python库
# 这里举个例子:往虚拟机镜像里上传一个文件
[root@compute5 Downloads]# vim test.py 
#!/usr/bin/env python
import guestfs               # python加载guestfs库
g = guestfs.GuestFS(python_return_dict=True)         # 创建一个GuestFS实例
g.add_drive_opts("centos6.5-test-2.img",format="qcow2",readonly=0)  # 挂载img到libguestfs
g.launch()        # 后台运行libguestfs
partitions = g.list_partitions()             #  获取所有分区
g.mount(partitions[1],‘/‘)                    # 第二个分区挂载到根目录
g.upload("/etc/resolv.conf", "/etc/resolv.conf")     # g.upload("src文件", "dst文件"),看不懂,英文没学好
g.close()        # 虽然会自动close,还是再手工close最保险


参考链接

http://libguestfs.org/guestfs-python.3.html

本文出自 “the-way-to-cloud” 博客,请务必保留此出处http://iceyao.blog.51cto.com/9426658/1566915

Glance - 通过libguestfs挂载虚拟机image

标签:libguestfs

原文地址:http://iceyao.blog.51cto.com/9426658/1566915

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!