0%

2020-02-24-常见格式固件镜像转换编辑工具

先做记录用,后续继续补充,整理下之前用到过的一些镜像转换、编辑工具,以及一些镜像如何打包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