사용클론속현재 디스크를 새 디스크에 복제하세요. Bob이 여러분의 삼촌입니다!

사용클론속현재 디스크를 새 디스크에 복제하세요. Bob이 여러분의 삼촌입니다!

그래서 노트북의 1TB HDD를 1TB SATA SSD로 교체했는데 한 HDD에서 다른 HDD로 파일을 전송하는 방법을 알고 싶습니다. 나는 kubuntu 17.10과 Windows 10을 듀얼 부팅하고 그렇게 유지하고 싶습니다. 어차피 별로 사용하지 않기 때문에 Windows에 재설치할 수도 있고, 쿠분투를 아무리 찾아보거나 질문해도 고칠 수 없는 문제가 있기 때문에 재설치할 수도 있습니다.

데이터를 외장 하드 드라이브에 백업하는 것 외에 알아야 할 사항이 있나요? 감사해요.

답변1

소중한 파일을 복사할 계획이군요. 하지만 한두 가지를 잊어버리면 어떻게 될까요?

이 답변은 잊어버린 내용이 있을 경우를 대비해 전체 파티션을 복제하는 방법을 다룹니다.


노트북의 하드 드라이브 이름이 다음과 같다고 가정해 보겠습니다.

/dev/sda

또한 Linux 파티션이 다음과 같다고 가정합니다.

/dev/sda2

마지막으로 외장 하드 드라이브가 다음과 같이 마운트되었다고 가정합니다.

/mnt/externalhdd

그럼 하나 만들어 보고 싶을 수도 있겠네요완벽한 사본그 중 예를 들면 다음과 같습니다.

  1. 라이브 Linux USB에서 부팅합니다.

  2. 루트 사용자가 되십시오:

    sudo -i
    
  3. Install 을 사용 pv하거나 진행 상황을 볼 필요가 없는 경우 다음을 사용할 수 있습니다 cat.

    pv < /dev/sda2 > /mnt/externalhdd/sda2.pv
    
  4. 복사하는 것을 잊어버릴 경우를 대비해 드라이브 파티션의 복사본을 가지고 있는 것이 매우 편리합니다.

답변2

디스크 이미징 방법

좋은 USB-SATA 어댑터를 사용하거나 노트북의 보조 포트(있는 경우)를 통해 SSD를 연결합니다.

LiveCD/USB 환경으로 부팅하고 dd명령을 사용하여 디스크를 복제하면 제대로 작동합니다.

원본 드라이브가 /dev/sda이고 대상 드라이브가 /dev/sdb인 경우 명령은 다음과 같습니다.dd if=/dev/sda of=/dev/sdb bs=1M

이 시점에서 약간의 부주의로 인해 데이터가 손실될 수 있으므로 시작하기 전에 어떤 드라이브가 어떤 것인지 확인하십시오. (출처: 나)

그런 다음 마지막 파티션을 디스크 전체 길이로 확장하거나 빈 공간에 새 파티션을 생성하기만 하면 됩니다. 그러나 원본 디스크와 대상 디스크의 크기가 동일하므로 걱정할 필요가 없습니다.

청소방법

Live CD에서 쿠분투 배포판의 tar.gz 덤프를 가져와 ext4/xfs 파티션에 압축을 풀어 설치를 포팅할 수 있습니다.

새 파티션에서 다음을 업데이트해야 합니다.

  • /etc/fstab의 파티션 ID

  • 새로운 /boot 디렉토리를 사용하여 grub을 다시 설치하십시오.

답변3

간단히 말해서:

사용클론속현재 디스크를 새 디스크에 복제하세요. Bob이 여러분의 삼촌입니다!


그러나 재미있게 즐기고 싶다면 현재 디스크가 어디에 있고 새 디스크가 어디에 있는지 fdisk -l /dev/sda | head -1 && fdisk -l /dev/sdb | head -1(또는 더 간결하게 fdisk -l | awk '/Disk.*sd(a|b)/') 다음과 같이 인쇄할 수 있습니다./dev/sda/dev/sdb

Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Disk /dev/sdb: 232.9 GiB, 250059350016 bytes, 488397168 sectors

