linux直接挂载虚拟机磁盘镜像文件

一、通过mount加上偏移
首先需要确认下镜像分区开始的偏移:
[cce lang=”bash”]
fdisk -l vm-xp-qa-new.img
[/cce]
这个文件的输出为:

Disk vm-xp-qa-new.img: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = 扇区 of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4dcc4dcc
设备 Boot Start End Blocks Id System
vm-xp-qa-new.img1 * 63 41913584 20956761 7 HPFS/NTFS/exFAT

从这里可以看见,这个windows分区,是从第63个块开始的,每个块的大小是512字节,最后得出的挂载偏移为32256字节。
因此,最终挂载的命令就是:
[cce lang=”bash”]
mount -o loop,offset=32256 -t ntfs vm-xp-qa-new.img /mnt/
[/cce]
这里指定了挂载分区的格式为ntfs,挂载偏移为32256字节。
然后就可以在/mnt目录中看见这个虚拟机磁盘镜像,直接修改里面的文件了。

二、通过映射成loop设备
首先获取最近一个可用的loop设备:
[cce lang=”bash”]
losetup -f –show vm-linux-qa-master.img
[/cce]
这里会输出一个loop设备,如果之前没有映射过,应该是/dev/loop0
然后生成对应的块设备:
[cce lang=”bash”]
kpartx -a /dev/loop0
[/cce]
执行之后,会在/dev/mapper/中多出一个loop0p1文件,也就是刚那个磁盘镜像的分区块文件了(对应硬盘的sda和sda1这样的关系)。
然后就可以直接将/dev/mapper/loop0p1文件mount到指定位置,就可以读写里面的文件了。
清理的时候,除了umount /dev/mapper/loop0p1这个文件的挂载点之外,还要清除loop0的使用:
[cce lang=”bash”]
kpartx -d /dev/loop0
losetup -d /dev/loop0
[/cce]

ps:在gentoo中,losetup应该已经在的,在sys-apps/util-linux这个包中;kpartx由sys-fs/multipath-tools这个包提供,直接emerge即可

转载自:https://coolex.info/blog/385.html

时间: 2024-09-25 21:59:42

linux直接挂载虚拟机磁盘镜像文件的相关文章

关于虚拟机镜像文件(VM image file)和虚拟机磁盘镜像(VM disk image)

问题描述 关于虚拟机镜像文件(VM image file)和虚拟机磁盘镜像(VM disk image) 请教一下各位大神,虚拟机镜像文件里面含有些什么东西?他是封装整个系统的一个镜像文件,那么他的存在方式是以文档的形式吗?(我的意思是文本文档),还是不是,虚拟机磁盘镜像文件呢? 我想对虚拟机磁盘镜像去重的话,我要考虑虚拟机磁盘镜像是一个文本文档还是考虑他是一个文件夹,里面含有视频,音频,文本,图片呢? 请各位大神指路~谢谢 解决方案 disk image(磁盘镜像)

linux自动挂载是什么意思?

问题描述 linux自动挂载是什么意思? 请问linux自动挂载是什么意思? 小弟初学linux,希望各位大牛回答可以详细一点~ 解决方案 挂载就是加载的意思吧! 就像挂载设备,U盘,ios,光驱,然后可以像硬盘一样的打开 解决方案二: 在linux下面没有分区的概念,它把所有的设备包括磁盘识别成一个块设备文件,在/dev/下面有各种各样的设备接口文件,将磁盘对应的设备接口文件挂载到文件夹后,就可以操作这个设备. 这样说吧,在DOS/Windows中,C盘和D盘是并列的最顶级目录,但Linux中

Linux自动挂载文件/etc/fstab

Linux自动挂载文件/etc/fstab 关于linux开机之后自动加载挂载的分区,这块,涉及到的文件是/etc/fstab文件 关于这个文件的描述说明如下: 要求: 1)根目录/必须载入,而且要先于其他载入点被载入 2)其他载入点必须为已建立的目录 3)若进行卸载,必须先将工作目录移到载入点及其子目录之外 下面是/etc/fstab的实例 # This file is edited by fstab-sync - see 'man fstab-sync' for details LABEL=

