내 질문은 dd/harddisk/iso-images의 맥락에서 더 일반적입니다. 자세한 내용은 다음과 같습니다.
/dev/loop1p1
및 으로 마운트된 두 개의 파티션이 포함된 라이브 ISO 이미지가 있고 /dev/loop1p2
끝에 할당되지 않은 빈 공간이 많은 HDD가 있습니다. 또한 USB 드라이브가 연결되어 있고(동일한 이미지가 기록됨) 내용은 /dev/sdb1
, 및 에서 볼 수 있습니다 /dev/sdb2
.
따라서 내 임무는 매우 기본적입니다.
/dev/sdb2
USB(또는 마운트된 iso/dev/loop1p2
)의 파티션을 HDD의 비어 있거나 할당되지 않은 공간에 복제합니다 .
dd
나는 그것이 항상 그렇듯이 앞으로 나아가는 길이라고 믿습니다 .
if=
옆:
dd
전체 디스크( /dev/sdb
) 또는 파티션( /dev/sdb1
등 /dev/sdb2
)을 첫 번째 인수로 허용 하더라도 HDD( )의 if=
나머지 인수는 동질적이어야 하며 결정적인 측면인 것으로 보입니다.of=
/dev/sda
of=
옆:
of=
명령 인수 에 전달하기 위해 HDD 측에 아직 생성된 파티션이 없습니다 dd
. 전체 HDD를 설명 /dev/sda
자로 사용하면 of
HDD의 기존 파티션이 손실되므로 이는 바람직하지 않습니다.
따라서 질문을 다시 말하면 다음과 같습니다.
특정 USB 드라이브를 HDD에 어떻게 복제합니까?
/dev/sdb2
제쳐두고, HDD에 or 의 크기와 "정확한" 크기를 가진 새로운 빈 파티션을 만들고 /dev/loop1p2
이를 인수로 사용하면 도움이 될까요 of=
?
답변1
/dev/sdb2
or 의 크기와 "정확한" 크기를 가진 새로운 빈 파티션을 hdd에 만들고/dev/loop1p2
이를 인수로 사용하면 도움이 될까요of=
?
예, 이것이 아마도 가장 쉬운 방법일 것입니다. 크기가 정확히 같을 필요는 없으며 더 클 수도 있습니다. 엄밀히 말하면 적어도 내부 파일 시스템만큼 커야 합니다 /dev/loop1p2
.5월자신 보다 훨씬 작아야 합니다 /dev/loop1p2
. 특정 파일 시스템의 정확한 크기를 얻는 방법은 파일 시스템(ext, btrfs 등을 위한 다양한 도구)에 따라 다릅니다. 하지만 파일 시스템이 파티션보다 훨씬 작은 경우는 드뭅니다. 따라서 크기는 /dev/loop1p2
적당하고안전한최저한의.
새 파티션이 파일 시스템에 비해 너무 작은 경우 일부 데이터 및/또는 메타데이터가 누락되어 비정상 파일 시스템 복제가 발생하게 됩니다. 적절한 fsck
도구를 사용하면 복제본이 공식적으로 정상 상태가 될 수도 있고 그렇지 않을 수도 있지만 적합하지 않은 데이터는 복구되지 않습니다. 소스 파일 시스템의 여유 공간이 얼마나 되는지에 관계없이 데이터 손실이 발생할 수 있습니다.
새 파티션이 더 크면 아무 문제도 발생하지 않습니다. 에 있는 파일 시스템이 무엇이든 /dev/loop1p2
대상 파티션이 더 큰지는 상관하지 않습니다. 나중에 전체 파티션을 차지하기 위해 파일 시스템을 확대할 계획이 아니라면 훨씬 더 큰 파티션을 만드는 것은 공간 낭비입니다.
그렇습니다. 크기는 /dev/loop1p2
아마도 새 파티션에 가장 적합할 것입니다. 일부 도구는 파티션 유형에 주의를 기울일 수 있으므로 새 파티션의 ID를 올바르게 설정해야 합니다.MBR의 DOS 파티션 테이블그리고GUID 파티션 테이블).
새 파티션을 만들지 않고 복제할 수 있나요? 예, 하지만 그럴 가치가 없습니다.
같은 장치 노드는 미리 /dev/sdx3
정의된 조각 /dev/sdx
(이 조각 외부에는 아무것도 없음)에 액세스하는 데 유용한 추상화일 뿐입니다. 이는 대신에 다음 과 같이 dd of=/dev/sdx3
실행할 수 있음 을 의미합니다.dd of=/dev/sdx
적절한오프셋( obs=
, seek=
), 일반적으로 프래그먼트( ) 너머에 쓰지 않도록 주의하세요 count=
. 번거롭지 /dev/sdb2
만 파티션을 생성하지 않고도 대상 HDD의 할당되지 않은 공간에 복제하는 것이 완전히 가능합니다 . 하지만:
- 오타나 계산 오류로 인해 건드리지 않으려는 대상 HDD의 일부가 덮어쓰일 수 있습니다(그러면
dd
"데이터 파괴자"를 의미함을 알게 될 것입니다). - 작업하고 오프셋할 수 있는 도구는 거의 없지만 다음
/dev/sdx
과 같은 파티션이 필요합니다 ./dev/sdx3
편리하게실제로 복제된 파일 시스템을 사용하므로 조만간 생성하게 될 것입니다. - 파티션이 없으면 복제본이 차지하는 공간은 여유 공간으로 간주됩니다. 제정신의 도구는 자체적으로 이를 사용해서는 안 되지만너점유된 조각의 정확한 크기나 그것이 점유되어 있다는 사실조차 잊어버릴 수 있습니다.
이러한 이유로 복제하기 전에 파티션을 생성하는 것이 옳은 일입니다. 일단 그것을 가지고 있으면 그것을 of=
가리키는 올바른 방법입니다 .dd