디스크당 바이트 수를 기록해 두십시오. 이는 다음에 나오는 내용에 중요합니다.

디스크의 바이트 수가 정확히 동일한 경우

(그리고 아마도 현재 디스크가 새 디스크보다 작은 경우 이상적이지는 않지만)


귀하의 명령에 따라 dd(아래를 읽어주세요) 잘못된 장치 파일을 입력했습니다만약에 [입력 파일], 큰 문제는 아닙니다. 다시 할 수 있지만,경계하다:dd 위험할 수도 있다...잘못된 장치 파일을 입력한 경우~의 [결과물 파일],예를 들어,/dev/sdc, 시스템에 다른 디스크가 있으면 시스템의 데이터가 즉시 삭제됩니다./dev/sdc, 데이터로 덮어쓰세요만약에 [입력 파일];그럼 확인해 보세요.~의 [결과물 파일]여러번.


dd당신은 당신의 명령을 사용할 수 있습니다쿠벤투시스템을 생성하고정밀한복사 [클론](바이트 단위) { dd이해하지 못하다파일 시스템... 그것은가짜복사,바이트 단위그리고 이상적으로는 두 디스크 모두 정확히 동일한 바이트 수를 가져야 합니다.} 특히 사용하지 않는 경우 속도가 느려질 수 있습니다.블록 크기당신이 아는 유일한 방법으로 최고의 성능을 제공하십시오.최고의 성능 블록 크기, 다른 블록 크기를 사용하여 테스트하는 것입니다. 그러나 귀하의 경우에는 좋은 생각이 아닌 것 같습니다.당신은 민감한 데이터를 조작하고 있습니다)... 이렇게 할 수 있습니다:

dd if=/dev/sda of=/dev/sdb

/dev/sda현재 디스크는 어디에 있고, /dev/sdb새 디스크는 어디에 있습니까(이 경우 기본 블록 크기인 512바이트를 사용하므로 매우 느릴 수 있음)

이 경우 dd현재 디스크를 새 디스크로 복제하면 터미널에 아무 것도 표시되지 않습니다(즉, stdout터미널에 아무 것도 표시되지 않음 stderr). 특히 이와 같은 상황에서는 큰 데이터를 복제하고 있습니다. 디스크이므로 최신 버전에서는 다음을 사용하여 터미널에서 피드백을 얻을 dd수 있습니다 .status=progress

 dd if=/dev/sda of=/dev/sdb status=progress

설명서를 읽고 dd검색하세요 status. 해당 옵션이 없고 어떤 이유로 복제에 해당 버전을 사용하는 경우 다음과 같이 with 를 dd사용할 수 있습니다 .pvdd

 dd if=/dev/sda | pv | dd of=/dev/sdb

pvstatus=progress파이프라인뷰를 표현하면 새 버전과 거의 동일한 효과를 얻을 수 있습니다.dd

또는 더 좋고, 더 빠르고, 더 간단합니다.

pv --progress /dev/sda > /dev/sdb

( pv자동으로 "를 선택합니다.최고/빠름"귀하에게 적합한 블록 크기")


그렇지 않다면...

(또는 어쨌든, 정말로)

사용할 수 있더라도 dd약간 복잡합니다. A > B이면 한 가지 작업을 수행해야 하고, B > A이면 다른 작업을 수행해야 하며, 파티션 테이블 유형도 고려해야 합니다.(MS-DOS, GPT,...), 그래서...이보다 더 나은 방법은 partclone, 또는 심지어Clonezilla

partclone터미널에서 사용할 수 있는 또 다른 프로그램입니다(기본적으로 설치되지 않을 수도 있음). 그러나 작업에 더 적합합니다... 파일 시스템을 완전히 이해합니다( partclone다른 무엇보다도 더 높은 수준을 갖지 않습니다). dd파일 시스템에서 널 바이트를 처리하는 데 시간을 낭비하지 마십시오)

Clonezilla이는 귀하의 작업 및 유사한 작업을 위해 특별히 설계된 소규모 Linux 배포판입니다.

https://clonezilla.org/

(실제로 Clonezilla사용해보려고 partclone하지만 원하시면 사용해도 됩니다 dd)

관련 정보