파이썬에서 디스크 이미징 (예 : .dd 형식)을위한 스크립트를 만들려고합니다. 원래는 다른 16 진 디버거를 얻기 위해 프로젝트로 시작했는데 드라이브에서 원시 데이터를 얻는 데 좀 더 관심이있었습니다. 처음에는 드라이브를 이미지 할 수 있기를 바 랐습니다. 크기가 디스크 크기 인과파이썬 디스크 이미징
with file("/dev/sda") as f:
i=file("~/imagingtest.dd", "wb")
i.write(f.read(SIZE))
: 어쨌든, 나는 약 일주일 정도 둘러보고 및 발견 한 작은 드라이브에있는 드라이브에서 정보를 얻을 수있는 가장 좋은 방법은 뭔가를 것으로 보인다. 큰 디스크를 사용하려고하는 문제는 잘 알려진 문제 인 것 같습니다. 심지어 내 경우에는 총 크기가 250059350016 바이트입니다.
"OverflowError : C long으로 변환하기에 너무 큰 Python int"
이 문제를 해결하는 더 적절한 방법이 있습니까? 작은 플래시 드라이브에서는 문제가 없지만 드라이브를 이미지화하려고하면 오류가 발생합니다.
필자는 섹터 수 (5128)에 대해 반복적으로 언급 한 것을 보았지만 (제 경우에는 488397168) 기능적인 방식으로이를 정확하게 수행하는 방법을 확인하고 싶습니다.
어떤 도움을 주셔서 미리 감사드립니다. 아무런 이상한 점이 있으면 죄송합니다. 쉽게 알 수 있습니다.
블록의 데이터를 읽기를? 디바이스를 바이너리 모드로 열고 싶다면,'open ('/ dev/sda', 'rb')'라고 쓰면된다. 장치의 끝에 도달하면'.read (blocksize)'는 빈 문자열을 반환 할 것이다. –