루프 장치에 ms-dos 파티션 테이블을 추가하는 방법은 무엇입니까?

루프 장치에 ms-dos 파티션 테이블을 추가하는 방법은 무엇입니까?

최근에 디스크 파티션에서 dd 작업을 수행했습니다. 가상 머신에서 디스크로 사용하고 싶습니다. 디스크에 파티션 테이블이 없기 때문에 할 수 없습니다.

루프 장치에 대한 파티션 테이블을 가질 수 있습니까? 어떻게?

분명히 비슷한 문제가 여기에 존재합니다.모든 데이터를 복사하지 않고 이 작업을 수행하는 방법을 아는 사람이 있다면 좋을 것입니다.

내가 해냈어 dd if=/dev/sda1 of=myfile

sda 디스크가 너무 커서 전체 sda 디스크를 복사할 수 없습니다.

답변1

원래 드라이브가 아직 남아 있는 경우 이미지를 삭제하고 다음 명령을 사용하여 다시 생성하십시오.

dd if=/dev/sda1 of=myfile bs=512 seek=2048

이렇게 하면 나중에 파티션 테이블을 추가하기 위해 초기에 일반적으로 1MiB의 공간이 남습니다.

사용되지 않은 청크에 모든 정크가 포함된 전체 원시 이미지 파일 대신 이미지에 qcow2를 사용하는 것을 고려할 수도 있습니다.

답변2

이 같은?

sda1_size=$((`blkdev --getsize64 /dev/sda1`/1024/1024+1))
dd if=/dev/sda of=myfile bs=1M count=$(($sda1_size+1))

전체 sda에 대해 dd를 시작하되 첫 번째 파티션을 덮어쓸 때까지만 복사합니다. 이는 개수에 +1MiB를 추가하면 달성됩니다. 이는 sda1이 디스크의 맨 처음에 있다고 가정합니다. 1MiB보다 큰 간격이 있는 경우 위에 +1을 추가하세요.

수학 외에도 파티션 프로그램을 살펴보고 파티션의 MiB 크기를 확인한 다음 조금 더 넉넉하게 추가할 수 있습니다.

관련 정보