假设由于虚拟机里的大量配置文件损坏了,导致虚拟机不能启动。那么你要访问和修复那些配置文件会非常困难,尤其是因为虚拟机镜像文件的创建没有一个标准。在本文中,TechTarget中国的特约专家Sander van Vugt将介绍使用libguestfs搞定Linux虚拟机文件系统的访问。 libguestfs是一个目录,帮助你访问和修改虚拟机磁盘镜像。
你可以轻松安装此软件到Fedora 11或更高版本,二进制软件包可以用于其它Linux版本。安装后(运行YUM和在Fedora 11上安装’*guestfs*’ guestfish),你有大量命令可用,帮助你管理虚拟机镜像……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
假设由于虚拟机里的大量配置文件损坏了,导致虚拟机不能启动。那么你要访问和修复那些配置文件会非常困难,尤其是因为虚拟机镜像文件的创建没有一个标准。在本文中,TechTarget中国的特约专家Sander van Vugt将介绍使用libguestfs搞定Linux虚拟机文件系统的访问。
libguestfs是一个目录,帮助你访问和修改虚拟机磁盘镜像。你可以轻松安装此软件到Fedora 11或更高版本,二进制软件包可以用于其它Linux版本。安装后(运行YUM和在Fedora 11上安装'*guestfs*' guestfish),你有大量命令可用,帮助你管理虚拟机镜像文件。
在后端,Libguestfs帮助你访问多数常见的Linux文件系统,如 Ext2/3和4、Btrfs和NTFS。更为重要的是你也能使用它管理多种常见的镜像文件类型,如KVM环境里的qcow2,以及VMware磁盘文件使用的vmdk。
在使用libguestfs时,使用以下命令让镜像文件可访问:
guestfish --ro -i server.img
接下来,将打开libguestfs shell,你将识别到它的<fs>提示符。从这个shell,你能运行任何常见的Linux命令,如lvdisplay命令,显示镜像文件里的逻辑卷,或者其它常见Linux工具,如cat和vi。不过,使用guestfish shell不是唯一的访问方法。相反,你能使用来自主机操作系统的libguestfs命令。其中最有用的是guestmount命令。使用这个命令,FUSE文件系统习惯于从主机操作系统直接访问镜像文件。但从正在运行的虚拟机做这个不太合适,因为可能会在磁盘访问里遇到冲突。例如,如果你想直接在Windows子机上访问文件,可以使用下面的guestmount命令:
guestmount -a windows.img -m /dev/sda1 --ro /mnt
在这个命令中,Windows镜像是作为输入镜像文件的。在这里,第一个硬盘上的第一个分区加载为mnt目录上只读模式。你能删除--ro标记让其加载到read/write模式,但是如果你加载一个处于read/write模式的活动虚拟机的文件系统,你可能面临损坏虚拟机镜像的风险。
除了guestfish和guestmount命令,ibguestfs包还带有许多命令。这些命令多数用于特定任务,如virt-edit,允许你从主机操作系统直接编辑镜像文件。其他有用的命令是virt-win-reg,帮助你输出和合并Windows注册码,而virt-rescue能打开救援模式的镜像文件,因此允许你在镜像文件里做出修改,帮助你让其能再次访问。
Libguestfs代码
这样的高级工具存在问题,你会发现在libguestfs里,命令非常高级和有用,因此很难使用。libguestfs提供了说明书帮助你。通过使用它们,你能按照列表里的步骤执行困难的任务,如tar2vm.sh脚本,帮助你将虚拟机写入原始码。因为它们都是shell脚本,所以能做出修改。
从主机操作系统访问虚拟机子机文件一直很难。Libguestfs使其变得轻松,它提供了各种方法打开虚拟机磁盘文件,不管使用的是什么虚拟化方式创建的虚拟机,或者虚拟机里使用什么文件系统。目前,libguestfs只能用于Fedora和Ubuntu,相信不久之后,我们就能在其他版本里看见它的身影了。
翻译
相关推荐
-
托管OpenStack私有云能够获得支持or单打独斗?
OpenStack私有云托管作为一种服务可以简化企业的部署和运营,并强调了云计算的优势,而非Linux的优化……
-
从零开始构建属于自己的Linux发行版
当你从头开始构建Linux,就可以充分和完整地了解Linux平台。Linux管理员在IT界内更神秘,因为他比其他任何IT专业人员都更了解计算机内部工作。
-
使用Red Hat或Debian包管理器简化Linux管理
Linux软件包管理使用的软件库,它提供了软件包的安装源。Red Hat和Debian的软件包管理器功能类似,但结构上的差异将影响Linux管理。
-
关于apt-get:非Linux管理员应该知道的那些事
Apt-get是广泛应用在Unix和Linux系统中的应用程序管理器,Windows和Linux管理员也可以受益于其功能。