设为首页 收藏本站
查看: 1257|回复: 0

[经验分享] 挂载KVM Guest操作系统磁盘

[复制链接]

尚未签到

发表于 2015-4-10 13:06:13 | 显示全部楼层 |阅读模式
  使用虚拟机时, 发现想要修改虚拟机中的文件非常麻烦, 需要启动虚拟机, 然后再登录进去修改.
  对于已经关闭的虚拟机, 为了修改一个文件而启动, 非常耽误时间.
  对于一个无法启动的虚拟机(比如启动文件损坏), 则束手无策.
  
  因此, 掌握在主机中挂载 Guest 的操作系统磁盘, 并修改其中的内容的方法在某些时候会非常有用.
  

1. 挂载 Guest 操作系统磁盘的方法
  挂载 Guest 操作系统磁盘的方法主要有以下3种:


  • guestfish : 支持lvm, 速度较慢
  • lomount   : 不支持lvm, 速度快
  • kpartx    : 支持lvm, 速度快
  
  使用上述3种工具之前, 我先安装了2个 kvm 虚拟机, 都是debian7.6 x86_64, 一个是普通分区, 一个是LVM分区.
  2个系统的磁盘在默认路径中



root@debian-113:~# ll /var/lib/libvirt/images
total 16777320
-rw------- 1 root root 8589934592 Sep 18 12:48 debian7.6.img
-rw------- 1 root root 8589934592 Sep 18 13:08 debian7.6-lvm.img
  

2. 方法1 - guestfish

2.1 使用 guestfish 对 普通Guest的磁盘进行一些基本的操作



root@debian-113:~# apt-get install guestfish             mount /dev/vda1 /
> ls /
bin
boot
dev
etc
home
initrd.img
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
selinux
srv
sys
tmp
usr
var
vmlinuz
# 将 Guest上的 hostname 文件下载到 Host的 /home/from-guest
> download /etc/hostname /home/from-guest
# 卸载Guest磁盘, 退出 guestfish
> mounts
/dev/vda1
> umount /dev/vda1
> quit
  
  *注1* guestfish中, launch时出现错误的解决方法:



> launch
febootstrap-supermin-helper: ext2: parent directory not found: /lib: File not found by ext2_lookup
libguestfs: error: external command failed, see earlier error messages
> quit
root@debian:~# update-guestfs-appliance
  

2.2 验证 guestfish 对普通磁盘的修改结果
  1. HOST - 验证是否有 Guest的hostname文件, 并且内容正确?



root@debian-113:~# cat /home/from-guest       mounts
/dev/debian/home
> umount /dev/debian/home
> lvs
/dev/debian/home
/dev/debian/root
/dev/debian/swap_1
> mount /dev/debian/root /
> ls /
bin
boot
dev
etc
home
initrd.img
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
selinux
srv
sys
tmp
usr
var
vmlinuz
# 将 Guest上的 hostname 文件下载到 Host的 /home/from-guest-lvm
> download /etc/hostname /home/from-guest-lvm
# 卸载Guest磁盘, 退出 guestfish
> mounts
/dev/debian/root
> umount /dev/debian/root
> quit
  

2.4 验证 guestfish 对LVM磁盘的修改结果
  1. HOST - 验证是否有 Guest的hostname文件, 并且内容正确?



root@debian-113:~# cat /home/from-guest-lvm

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-55680-1-1.html 上篇帖子: KVM 内存 下篇帖子: KVM 动态迁移
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表