先做记录用,后续继续补充,整理下之前用到过的一些镜像转换、编辑工具,以及一些镜像如何打包gdbserver进行调试(打包gdb的内容移到另一篇了)等,常见情况下其中一两款工具就可以满足需求了,我也是少数情况下某个工具出现问题或者特定环境下换用其它的。
vmdk、qcow2、img、vhdx(vhd)等格式互转工具
starwind
Windows平台上运行,基本上常见的格式也都支持,运行傻瓜化,直接选择源文件设定格式导出即可。
qemu-img
一般随Qemu一起安装的,Win及Linux都可用,使用命令:
qemu-img convert -f qcow2 file.qcow2 -O vmdk file.vmdk
virtualbox:
VBoxManage.exe convertfromraw disk.img disk.vmdk –format VMDK
镜像编辑加载工具
guestmount
ubuntu系统里guestmount是包含在libguestfs-tools里的。
guestmount -a xyz.vmdk -m /dev/sda3 –ro /mnt/vmdk
或者尝试自动检测格式:
guestmount -a xyz.vmdk -i –ro /mnt/vmdk
如果需要设置成可读写加载,可以使用 –rw 选项。
winhex
最近惊奇的发现最新版本可以识别LVM分区了,使用也比较简单,直接打开IMG格式的磁盘文件,设置目标镜像为磁盘即可,只不过winhex编辑文件不够方便。
qemu-nhd
一般常见的磁盘镜像格式通过上述方式就可以加载,但是遇到含有lvm卷的镜像,一般通过qemu-nhd配合mount的方式来加载。
sudo modprobe nbd max_part=16
lsmod | grep nbd
sudo vgscan
sudo lvscan
sudo pvscan
sudo fdisk -l /dev/nbd0
sudo qemu-nbd -c /dev/nbd0 .img -f raw (-f指定源镜像格式)
ls -l /dev/mapper/
mount /dev/mapper/rootvg- ./test/
sudo qemu-nbd -d /dev/nbd0 (-c 参数为connect,-d为断开连接)
sudo umount /dev/mapper/rootvg-* test/
winmount
其实这个不怎样常用,只是自己比较喜欢,以前经常使用的压缩软件,由大神刘涛涛出品的,可惜很久就不更新了,这个软件可以直接挂载VMDK格式的Windows磁盘分区。。。操作一些windows的vm比较方便。
奇形怪状的玩意
加密的LVM2分区
这个真是活久见,类似于windows的bitlock驱动器加密。
https://www.nowherelan.com/2011/04/18/how-to-mount-an-encrypted-lvm-partition/
http://blog.gnu-designs.com/solved-howto-mount-an-external-encrypted-luks-volume-under-linux/
参考
https://stackoverflow.com/questions/22327728/mounting-vmdk-disk-image
https://www.jianshu.com/p/6b977c02bfb2