dd, 장치가 더 작은 드라이브에 복제되었으며 장치에 남은 공간이 없습니다.

dd, 장치가 더 작은 드라이브에 복제되었으며 장치에 남은 공간이 없습니다.

파티션 및 장치 복제를 용이하게 하기 위해 dd, cat 및 Clonezilla를 사용하는 것과 관련된 많은 질문, 답변 및 가이드를 보았습니다. 이러한 논의를 계속하기보다는 dd이 기사에서 행동에 대해 매우 집중적인 질문을 제기하고 싶습니다.

USB에서 부팅하여 Ubuntu 18.04 LTS 라이브를 사용하고 있습니다. Windows 7(/dev/sda)을 실행하는 500GB 하드 드라이브가 있습니다. 파티션 크기를 조정했는데 할당되지 않은 공간이 420GB를 조금 넘었습니다. 내 목표는 부팅 테이블과 파티션을 120GB SSD(/dev/sdb)에 백업하는 것입니다. SSD에는 파티션이 없으며 110GB가 할당되지 않은 것으로 표시됩니다.

sudo dd if=/dev/sda of=/dev/sdb"장치에 남은 공간이 없습니다"라는 메시지와 함께 실패가 발생합니다. gparted를 사용하여 파티션을 확인하면서 /dev/sdb에 동일한 파티션, 레이블, 크기 및 사용되지 않은 파티션이 포함되어 있음을 확인했습니다. 유일하게 눈에 띄는 차이점은 할당되지 않은 공간입니다.

SSD에서 Windows를 부팅할 수 있지만 여전히 일부 dd동작 관련 문제가 있습니다.

  • dd할당되지 않은 장치 콘텐츠를 복사하려고 하시나요 ?
  • dd일련의 작업이 있습니까? (예: 파티션 1->99, 기타 드라이브 블록)
  • 지금까지 이 Windows 드라이브를 즉시 사용할 수 있을 만큼 운이 좋았습니까? 드라이브에 콘텐츠가 없다는 사실에 제가 너무 편집증적인 것인가요?

그럼에도 불구하고 나는 가까운 미래에 하드 드라이브를 유지할 계획입니다.

답변1

dd디스크의 파티션이나 다른 구조에 대해 아무것도 모릅니다. 디스크의 "할당된" 부분이나 "할당되지 않은" 부분을 인식하지 못합니다. dd의 관점 에서 보면 매개변수로 주어진 장치는 일련의 블록으로 구성됩니다. 따라서 실행하면 dd if=/dev/sda of=/dev/sdb모든 블록을 읽 거나 오류가 발생할 때 까지 dd처음부터 /dev/sda해당 번호가 매겨진 블록까지 블록을 복사합니다. 귀하의 예에서는 크기가 보다 작 으므로 "장치에 남은 공간이 없습니다"(위)라는 오류 메시지와 함께 종료 됩니다 ./dev/sdb/dev/sda/dev/sdb/dev/sdadd/dev/sdb

답변2

Johan Myréen은 귀하의 접근 방식이 오류로 이어질 수 있는 이유를 설득력 있게 설명합니다. 드라이브를 더 작은 드라이브에 복사하는 데는 두 가지 해결 방법이 있습니다 dd.

  • mikeserv가 제안한 대로 전체 장치(/dev/sda)를 복사하는 대신 /dev/sda1과 같이 관심 있는 데이터가 포함된 특정 파티션만 복사할 수 있습니다. 여기에는 몇 가지 단점이 있습니다. 어떤 파티션에 데이터가 포함되어 있는지 알아야 하며, 원래 드라이브를 지우고 복구하려는 경우 먼저 원래 파티션 구조를 다시 만들어야 합니다(이상적으로는 모양을 기록해 두는 것이 좋습니다). 그런 다음 특정 파티션을 복원하십시오. (둘 중 하나는 오류가 발생하기 쉬울 수 있습니다.) SSD에서 Windows를 실행할 계획이라면 아마도 이것이 최선의 선택일 것입니다. (Windows는 때때로 하드웨어 변경에 반대하고 다시 설치하고 싶어하지만 분명히 여기서는 문제가 되지 않습니다. 사례).
  • 드라이브 내용을 압축 형식으로 저장해도 괜찮다면 다음과 같이 시도해 볼 수 있습니다 sudo dd if=/dev/sda bs=1M | gzip > /path/to/mounted/backup-drive/sda_backup.gz(백업 파일이 사용자가 쓸 수 없는 경우 sudo -i루트 셸을 사용하거나 전체 명령을 다음과 같이 래핑합니다).sudo sh -c '주문하다'bs; 기본 512바이트는 대용량 데이터에는 비효율적이므로 이렇게 설정했습니다 . gzip대신 다른 압축 프로그램을 사용할 수 있습니다. 이는 복구를 사용하여 작동 zcat sda_backup.gz | dd of=/dev/sdx bs=1M하지만 파티션에서 부팅할 수 없으며 설치조차 까다롭습니다(참조이 문제이에 대한 흥미로운 토론은 doug65536의 답변에서도 압축 비율을 향상시키기 위한 "제로 청소"에 대해 논의합니다.

현재 상황의 문제는 파티션 테이블을 큰 드라이브에서 작은 드라이브로 복사했다는 것입니다. 이는 실제로 120GB가 넘는 모든 것에 대해 잘못된 정보를 포함하고 있음을 의미합니다. 하지만 이로 인해 파티션을 부팅하고 사용하는 데 방해가 되지는 않습니다. 이상적이지 않습니다. 이와 같은 작업을 시도하여 파티션 테이블을 복구하고 gparted(다시 복사하는 것보다 훨씬 빠름) 다른 문제가 발생하지 않기를 바라거나 처음부터 시작할 수 있습니다.

관련 정보