이 글에서는 Paragon, AOMEI, Acronis 같은 서드파티 프로그램 없이, 윈도우에 기본 탑재된 도구만으로 설치된 Windows를 재설치 과정 없이 다른 하드 드라이브로 복사(이동)하는 방법을 소개합니다. 예를 들어 기존 HDD에서 새 SSD로 시스템을 마이그레이션하거나, 설정이 완료된 Windows를 용량이 더 큰 새 드라이브로 옮길 때 유용하게 활용할 수 있습니다.
여기서는 부팅 가능한 USB 설치 미디어와 명령 프롬프트, 그리고 윈도우 내장 도구인 robocopy를 이용해 설치된 Windows 10을 새 드라이브로 복제하는 과정을 예시로 설명합니다.
복제 전 확인 사항
동일한 하드웨어에서만 정상 작동: OS를 통째로 복사하는 방식의 클론은 같은 컴퓨터(또는 하드웨어 구성이 거의 동일한 컴퓨터)로 이전할 때만 문제없이 작동합니다. 다른 컴퓨터용으로 복제하려면 부팅 후 디스크 컨트롤러, 칩셋, 그래픽 카드 드라이버를 새로 설치해야 운영체제가 새 하드웨어에서 정상적으로 시작됩니다.
더 작은 디스크로도 이전 가능: 현재 Windows가 사용 중인 공간보다 새 디스크의 용량이 크거나 같다면 더 작은 드라이브로도 복제할 수 있습니다. 그렇지 않다면 원본 드라이브에서 불필요한 파일을 삭제하거나 다른 곳으로 옮겨야 합니다. 이런 상황은 대체로 일반 HDD보다 용량이 작은 SSD로 이전할 때 자주 발생합니다.
펌웨어 종류 확인 (BIOS vs UEFI)
Windows를 다른 드라이브로 이전하는 절차는 컴퓨터 펌웨어가 BIOS 방식인지 UEFI 방식인지에 따라 달라집니다. 실행 창(Win+R)에서 다음 명령을 입력하세요.
msinfo32
시스템 정보에서 [BIOS 모드] 항목이 레거시(Legacy)로 표시되면 BIOS(또는 CSM 모드로 동작하는 UEFI)를 사용하는 것이고, UEFI로 표시되면 최신 UEFI 모드로 Windows가 설치된 컴퓨터입니다.
- 네이티브 UEFI 모드 + GPT 파티션 테이블을 사용하는 컴퓨터용 명령에는
[UEFI GPT]로 표시합니다. - BIOS 또는 레거시 모드 UEFI + MBR 파티션 테이블을 사용하는 구형 컴퓨터용 명령에는
[BIOS MBR]로 표시합니다.
1단계. 새 디스크 초기화 및 파티션 만들기
먼저 새 드라이브에 파티션 테이블을 생성해야 합니다. 새 디스크라면 초기화부터 진행합니다. 디스크 관리(diskmgmt.msc)를 실행하거나 PowerShell에서 다음 cmdlet을 사용하세요.
Get-Disk | Where-Object PartitionStyle –Eq 'RAW' | Initialize-Disk
이제 관리자 권한으로 명령 프롬프트를 열고 diskpart를 실행한 뒤, 아래 명령을 차례로 입력합니다.
list disk (앞서 출력된 목록에서 새 디스크 번호 선택)
select disk 1
clean
이후 명령은 플랫폼 유형에 따라 달라집니다.
[UEFI GPT] 환경의 경우
convert gpt
create partition efi size=100
format fs="FAT32" quick label="EFI"
create partition msr size=16
create partition primary
format fs="NTFS" quick label="NEW_SYSTEM"
exit
위 명령으로 GPT 파티션 테이블과 EFI(100MB), MSR(16MB) 두 개의 작은 시스템 파티션, 그리고 남은 공간 전체를 차지하는 대형 데이터 파티션(NEW_SYSTEM)이 생성됩니다.
참고로 기존 디스크에 이미 파티션이 있고 MBR을 GPT로 변경하고 싶다면, Windows 10에 내장된 mbr2gpt.exe 도구를 사용하면 데이터 손실 없이 변환할 수 있습니다.
[BIOS MBR] 환경의 경우
convert mbr
create partition primary align=1024
active
format fs="NTFS" quick label="NEW_SYSTEM"
exit
2단계. Windows 파일 복제 (robocopy)
새 드라이브로 Windows를 복제하려면 Windows 10 설치 이미지가 담긴 부팅 USB가 필요합니다(Microsoft의 MediaCreationTool로 쉽게 만들 수 있습니다).
컴퓨터를 재시작하고 USB 설치 미디어로 부팅한 뒤, Windows 설치 화면이 나타나면 Shift+F10을 눌러 명령 프롬프트를 엽니다. 다음 명령을 실행해 각 볼륨에 할당된 드라이브 문자를 확인합니다.
diskpart
list vol
exit
아래 예시 화면에서는 기존 드라이브의 Windows 파티션에 E:, 새 드라이브의 대형 파티션(NEW_SYSTEM 레이블)에 D:가 할당되어 있습니다.
드라이브 문자가 자동으로 할당되지 않았다면 diskpart에서 다음과 같이 직접 지정할 수 있습니다.
select disk 1
list part
select part 1
assign
list volume
이제 robocopy로 기존 드라이브의 Windows 파일을 새 드라이브로 복사합니다. 아래 명령은 심볼릭 링크와 파일·폴더의 속성, NTFS 권한, 타임스탬프까지 모두 그대로 복사하며, 복사 로그는 대상 드라이브 루트에 저장됩니다.
robocopy E:\ D:\ /E /COPYALL /COPY:DAT /SL /XJ /R:3 /W:3 /UNILOG:"D:\rcopy.log" /TEE
복사 시간은 원본 디스크의 용량과 속도에 따라 오래 걸릴 수 있습니다(필자의 경우 60GB 디스크 복사에 약 1시간이 소요되었습니다).
복사가 끝나면 컴퓨터를 종료하고 기존 하드 드라이브를 분리합니다.
3단계. 새 디스크에 부트로더 구성
부트 레코드를 수정하지 않은 상태에서 새 디스크로 부팅하면 "운영 체제를 찾을 수 없음(Operation system not found)" 오류가 나타납니다. 따라서 새 디스크에 Windows 부트로더를 구성해야 합니다.
다시 한번 Windows 설치 환경으로 부팅한 뒤 명령 프롬프트(Shift+F10)를 엽니다.
[BIOS MBR] 부트로더 복구
먼저 새 드라이브의 대형 파티션에 할당된 드라이브 문자를 확인합니다.
diskpart
list vol
예시에서는 C:가 할당되어 있습니다. 이제 BCD 부트로더 파일을 C: 드라이브에 복사합니다.
bcdboot C:\Windows /S C:
이어서 MBR 레코드를 재작성하고 BCD 구성 파일의 부팅 항목을 갱신합니다.
bootrec.exe /FixMbr
bootrec.exe /FixBoot
bootrec.exe /RebuildBcd
[UEFI GPT] 부트로더 복구
시스템 드라이브 문자를 확인하고, EFI 파티션에 드라이브 문자를 할당합니다.
Diskpart
List vol
아래 예시에서는 시스템 파티션에 C가 할당되어 있습니다. EFI 파티션(약 100MB, FAT32)에 문자를 할당하려면 다음 명령을 사용합니다(파티션 번호는 실제 환경에 맞게 조정).
select volume 1
assign letter M:
exit
이제 BCD 부트로더와 부팅 구성을 새로 만듭니다.
cd /d m:\efi\microsoft\boot\
ren BCD BCD.bak
bcdboot c:\Windows /l en-us /s M: /f ALL
마무리: 부팅 확인 및 로그 점검
컴퓨터를 재시작하고 부팅 USB를 제거한 뒤, 새 드라이브에서 Windows 10이 정상적으로 부팅되는지 확인합니다. 설치된 앱, 파일, 설정은 모두 그대로 유지됩니다. 이것으로 설치된 Windows 10을 새 드라이브로 성공적으로 복제한 것입니다.
robocopy로 파일을 복사하는 동안 일부 오류가 발생할 수 있습니다. 새 드라이브 루트의 rcopy.log 파일을 열면 어떤 파일이 복사되지 못했는지 확인할 수 있습니다. 필자의 경우 94개 파일이 복사되지 않았지만, 대부분 임시 파일이나 불필요한 정크 파일이었습니다.
참고로 이 글에서는 Windows 복구 환경(WinRE)의 부팅 레코드 생성 방법은 다루지 않습니다. WinRE는 보통 별도의 시스템 예약(System Reserved) 파티션에 위치하며, 새 디스크에서도 복구 환경을 사용하려면 별도의 가이드를 참고해 설정해야 합니다.