原理和丢失私有密钥时连接到虚拟机(1)是一样的,从镜像创建的虚拟机我们也可以将其挂载到别的机器上,只是需要的命令不同。
##具体步骤
- 关闭你的虚拟机
- 找到你的虚拟机的
id
,类似282d0355-a4db-4467-a70b-4783ac2c7ed6
这样一串数字 - 找到你的虚拟机的宿主机,登录到宿主机上
进入到存放虚拟机文件的目录
cd /var/lib/nova/instances/{id}
这里的
id
就是你上面虚拟机的id
这个目录下的内容是这样的. ├── console.log ├── disk ├── disk.info ├── libvirt.xml
这里的disk文件就是我们要操作的对象
在当前目录下创建sysroot目录
mkdir sysroot
挂载disk文件到本机
guestmount -a disk --rw -m /dev/sda1 sysroot
Note:如果你是ubuntu的系统,guestmount会报错如下:
libguestfs: error: /usr/bin/supermin-helper exited with error status 1. To see full error messages you may need to enable debugging. See http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs
这个时候你可以执行:
update-guestfs-appliance
进入sysroot并把它当作当前进程的根文件系统
cd sysroot; chroot .
现在就可以修改虚拟机的文件啦!
修改完成后,exit退出chroot的环境
exit cd .. #回到上一级目录 umount sysroot
启动虚拟机即可