天天看点

xen虚拟化实战系列(十一)之xen虚拟机磁盘文件挂载

xen虚拟化实战系列文章列表

<a href="http://koumm.blog.51cto.com/703525/1286408">xen虚拟化实战系列(七)之xen虚拟机VNC访问配置</a>

<a href="http://koumm.blog.51cto.com/703525/1286477">xen虚拟化实战系列(十一)之xen虚拟机磁盘文件挂载</a>

<a href="http://koumm.blog.51cto.com/703525/1286643">xen虚拟化实战系列(十二)之xen虚拟机高可用之在线迁移</a>

xen虚拟化实战系列(十三)之xen虚拟机集中管理之convirt

大家知道xen虚拟机使用最多的是虚拟磁盘文件来充当虚拟机磁盘,本文实战xen虚拟机文件的挂载,从而读取,修改里面的文件,满足维护要求。

通常有如下场景,本文出自:http://koumm.blog.51cto.com

(1)在一个没有xen虚拟化环境的服务器上拿到了一个很重要的xen虚拟机的磁盘,需要拷贝到里面一个很重要的文件,那么就可以采用本文方式拿到重要文件。

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967496qu5f.png"></a>

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967511LBok.png"></a>

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_137796752157GP.png"></a>

通过fdisk命令可以查看虚拟机磁盘文件的分区情况,本文虚拟机是先分一个/boot分区,剩下的空间创建一个LVM卷,然后在LVM卷中创建了swap与/ 根分区。这里可以看到一个普通分区就是/boot分区,一个LVM卷就是lvm逻辑,分区情况也就了解清楚了。

挂载虚拟磁盘文件需要用到一个kpartx命令,kpartx命令也可以查看虚拟磁盘文件分区结构,与fdisk命令一致。

kpartx命令原理就是将虚拟磁盘文件与本地系统上的loop设备文件进行映射,然后映射的loop设备文件进行分区挂载访问与数据的处理。

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967540YVpt.png"></a>

(1)  模拟查看映射,非真实映射

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_13779675434n74.png"></a>

(2) 开始映射

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967546FaNV.png"></a>

映射设备文件位置在/dev/mapper/loop0p1,/dev/mapper/loop0p2

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967549IbrJ.png"></a>

这两个文件,第一个/dev/mapper/loop0p1是一个普通linux分区,/dev/mapper/loop0p2是一个LVM逻辑卷,需要通过不同方式进行处理。下面分别根据场景进行处理。

根据前面的分析,第一个/dev/mapper/loop0p1是一个普通linux分区,也就是/boot分区,该分区存有grub启动配置文件。我们可以通过修改/boot/grub/grub.conf文件中的参数,使用虚拟机进行单用户模式,修改密码。

(1) 挂载设备文件

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967556Xz0W.png"></a>

(2) 成功挂载,可以成功查看到内容

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967562tZnh.png"></a>

(3) 修改grub/grub.conf文件,修改如下内容,使用系统启动时进入单用户模式。

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967580AxMw.png"></a>

(4) 取消mount删除映射

# umount /mnt

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967591Vxkv.png"></a>

(5) 开机测试

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967593ga5h.png"></a>

控制台进入虚拟机,成功进入单用户模式,并修改密码。

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_13779676121pnN.png"></a>

还原grub.conf文件

sh-3.2# vi /boot/grub/grub.conf 

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967628kMYs.png"></a>

取消单用户进行配置,重启。

至时挂载普通分区文件,读取,修改文件示例成功。

根据前面的分析,第一个/dev/mapper/loop0p1是一个普通linux分区,也就是/boot分区,第二个是一个包括LVM的逻辑卷,那么下面就采用lvm的方式进行处理。

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967630HZqI.png"></a>

(1) 扫描物理卷

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967638ikZK.png"></a>

可以看到vg卷组,执行成功。

(2) 激活扫描到的vg卷组,激活后就可以使用了。

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967647s6ZK.png"></a>

(3) 激活后lvm逻辑卷的位置在/dev/mapper/下,如下图标标所示。vg-swap是swap,vg-root是根分区。

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_137796765476rk.png"></a>

(4) 挂载根分区到/mnt。

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_13779676611RFh.png"></a>

# cd /mnt

成功读取网卡配置文件。

<a href="http://koumm.blog.51cto.com/attachment/201308/31/703525_1377967670LYoK.png"></a>

到此xen虚拟机磁盘文件挂载整个内容完毕。在实际生产与测试环境中可以通过以上方式完成一些任务。

说明:linux技术博大精深,挂载虚拟磁盘文件分区也只是以上方式,还有方法,这里就不多介绍了。over…

本文转自 koumm 51CTO博客,原文链接:http://blog.51cto.com/koumm/1286477,如需转载请自行联系原作者

继续阅读