Пытаюсь сделать скрипт для создания образа инфы (типа формата .dd) на питоне. Первоначально начинался как проект по созданию еще одного шестнадцатеричного отладчика, и его больше заинтересовала попытка получить необработанные данные с диска. что превратилось в желание сначала создать образ диска. В любом случае, я искал около недели или около того и обнаружил, что лучший способ получить информацию с диска на меньших дисках выглядит примерно так:
with file("/dev/sda") as f:
i=file("~/imagingtest.dd", "wb")
i.write(f.read(SIZE))
где размер - это размер диска. Проблема в том, что это, кажется, хорошо известная проблема, попытка использовать большие диски проявляется как (даже в моем случае общий размер 250059350016 байт):
«OverflowError: Python int слишком велик для преобразования в C long»
Есть ли более подходящий способ обойти эту проблему? Поскольку он отлично работает для небольшой флешки, но попытка создать образ диска не удалась.
Я видел упоминание о возможной итерации по размеру сектора (512) по количеству секторов (в моем случае 488397168), однако хотел бы точно проверить, как это сделать так, чтобы это было функциональным.
Заранее спасибо за любую помощь, извините за любое невежество, которое вы легко заметите.
open('/dev/sda', 'rb')
если вы это делаете. Когда вы дойдете до конца устройства,.read(blocksize)
вернет пустую строку. - person Martijn Pieters   schedule 09.06.2013