Virtualbox主机和虚拟机之间文件夹共享及双向拷贝(Windows<->Windows, Windows<->Linux)_VirtualBox

最近学习Virtualbox的一些知识,记录下,Virtualbox下如何实现主机和虚拟机之间文件夹共享及双向拷贝 关于双向拷贝 1.设置虚拟机为"双向"共享粘贴 有的人反应只要设置双向粘贴就可以,但是我的不行,我还需要再给虚拟机安装一下增强功能.需要启动虚拟机,安装菜单项"设备"中的最后一项. 安装完增强功能,注意要重启虚拟机,双向拷贝才被启用. 关于文件夹共享 情况一: Host操作系统:Windows 7 Guest操作系统:Windows Server 1.

Linux下挂载ntfs格式移动硬盘

工作中遇到linux系统 Red Hat Enterprise5.7 挂载希捷ntfs格式移动硬盘,会跳出一个ERROR提示框:The volume 'EAGET-NQH'user the ntfs file system which is not supported by your system. 其中'EAGET-NQH'为我的移动硬盘名. 查找资料发现linux支持ntfs格式分区需要安装ntfs-3g插件,下载安装即可, 什么是NTFS-3G NTFS-3G是一个开源软件,支持在Linu

使用extundelete恢复LINUX下ext4误删的文件

最近看到群里提到如何恢复LINUX下ext4误删的文件,之前听说过ext3分区恢复工具ext3grep,但是恢复ext4一直没有概念,而且目前线上的系统分区格式都是ext4,SO网上找到了一款叫extundelete的文件恢复工具,该工具最给力的一点就是支持ext3/ext4双格式分区恢复,对我们运维攻城狮算是一款神器级别的软件,这里整理了如下文档,供大家参考. 虚拟机:        vmware workstation 9.0.2 操作系统:      CentOS6.3 x64 extun

Linux 系统挂载数据盘

  适用系统:Linux(Redhat , CentOS,Debian,Ubuntu) * Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作. 下面的操作将会把数据盘划分为一个分区来使用. 1.查看数据盘 在没有分区和格式化数据盘之前,使用 "df –h"命令,是无法看到数据盘的,可以使用"fdisk -l"命令查看.如下图: 友情提示:若您执行fdisk -l命令,发现没有 /dev/xvdb 标明您的云服务无数据盘,那么您无需进

linux中挂载新硬盘到目录,并开机自动挂载例子

 挂载硬盘对于linux系统来讲是一个比较常见的问题了,下面我们来看看linux中挂载新硬盘到目录,并开机自动挂载例子紧,     今天,在整理图片时,发现根目录硬盘空间已经所剩无几了,而网站和所有相关文件主要放置在根下data目录(/data)里,但/home下是有空间,而又不想把文件放到/home下面去,只有再加一个新硬盘,对以后/data目录的文件管理也比较好. 那么就先关掉主机,再加上新硬盘(其它电脑使用过的500G硬盘),插上后再启动电脑. 接下来,就开始工作了: 1. 查看硬盘信息:

linux,挂载自建的文件系统怎么没有什么变化?是不是进入挂载点就意味着切还了新的文件系统?

问题描述 linux,挂载自建的文件系统怎么没有什么变化?是不是进入挂载点就意味着切还了新的文件系统? 我挂载了自己建立RAID的文件系统,/dev/md1 (raid 5);reboot之后,没有感到和之前有有什么变化啊?怎么切换到新的/dev/md1系统呢? 是不是进入挂载点,就意味进入新的文件系统呢? 解决方案 要先格式化 然后挂载 然后进入挂载点 保存在挂载点的文件就是保存在你的raid盘了 解决方案二: Linux文件系统简介LInux Centos 支持NTFS文件系统加载的方法Li