물리적 드라이브를 사용하는 동안 dd를 사용하여 파티션을 다른 파티션으로 복사


17

주제에서 이것을 더 잘 설명하는 방법을 잘 모르겠으므로 "질문"이 옳지 않을 수 있습니다. 그러나 여기에 간다. 세 개의 하드 드라이브가 있습니다. 드라이브 A는 320GB 드라이브, 드라이브 B는 80GB 드라이브, 드라이브 C는 1TB 드라이브입니다. 80GB 드라이브의 데이터를 1TB 드라이브로 복사하고 파티션 크기를 조정하려고합니다 (따라서 320GB 드라이브의 데이터를 다음에 복사 할 수 있음).

내 질문은 이것입니다 : 1TB 드라이브의 운영 체제로 부팅하는 경우 dd를 사용하여 320GB 드라이브를 해당 물리적 ​​드라이브의 다른 파티션으로 복사 할 수 있습니까? 라이브 파티션을 복사 해서는 안된다는 것을 알고 있습니다 (즉, 운영 체제를 실행하는 경우 320GB 드라이브의 데이터를 복사 할 수 없음).

내 추론은 이것입니다. Acronis TrueImage, Partition Manager 및 Image 4 DOS / Linux (둘 다 응용 프로그램)를 사용해 보았는데 데이터를 복사하는 데 1 주일이 걸렸습니다. 즉, 일주일 동안 컴퓨터를 사용할 수 없으므로 컴퓨터를 사용할 수 없습니다 (내 유일한 옵션이 아닌 한). 나는 이것이 작동하기를 바라고 있기 때문에 복사를하는 동안 적어도 컴퓨터를 사용할 수 있습니다.

필요한 경우 라이브 CD로 부팅하거나 (실제로 선호하는 옵션은 아님) "드라이브 B"를 사용할 수 있지만 가능한 한 빨리 해당 드라이브를 제거하고 싶습니다.


물론이지?
Michael Hampton

답변:


18

예, 다음 두 가지 조건에 해당하는 경우 원하는 작업이 제대로 작동합니다.

  1. 당신이 dd'ing되는 파티션에 없음 (장착) 파일 시스템이 에가 .
  2. 당신이 dd'ing하는 파티션 으로는 것과 적어도 같은 크기의 당신이있는 거 dd'ing 에서 (즉 3백20기가바이트).

제대로 작동하는 이유는 파티션이 UNIX의 파일이기 때문입니다. 파일 내용이 마운트 된 파일 시스템을 포함하는 경우에만 그 내용이 특별한 의미를 갖습니다.

다음과 같은 레이아웃이 있다고 가정합니다.

1TB = sda, 두 개의 파티션, 부팅 한 sda1 및 기록하려는 sda2

320GB = sdb, 파티션 하나, sdb1

당신의 명령은 다음과 같습니다.

dd if=/dev/sdb1 of=/dev/sda2 bs=1M

bs=1M매개 변수는 dd가 각 섹터에 대한 요청을 발행하는 대신 큰 청크로 데이터를 복사하도록합니다.


1
if = source of = destination 위의 조언에 문제가 있다고 생각합니다.

위의 예에서 sdb1은 소스이고 sda2는 대상입니다. 더 명확하게 답변을 편집했습니다.
Michael Fenn

1
resize2fs복사 후 수행 할 필요가 없습니까? 크기가 다른 경우에도?
Sopalajo de Arrierez

5

일반적으로 파티션이 마운트되지 않은 상태에서 파티션을 확인하는 것이 좋습니다. dd가 실행되는 동안 읽기 위해 소스 파티션을 마운트해야하는 경우 -o ro 매개 변수를 사용하여 읽기 전용 마운트하는 것이 좋습니다.

소스 파티션 amd로 먼저 부팅하려면 dd를 사용하여 복사 한 다음 mount -o ro, remount /를 수행하여 부팅 후에 만 ​​읽을 수 있습니다.


읽기만으로 파일 시스템이 저널에 장난을 치거나 여유 공간을 재구성하지 않는다는 의미는 아닙니다.
vonbrand

@vonbrand 당신은 RO 모드에서 그렇게하는 리눅스 파일 시스템 구현의 예를 제공 할 수 있습니까?
Basilevs

@vonbrand에서 UNIX 파일 시스템은, 존재는 RO 매우 장착 하지 평균 더 쓰기가 기본 장치로 발행되지 않는다는 것을.
Michael Fenn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.