尝试在python中制作用于磁盘映像的脚本(例如.dd格式)。最初是作为获得另一个十六进制调试器的项目而开始的,还对尝试从驱动器中获取原始数据有更多的兴趣。这就变成了想要能够首先对驱动器进行映像的方法。无论如何,我已经逛了大约一个星期左右,发现从较小的驱动器上的驱动器中获取信息的最佳方式似乎是这样的:with file("/dev/sda") as f: i=file("~/imagingtest.dd", "wb") i.write(f.read(SIZE))size是磁盘大小。问题是,这似乎是一个众所周知的问题,尝试使用大磁盘显示为(即使在我的情况下,总大小为250059350016字节):“ OverflowError:Python int太大,无法转换为C long”有没有更合适的方法来解决此问题?由于它对于小型闪存驱动器工作正常,但是尝试对驱动器进行映像失败。我已经看到提到可能仅按扇区数(在我的情况下为488397168)按扇区大小(512)进行迭代,但是想确切地验证如何以一种可行的方式执行此操作。在此先感谢您提供的任何帮助,对于您无意中发现的任何不便,我们深表歉意。
2 回答
Helenr
TA贡献1780条经验 获得超4个赞
是的,这就是您应该这样做的方式。尽管您可以根据需要大于扇区大小。
with open("/dev/sda",'rb') as f:
with open("~/imagingtest.dd", "wb") as i:
while True:
if i.write(f.read(512)) == 0:
break
添加回答
举报
0/150
提交
取消