1. 개요
여느 때나 다름없이 컴퓨터를 만지작 거리던 중, Windows RE 파티션의 크기가 아슬아슬하게 남아 있다는 사실을 발견하였다.
Windows가 업데이트를 진행하거나, 현재 위치 업그레이드를 진행하면 Windows RE 이미지 역시 업데이트될 수 있다.
그러나 일반적인 업데이트와는 달리, Windows RE 이미지의 업데이트는 최신 버전의 Windows RE 이미지가 이전 버전의 이미지를 대체하는 방식으로 이루어진다.
이 과정에서 문제가 발생한다. 업데이트를 하면 기본적으로 내용이 추가되고, 이에 따라 이미지가 차지하는 공간이 커지게 된다.
이 과정이 반복되면 언젠가는 Windows RE 이미지의 크기가 복구 파티션의 크기보다 커지는 지점이 오게 된다.
이런 경우, Windows 업데이트 프로세스는 아래와 같은 방법으로 문제를 해결한다.
기존 Windows RE 파티션이 Windows 파티션 바로 뒤에 위치하는 경우, Windows 파티션은 축소되고 그 공간이 Windows RE 파티션에 추가됩니다. 새 Windows RE 이미지는 이 확장된 Windows RE 파티션에 설치됩니다.
기존 Windows RE 파티션이 Windows 파티션 바로 뒤에 위치하지 않는 경우, Windows 파티션은 축소되고 새로운 Windows RE 파티션이 생성됩니다. 새로운 Windows RE 이미지는 이 새로운 Windows RE 파티션에 설치됩니다. 기존 Windows RE 파티션은 버려집니다.
만약 기존 Windows RE 파티션을 재사용할 수 없거나 Windows 파티션 축소에 성공하지 못하는 경우, 새로운 Windows RE 이미지는 Windows 파티션에 설치됩니다. 기존 Windows RE 파티션은 버려집니다.
출처: Windows RE(Windows 복구 환경) | Microsoft Learn
이 때문에 복구 파티션의 크기가 부족하면 아래와 같이 골 때리는 파티션 구조가 탄생할 수 있다.
이렇게 되면 향후 파티션 크기 조절에 문제가 생기게 된다.
따라서 이런 일을 미리미리 방지할 필요가 있다.
아래의 작업을 하면서 이 공식 문서들을 참고하는 것도 좋다.
글이 길어져서 접은 글을 이용하였다.
2. 파티션 수정을 위한 작업
이 과정은 전에 쓴 글인 Windows RE 복구와도 연관이 있으므로 한번 보고 오는 것도 좋다.
2.1. 작업을 위한 사전 준비
먼저 관리자 권한으로 명령 프롬프트와 DISKPART를 연다.
이때 디스크 관리도 같이 열어주면 더 좋다. 무슨 일이 일어나고 있는지 눈으로 바로 볼 수 있기 때문이다.
예를 들어, 디스크 관리를 함께 사용할 경우 파티션의 구조가 어떻게 되는지 바로 알 수 있지만, 디스크 관리를 사용하지 않는 경우 DISKPART를 이용하여 이것을 확인해야 한다.
디스크 관리를 사용하고 싶지 않거나 사용할 수 없다면, 아래에 디스크 관리를 사용하지 않는 방법 또한 서술해 놓았으니 그것을 보면 된다.
명령 프롬프트에 아래의 명령줄을 입력한다.
Reagentc /info
해당 명령어는 Windows RE의 현재 상태와 온라인 또는 오프라인 이미지에 사용 가능한 복구 이미지의 정보를 표시한다.
해당 정보에 따르면 필자의 컴퓨터 "harddisk0(0번 디스크)", "partition5(5번 파티션)"에 Windows RE가 설치되어 있다.
디스크 관리를 통해 본 결과 역시 동일한 것을 확인할 수 있다.
나머지 뒤의 두 복구 파티션은 OEM 복구 파티션이다.
2.2. 복구 파티션 문자 할당
가장 먼저 해야 할 일은 복구 파티션에 드라이브 문자를 할당하는 것이다.
2.2.1. DISKPART에서 디스크 선택
DISKPART에 아래 예문을 참고하여 명령줄을 입력한다.
select disk "디스크 번호"
필자의 경우 0번 디스크를 선택해야 하므로,
select disk 0
라고 입력하였다.
2.2.2. DISKPART에서 파티션 선택
다음으로는 파티션을 선택해야 한다.
DISKPART에 아래 예문을 참고하여 명령줄을 입력한다.
select partition "파티션 번호"
필자의 경우 5번 파티션이므로 아래와 같은 명령줄을 입력하였다.
select partition 5
2.2.3. DISKPART에서 파티션 문자 할당
파티션 선택을 완료하였으면 파티션에 드라이브 문자를 할당해야 한다.
DISKPART에 아래의 예문을 참고하여 명령줄을 입력한다.
assign letter="드라이브 문자"
모든 Microsoft 기술 문서에서는 Windows RE 파티션의 문자를 "R"로 할당하므로, 필자 또한 드라이브 문자를 R로 할당하였다.
assign letter="R"
드라이브 문자가 할당되었으면 파일 탐색기에 다음과 같이 파티션이 뜰 것이다.
이제 DISM을 이용해 파티션을 캡쳐해야 한다.
2.3. 복구 파티션 캡쳐
복구 파티션을 따로 백업해 두었거나 다른 방법을 이용할 것이라면 이 단계는 건너뛰어도 되지만, 되도록 본 단계를 건너뛰지 않는 것을 추천한다.
"C:\$WinREAgent\Backup" 디렉터리의 백업 파일을 이용할 것이라면 이 글의 "3. 복구 파티션의 Winre.wim 이미지 파일이 손상된 경우"를 참고하면 좋다.
아무튼, DISM을 이용해 파티션을 캡처해야 한다.
관리자 권한으로 연 명령 프롬프트에 아래의 예문을 참고하여 명령줄을 입력한다.
DISM /Capture-Image /ImageFile:"저장할 이미지의 경로" /CaptureDir:"캡쳐할 디렉터리" /Name:"이미지 이름" /Description:"이미지 설명" /Compress:{max|fast|none}
"/Name" 변수는 WIM 파일 내부에서 사용하는 설명을 지정하는 변수이며, "/Description" 변수는 WIM 파일 내부에서 사용할 설명을 지정하는 변수이다. "/Name" 변수는 필수이지만, "/Description" 변수는 필수가 아니다.
"/Compress" 변수는 WIM 이미지 파일을 얼마나 압축할지 정하는 변수이다. "max|fast|none" 세 가지를 지정할 수 있으며, 당연히 압축률이 높을수록 그에 걸리는 시간 또한 증가한다.
필자의 경우, "R 디렉터리"를 "I:\ASDF\"디렉터리에 "RE.wim"파일로 비압축으로 저장하였다.
DISM /Capture-Image /ImageFile:"I:\ASDF\RE.wim" /CaptureDir:"R:" /Name:"REBACKUP" /Compress:None
파티션을 캡처하였으면 이제 기존 파티션의 크기를 조절할 차례이다.
2.4. 파티션 크기 조절
2.4.1. 할당 문자 제거
DISKPART으로 돌아와서, 복구 파티션에 할당하였던 문자를 제거한다. 그러지 않으면 이후 문자를 할당하는데 오류가 발생할 수 있다.
아래의 예문을 참고하여 명령줄을 입력한다.
Remove letter="드라이브 문자"
문자를 제거하였으면 파티션 크기를 조절할 차례이다.
2.4.2. 복구 파티션 제거
파일 시스템의 특성상, 복구 파티션의 크기를 조절하기 위해서는 먼저 복구 파티션을 삭제해야 한다.
list partition
DISKPART에 "list partition"을 입력하여 자신이 선택한 파티션이 삭제하려는 파티션인지 다시 한번 확인한다.
자신이 삭제하려는 파티션이 맞으면, 아래의 명령어를 입력한다.
delete partition override
"delete partition" 명령어는 파티션을 삭제하는 명령어로, "override" 옵션이 추가된 경우 강제로 파티션을 삭제할 수 있다.
2.4.3. '디스크 관리'를 이용하여 파티션 크기 조절
2.4.3.1. 앞 파티션 축소
복구 파티션을 삭제했으면 복구 파티션 앞의 파티션을 축소해야 한다. 그래야 복구 파티션 크기 확장을 위한 용량을 확보할 수 있다.
디스크 관리에서
'파티션 우클릭 > 볼륨 축소'에서 원하는 만큼 용량을 축소할 수 있다.
2.4.3.2. 복구 파티션 생성
앞의 파티션을 축소하여 공간을 확보했다면 이제 복구 파티션을 생성할 차례이다.
빈 볼륨을 우클릭해 컨텍스트 메뉴를 띄우고 [새 단순 볼륨]을 누르면 볼륨 생성 창이 뜬다.
볼륨을 NTFS로 포멧하고 원하는 드라이브 문자를 할당한 후 [마침]을 눌러 새 볼륨을 생성한다.
2.4.3.3. 복구 파티션에 Windows RE 이미지 적용
파티션을 설정하였으면 백업해 둔 이미지를 파티션에 적용한다.
명령 프롬프트에 아래의 예문을 참고하여 명령줄을 입력한다.
DISM /Apply-Image /ImageFile:"이미지 파일의 경로" /ApplyDir:"드라이브 문자" /Index:1 /CheckIntegrity
2.4.3.4. 파티션 특성 적용
이미지를 적용하였으면 파티션 특성을 할당하여야 한다.
DISKPART로 돌아와서 복구 파티션을 선택한 뒤(아직은 일반 파티션일 것이다.) 다음 명령줄을 입력한다(UEFI/GPT의 경우).
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
자신이 사용하는 시스템이 레거시 BIOS와 MBR이라면 다음과 같이 입력한다.
set id=27
2.4.3.5. Windows RE 경로 지정
작업이 완료되었으면 Windows에게 복구 이미지의 위치를 알려주어야 한다.
아래의 예문을 참고하여 명령줄을 입력한다.
C:\Windows\System32\reagentc /setreimage /path "<복구 파티션의 드라이브 문자>:\Recovery\WindowsRE" /target C:\Windows
2.4.3.6. Windows RE 활성화
경로 지정에 성공하였으면 Windows RE를 활성화하여야 한다. 그러지 않으면 RE로 진입할 수 없다.
아래 명령줄을 입력한다.
reagentc /enable
2.4.3.7. 드라이브 문자 제거
작업이 완료되었으면 복구 파티션에 할당된 드라이브 문자를 제거한다.
DISKPART에 다음 예문을 참고하여 명령줄을 입력한다.
remove letter="드라이브 문자"
2.4.4. 최종 점검
아래 명령줄을 입력하여 모든 설정이 정상인지 확인한다.
Reagentc /info
모든 설정이 정상인 것을 확인하였다면 Windows RE로 부팅되는지를 확인한다.
3. '디스크 관리'를 이용하지 않고 파티션 크기 조절
이 문단은 디스크 관리를 이용하지 않고, 명령 프롬프트와 DISKPART만을 이용하여 Windows RE 파티션의 크기를 조절하는 방법이다. 경우에 따라 이 방법이 더 쉬울 수 있으므로 서술하였다.
3.1. 작업을 위한 사전 준비
먼저 관리자 권한으로 명령 프롬프트와 DISKPART를 연다.
명령 프롬프트에 아래 명령줄을 입력한다.
Reagentc /info
해당 명령줄은 Windows RE의 현재 상태와 온라인 또는 오프라인 이미지에 사용 가능한 복구 이미지를 표시한다.
해당 정보에 따르면 필자의 컴퓨터 "harddisk0(0번 디스크)", "partition5(5번 파티션)"에 Windows RE가 설치되어 있다.
3.2. 복구 파티션 문자 할당
가장 먼저 해야 할 일은 복구 파티션에 드라이브 문자를 할당하는 것이다.
3.2.1. DISKPART에서 디스크 선택
DISKPART에 아래 명령줄을 입력한다.
list disk
목록의 디스크 중 복구 파티션이 설치된 디스크의 번호를 찾아 아래의 예문을 참고하여 명령줄을 입력한다.
select disk "디스크 번호"
필자의 경우 0번 디스크를 선택해야 하므로,
select disk 0
라고 입력하였다.
3.2.2. DISKPART에서 파티션 선택
디스크를 선택하였으면 복구 파티션을 찾아 선택해야 한다.
아래 명령줄을 입력한다.
list partition
상술한 "Reagentc /info"의 정보에 따르면 5번 파티션이 Windows RE 파티션이다.
다른 복구 파티션들은 OEM 복구 파티션이다.
Windows RE 파티션을 찾았다면 아래 명령줄을 입력한다.
select partition "파티션 번호"
필자의 경우 5번 파티션을 선택해야 하므로 아래와 같이 입력하였다.
select partition 5
이제 드라이브 문자를 할당하여야 한다.
3.2.3. DISKPART 파티션 문자 할당
파티션 선택을 완료하였으면 파티션에 드라이브 문자를 할당해야 한다.
DISKPART에 아래의 예문을 참고하여 명령줄을 입력한다.
assign letter="드라이브 문자"
모든 Microsoft 기술 문서에서는 Windows RE 파티션의 문자를 "R"로 할당하므로, 필자 또한 드라이브 문자를 R로 할당하였다.
assign letter="R"
이제 DISM을 이용해 파티션을 캡쳐해야 한다.
3.3. 복구 파티션 캡쳐
복구 파티션을 따로 백업해 두었거나 다른 방법을 이용할 것이라면 이 단계는 건너뛰어도 되지만, 되도록 본 단계를 건너뛰지 않는 것을 추천한다.
"C:\$WinREAgent\Backup" 디렉터리의 백업 파일을 이용할 것이라면 이 글의 "3. 복구 파티션의 Winre.wim 이미지 파일이 손상된 경우"를 참고하면 좋다.
아무튼, DISM을 이용해 파티션을 캡처해야 한다.
관리자 권한으로 연 명령 프롬프트에 아래의 예문을 참고하여 명령줄을 입력한다.
DISM /Capture-Image /ImageFile:"저장할 이미지의 경로" /CaptureDir:"캡쳐할 디렉터리" /Name:"이미지 이름" /Description:"이미지 설명" /Compress:{max|fast|none}
"/Name" 변수는 WIM 파일 내부에서 사용하는 설명을 지정하는 변수이며, "/Description" 변수는 WIM 파일 내부에서 사용할 설명을 지정하는 변수이다. "/Name" 변수는 필수이지만, "/Description" 변수는 필수가 아니다.
"/Compress" 변수는 WIM 이미지 파일을 얼마나 압축할지 정하는 변수이다. "max|fast|none" 세 가지를 지정할 수 있으며, 당연히 압축률이 높을수록 그에 걸리는 시간 또한 증가한다.
필자의 경우, "R 디렉터리"를 "I:\ASDF\"디렉터리에 "RE.wim"파일로 비압축으로 저장하였다.
DISM /Capture-Image /ImageFile:"I:\ASDF\RE.wim" /CaptureDir:"R:" /Name:"REBACKUP" /Compress:None
이미지 백업까지 완료하였으면 이제 복구 파티션의 크기를 조절할 차례이다.
3.4. 파티션 크기 조절
3.4.1. 할당 문자 제거
DISKPART으로 돌아와서, 먼저 복구 파티션에 할당하였던 문자를 제거한다. 그러지 않으면 이후 문자를 할당하는데 오류가 발생할 수 있다.
아래의 예문을 참고하여 명령줄을 입력한다.
Remove letter="드라이브 문자"
문자를 제거하였다면 본격적으로 파티션 크기를 조절할 차례이다.
3.4.2. 복구 파티션 제거
파일 시스템의 특성상, 복구 파티션의 크기를 조절하기 위해서는 먼저 복구 파티션을 삭제해야 한다.
list partition
DISKPART에 "list partition"을 입력하여 자신이 선택한 파티션이 삭제하려는 파티션인지 다시 한번 확인한다. 이상한 파티션 앞에 "*"표가 있다면 잘못 선택된 것이다.
자신이 삭제하려는 파티션이 맞으면, 아래의 명령어를 입력한다.
delete partition override
"delete partition" 명령어는 파티션을 삭제하는 명령어로, "override" 옵션이 추가된 경우 강제로 파티션을 삭제할 수 있다.
3.4.3. 파티션 크기 조절
3.4.3.1. 앞 파티션 축소
복구 파티션을 삭제했으면 복구 파티션 앞의 파티션을 축소해야 한다. 그래야 복구 파티션 크기 확장을 위한 용량을 확보할 수 있다.
DISKPART에 제거한 부팅 파티션 바로 앞의 파티션을 선택한다. 필자의 경우, 복구 파티션은 5번 파티션이었으므로 선택해야 하는 파티션은 4번 파티션이다.
select partition "파티션 번호"
파티션을 선택하였으면 아래 예문을 참고하여 파티션을 축소한다.
shrink minimum="줄이고 싶은 용량(MB)"
숫자는 메가바이트 단위이다. 필자는 1GB(1024MB)를 확보하려 하였으므로 아래와 같이 입력하였다.
shrink minimum=1024
앞의 파티션을 축소하여 공간을 확보했다면 이제 복구 파티션을 생성할 차례이다.
3.4.3.2. 복구 파티션 생성
DISKPART에 아래의 명령줄을 입력한다.
create partition primary
해당 명령줄을 주 파티션(GPT 시스템에서는 기본 데이터 파티션)을 생성하는 명령어로, "/size=<용량(MB)>" 옵션을 뒤에 붙이지 않으면 연소된 빈 볼륨에 파티션을 생성한다.
파티션을 생성하였으면 아래의 예문을 참고하여 생성한 파티션을 포맷한다.
format quick fs=ntfs label="볼륨 레이블"
필자의 경우 아래의 명령줄을 입력하였다.
format quick fs=ntfs label="Windows RE"
해당 명령어는 파티션을 NTFS로 포맷하며 볼륨 레이블로 "Windows RE"를 지정한다.
3.4.3.3. 복구 파티션에 Windows RE 이미지 적용
파티션 포맷까지 완료하였으면 백업해 둔 이미지를 파티션에 적용한다.
명령 프롬프트에 아래의 예문을 참고하여 명령줄을 입력한다.
DISM /Apply-Image /ImageFile:"이미지 파일의 경로" /ApplyDir:"드라이브 문자" /Index:1 /CheckIntegrity
"/CheckIntegrity" 변수는 WIM 파일 손상을 검사하는 변수로 원한다면 붙이지 않아도 된다.
3.4.3.4. 파티션 특성 적용
이미지를 적용하였으면 파티션 특성을 할당하여야 한다.
DISKPART로 돌아와서 복구 파티션을 선택한 뒤(아직은 일반 파티션일 것이다.) 다음 명령줄을 입력한다(UEFI/GPT의 경우).
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
자신이 사용하는 시스템이 레거시 BIOS와 MBR이라면 다음과 같이 입력한다.
set id=27
3.4.3.5. Windows RE 경로 지정
작업이 완료되었으면 Windows에게 복구 이미지의 위치를 알려주어야 한다.
아래의 예문을 참고하여 명령줄을 입력한다.
C:\Windows\System32\reagentc /setreimage /path "<복구 파티션의 드라이브 문자>:\Recovery\WindowsRE" /target C:\Windows
3.4.3.6. Windows RE 활성화
경로 지정에 성공하였으면 Windows RE를 활성화하여야 한다. 그러지 않으면 RE로 진입할 수 없다.
아래 명령줄을 입력한다.
reagentc /enable
3.4.3.7. 드라이브 문자 제거
작업이 완료되었으면 복구 파티션에 할당된 드라이브 문자를 제거한다.
DISKPART에 다음 예문을 참고하여 명령줄을 입력한다.
remove letter="드라이브 문자"
3.4.4. 최종 점검
아래 명령줄을 입력하여 모든 설정이 정상인지 확인한다.
Reagentc /info
모든 설정이 정상인 것을 확인하였다면 Windows RE로 부팅되는지를 확인한다.
여담
파티션의 크기를 조정한 후 뭔가 이상하다면 이 글을 이용해 보자
참고 자료
'컴퓨터 > Windows' 카테고리의 다른 글
Windows 11 개발자 드라이브(ReFS) 만들기 (0) | 2023.09.28 |
---|---|
Windows에서 가상 하드 디스크로 부팅하기 (0) | 2023.09.27 |
DISM을 이용하여 오프라인 Windows에 업데이트 패키지 추가 (0) | 2023.09.04 |
Windows에서 S1-S3 절전 모드 설정 (0) | 2023.08.29 |
사용자가 입력한 PowerShell Cmdlet 기록 찾기 (0) | 2023.08.22 |
댓글