DD를 사용하여 기존 드라이브에서 새 드라이브로 데이터를 마이그레이션하는 방법은 무엇입니까?

DD를 사용하여 기존 드라이브에서 새 드라이브로 데이터를 마이그레이션하는 방법은 무엇입니까?

내 노트북의 내부 SATA 하드 드라이브를 40G 드라이브에서 160G 드라이브로 업그레이드하고 있습니다. SATA 카드가 장착된 Linux/Ubuntu 데스크탑이 있습니다. 나는 실제로 직장에서 몇 개의 CentOS 및 FreeBSD 시스템으로 동일한 작업을 수행하고 싶습니다. 이 시스템에도 동일한 솔루션이 있을 것으로 보입니다.

사용할 수 있다고 들었는데DD40G 파티션을 160G 드라이브에 미러링하거나 40G 파티션을 로컬 시스템에 이미지로 저장한 다음 해당 40G 이미지를 160G 드라이브에 복사할 수 있습니다.

누구든지 내가 어떻게 할 수 있는지 설명할 수 있나요? 다른 유틸리티가 필요합니까?갈라진

답변1

일반적으로 나는 "외부 쉘을 사용하여 두 번째 하드 드라이브를 연결하고 Linux CD에서 부팅한 다음 다음과 같은 명령을 사용하는 것과 같은 솔루션을 제안 dd if=/dev/sda of=/dev/sdb bs=1G하지만 동일한 기술로 작업하고 싶기 때문에 아마도 더 나은 솔루션이 있을 것입니다.

내 서버와 노트북은 모두 직장에서 사용됩니다.클론속. 이를 사용하는 방법에는 두 가지가 있습니다. 하나는 약간 과할 수 있는 전용 서버를 사용하고, 다른 하나는 부팅 가능한 CD와 외장 하드 드라이브를 사용합니다.

Clonezilla CD로 부팅하고 더 큰(소스 드라이브보다 큰) 외부 USB 드라이브를 갖는 것이 아이디어입니다. Clonezilla는 기존 드라이브의 이미지를 만드는 과정을 안내한 다음 시스템 전원을 끄고 드라이브를 교체한 다음 Clonezilla로 재부팅하여 데이터를 복구하는 과정을 안내합니다.

이를 통해 A) 이미지를 더 큰 드라이브에 저장하고 B) 데이터 백업을 유지할 수 있습니다.

답변2

첫 번째 작업은 두 개의 디스크를 기존 Linux 시스템에 연결하거나 새 디스크를 원래 시스템에 연결하는 것입니다.

당신은해야합니다매우빈 디스크를 좋은 디스크로 복사하는 것은 매우 쉽기 때문에 주의하세요!

마지막으로 부트 섹터와 모든 것을 얻으려면 다음을 수행할 수 있습니다.

dd if=/dev/hdx of=/dev/hdy

hdx40G 디스크는 어디에 있고 hdy160G 디스크는 어디에 있습니까? 와 같은 파티션 번호가 없다는 것을 알 수 있습니다 /dev/hdx1. 전체 디스크, 파티션 정보 등이 복사됩니다.

새 디스크에는 기존 디스크와 동일한 40G가 할당됩니다. 노트북에 다시 놓으면 즉시 부팅됩니다. LVM을 사용해 보셨나요? 그렇지 않으면 모든 파티션을 사용하지 않았으면 좋겠나요? 이 지점을 건너려면 더 많은 정보가 필요합니다.

또 다른 해결책은 각 개별 파티션을 덤프하는 것입니다. 시작 정보를 다시 생성해야 하므로 상황 인식이 더 필요합니다.

이들 모두는 하드 드라이브를 업그레이드하는 것이 아니라 컴퓨터를 복제하는 데 가장 적합합니다. 백업을 사용하여 새 설치로 복원하는 것이 훨씬 좋습니다.

답변3

때를할 수 있는dd를 사용하여 디스크를 복사하면 다음과 같은 많은 단점이 있습니다.

  1. 대상은 소스와 정확히 크기가 같거나 커야 합니다.
  2. 복사한 후 추가 공간을 사용하려면 파티션 크기를 조정해야 합니다.
  3. 여유 공간을 복사하는 데 시간을 낭비하게 됩니다.
  4. 이전 디스크에 존재하는 모든 조각화는 유지됩니다.

숫자 2와 3은 최소한 Ghost4Linux, partclone 또는 Clonezilla와 같은 이미징 프로그램을 사용하여 처리할 수 있습니다. 또한 간단히 새 디스크를 포맷하고 마운트한 다음 루트 cp -ax권한으로 모든 파일을 복사한 다음 새 드라이브에 부트로더를 다시 설치할 수도 있습니다. 이 방법에는 위의 단점이 없습니다.

답변4

dd로 이 작업을 수행하는 방법을 묻는 경우 출력을 파이핑하는 것이 더 성공적이었습니다.덤프입력하다다시 덮다. 소스를 보면광고 1s1a그리고 목표광고 2s1a:

$ mount /dev/ad2s1a /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a  | restore -rf -

나는 이것을 FreeBSD에서 시도했고 실제로 실행했습니다.FreeBSD 포럼

관련 정보