1

我正在编写一个 Python 程序来在 dd 映像中安装一个分区。

我知道其他地方有代码(例如https://raw.github.com/ox-it/python-libmount/master/libmount/mounting.py)来安装设备或包含文件系统的文件。但是这些解决方案期望文件系统位于文件或设备的开头。

我的文件系统不在文件的开头,而是在确定的偏移量处,因此我需要为指向该分区开头的挂载命令指定偏移量。

libc mount 命令对我来说不清楚。losttup.py 模块也不清楚。

是否可以使用 Python(使用 ctypes + libc mount 命令、losetup.py 或其他解决方案)以确定的偏移量在文件或设备内安装分区?

提前致谢。

4

1 回答 1

4

在linux中,你可以使用 losttup -o

假设您有图像文件 off.img,它的文件系统从偏移 100 字节开始。所以首先你建立一个循环开发:

losetup -o 100 /dev/loop1 off.img

然后你挂载这个循环开发,我们假设它是 ext2 类型:

mount -t ext2 /dev/loop1 ./what_ever_mount_point

如果需要,可以使用 subprocess.Popen 将其包装在 python 代码中。我这里提到的 losttup 是 linux 的一个实用程序,而不是 losttup.py。如果你检查losetup.py,它也支持它的LoopDevice.mount中的偏移,但我没有测试它。

于 2013-12-05T18:44:01.067 回答