웹사이트 검색

Linux dd 명령으로 디스크를 복제하는 방법


이 페이지에서

  1. 1단계 - 파티션 축소
  2. 2단계 - 디스크 복제
    1. 예 1 - MBR 디스크 복제(두 번째 파티션에 Windows OS 설치)
    2. 예 2 - GPT 디스크 복제(네 번째 파티션에 Windows OS 설치)

    이 자습서에서는 시스템 관리자가 Windows 운영 체제 또는 Linux OS를 MBR 또는 GPT 레이아웃 스타일로 분할된 더 큰 HDD에서 더 작은 SSD로 마이그레이션하거나 복제하는 데 사용할 수 있는 Linux dd 명령의 실제 예를 잘 참조하십시오. 이 가이드에서는 여러 파티션이 있는 하드 디스크에 설치된 Windows 시스템을 예로 사용합니다. 이 방법은 HDD가 MBR 방식으로 분할되어 있고 여러 논리 파티션이 있는 확장 파티션을 포함하거나 파티션 순서가 잘못된 경우 상당히 복잡해질 수 있습니다. 그런 경우에는 이 방법을 사용하지 않는 것이 좋습니다. 이러한 경우 실제로 빈 공간을 전송하지 않고 전체 디스크 레이아웃(파티션 테이블 및 각 파티션 내부의 사용된 블록)을 복제할 수 있는 ddrescure를 사용하는 것이 더 안전합니다. DDrescure는 Ubuntu 기본 리포지토리에서 gddrescue 패키지를 설치하여 얻을 수 있습니다.

    1단계 - 파티션 축소

    Parted Magic과 같은 라이브 Linux 배포판을 사용하여 Linux 또는 Windows 파티션(축소)의 크기를 최소 크기로 조정할 수 있습니다. NTFS 파티션을 축소하기 위해 Microsoft Windows diskmgmt.msc 유틸리티를 사용할 수도 있습니다. 파티션의 여유 공간을 줄임으로써 파티션이 큰 경우 dd가 사용하지 않는 디스크 블록을 복사하는 데 걸리는 시간이 크게 줄어듭니다. 사용된 공간의 비율이 적은 큰 파티션의 경우 dd 유틸리티가 프로세스에서 사용되지 않은 공간도 복사하기 때문에 파일 시스템을 축소하는 것이 좋습니다. 사용 공간의 10% 미만).

    2단계 - 디스크 복제

    파티션 크기를 최소로 조정한 후 두 번째 디스크 또는 SSD를 머신 SATA/SCSI 컨트롤러에 물리적으로 연결하고 라이브 Linux 배포판으로 머신을 부팅합니다. 라이브 Linux 배포가 RAM에 로드되면 Linux 콘솔을 열고 fdisk -l /dev/sda를 실행하고(/dev/sda가 Windows 설치 디스크이거나 Windows 환경의 C: 드라이브라고 가정) 마지막 \종료\ 섹터(아래 예와 같이 44898303):

    예 1 - MBR 디스크 복제(두 번째 파티션에 설치된 Windows OS)

    이 테스트 설정에서 디스크는 반전되어 있으므로 /dev/sdb는 Windows 설치 디스크를 나타내고 /dev/sda는 빈 SSD를 나타냅니다.

    그런 다음 Windows 설치 디스크를 HDD(/dev/sdb)에서 SSD(/dev/sda)로 복제하기 위해 루트 권한으로 다음 명령을 실행합니다. pv 유틸리티는 Ubuntu에 기본적으로 설치되지 않습니다. 다음을 실행하여 설치할 수 있습니다.

    sudo apt install pv

    그런 다음 아래 명령을 실행하여 복제 프로세스를 시작합니다.

    sudo dd if=/dev/sdb bs=512 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sda

    주의: 대상 디스크는 Windows 파티션을 포함하여 원본 디스크에서 Windows 파티션까지 모든 파티션이 차지하는 총 공간의 크기 이상이어야 합니다.

    위의 예에서 사용된 명령 설명

    dd - dd는 "복사 및 변환"을 나타냅니다. 일부는 Data Destroyer(심각한 손상이 발생할 수 있는 명령을 오도하는 경우) 또는 Data Duplicate 또는 Data Description의 약자라고 말할 수 있습니다. 귀하의 필요에 맞는 설명을 사용하십시오!

    if - 원본 디스크(입력/입력 파일)

    bs - fdisk 출력의 섹터 크기 값(블록 크기 또는 1회 읽기/쓰기 바이트 수)

    count - 하나의 정수(+1)씩 증가하는 fdisk 출력의 마지막 "End" 섹터 - 복사가 중지되기 전에 복사해야 하는 512 크기 블록의 수입니다. 여기서는 512바이트 크기의 44099584개 섹터를 전송해야 합니다.

    conv=sync,noerror - 소스 디스크에서 블록 오류가 발생하는 경우 I/O를 동기화하고 중지하지 않음

    | - Linux 파이프(Linux 또는 FIFO의 프로세스 간 통신 채널)

    pv -s 21GB - 복제 진행률 모니터링 - 파이프를 통해 약 21GB를 전송해야 합니다.

    of - 파이프된 데이터가 실제로 기록되는 대상 디스크(출력/출력 파일)

    표준 디스크 블록 크기(512)보다 더 큰 블록 크기로 작동하려는 경우 표준 블록 크기(2048)의 최대 4배 크기로 작업 속도를 높이려면 몇 가지 간단한 수학을 수행하고 곱하면 됩니다. 디스크의 표준 블록 크기(512x4)를 4로 나눈 다음 마지막 파티션의 총 블록 수 +1을 4로 나눕니다.

    또 다른 예

    이 예에서 sda2의 "종료": 44898303+1 나누기 4. dd는 2048바이트의 블록 크기로 작동합니다.

    sudo dd if=/dev/sda bs=2048 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sdb

    프로세스가 완료된 후(디스크 크기 및 속도에 따라 10분 또는 몇 시간이 걸릴 수 있음) 동일한 sfdisk 명령을 사용하여 대상 디스크를 확인하고 두 디스크의 출력을 비교합니다. 결과는 비슷해야 합니다.

    예 2 - GPT 디스크 복제(네 번째 파티션에 설치된 Windows OS)

    이 발췌문에서 dd는 한 번에 더 많은 블록을 전송하기 위해 표준 블록 크기(4096)의 최대 8배 크기의 블록 크기로 작동합니다. Windows OS는 하드 디스크의 네 번째 파티션에 상주합니다. 이전의 모든 Windows 파티션도 복제해야 합니다. 디스크는 Windows 파티션 경계의 끝을 나타내는 마지막 19855359 섹터까지 완전히 복사됩니다. 19855359+1 섹터 다음의 데이터는 Windows의 D: 파티션을 나타냅니다. 따라서 이 파티션은 운영 체제 파티션만 복제하려고 하므로 관심이 없습니다.

    디스크의 표준 블록 크기(512x8)에 8을 곱한 다음 아래 이미지와 같이 마지막 파티션의 총 블록 수 +1을 8로 나눕니다. Windows 파티션을 나타내는 sda4의 "End"는 19855359+1을 8로 나눈 값입니다. dd는 4096바이트의 블록 크기로 작동합니다.

    sudo dd if=/dev/sda bs=4096 count=2481920 conv=sync,noerror | pv -s 9G |sudo dd of=/dev/sdb

    이 예에서는 네 번째 파티션 뒤에 오는 전체 디스크 데이터가 아니라 Windows OS만 복사했기 때문에 마지막 파티션을 삭제해야 합니다. 다음 스크린샷과 같이 콘솔에서 직접 cgdisk 명령줄 유틸리티를 실행하여 삭제할 수 있습니다.

    fdisk 명령을 실행하여 두 디스크의 파티션 테이블 차이를 확인합니다. 복제된 디스크(/dev/sdb)에서 제거해야 하는 /dev/sda의 다섯 번째 파티션을 제외하고 파티션 테이블은 유사해야 합니다.

    3단계 - 복제된 디스크 테스트

    마지막으로 시스템을 종료하고 이전 하드 디스크를 분리한 다음 새로 복제된 디스크만 있는 컴퓨터의 전원을 켭니다. 운영 체제에서 곧 부팅됩니다. 시스템이 부팅을 거부하는 경우 마더보드의 SATA 커넥터를 물리적으로 확인하고 반대로 연결해 보거나 BIOS/UEFI 설정으로 이동하여 부팅 순서에서 적절한 디스크가 활성화되어 있는지 확인하십시오.

    두 디스크가 연결된 상태에서 머신을 부팅하지 마십시오. 부트로더가 혼동되어 머신이 운영 체제를 시작하지 못할 수 있습니다. 운영 체제가 정상적으로 부팅된다는 것을 확인한 후 파일 시스템 축소와 동일한 도구를 사용하여 할당되지 않은 공간을 추가하여 복제된 파티션을 확장합니다.

    이 dd 방법을 사용하면 처음부터 OS를 설치하고 사용자 지정에 많은 시간을 소비할 필요 없이 모든 사용자 지정 설정, 설치된 프로그램 및 파일을 더 큰 HDD에서 더 작은 SSD로 모든 Windows 또는 Linux OS 변형을 전송할 수 있습니다. 그것.