Computer >> 컴퓨터 >  >> 시스템 >> Windows 7

Windows 10에서 삭제된 EFI 시스템 파티션 복원하는 방법 (재설치 없이)

이 글에서는 UEFI 컴퓨터에서 실수로 삭제된 Windows EFI 부팅 파티션을 수동으로 복원하는 방법을 소개합니다. OS를 다시 설치하지 않고도 EFI 및 MSR 파티션을 직접 재생성하여 부팅 문제를 해결할 수 있는데요, 이 가이드는 Windows 7부터 Windows 10까지 모든 버전에 적용할 수 있습니다.

EFI 파티션이 삭제되면 어떻게 될까?

UEFI(레거시 BIOS가 아닌) 환경의 컴퓨터에서 EFI 부팅 파티션은 실수로 삭제되거나 포맷되는 경우가 있습니다. 예를 들어 OEM 복구 파티션을 제거하려다가 함께 지워지는 경우가 대표적이죠.

그 결과 Windows 10/8.1/7이 정상적으로 부팅되지 않고, 부팅 장치 선택 화면이 무한히 반복됩니다. 화면에는 Reboot and select proper boot device or insert boot media in selected boot device and press a key와 같은 메시지가 나타납니다. 과연 EFI 파티션(부트 관리자와 BCD 설정이 저장된 곳)을 삭제한 후에도 OS를 재설치하지 않고 Windows를 정상 부팅할 수 있을까요? 결론부터 말하면 가능합니다.

주의: 이 가이드는 디스크 파티션 작업을 포함하고 있어 초보자에게는 권장하지 않습니다. 명령어를 잘못 입력하면 하드 디스크의 모든 데이터가 삭제될 수 있으므로, 진행하기 전에 반드시 중요한 데이터를 별도의 미디어에 백업하세요.

목차

  • Windows의 GPT 디스크 파티션 구조
  • EFI 파티션 삭제 시 발생하는 문제
  • GPT 드라이브에 EFI·MSR 파티션 수동 생성하기
  • EFI 부트로더 및 Windows BCD 복구

Windows의 GPT 디스크 파티션 구조

먼저 UEFI 컴퓨터에서 GUID 파티션 테이블(GPT)을 사용하는 부팅용 하드 디스크의 기본 파티션 구성을 살펴보겠습니다. 최소한 아래와 같은 파티션이 존재해야 합니다.

  • EFI 시스템 파티션(ESP) — 100 MB (파티션 유형: EFI)
  • MSR(Microsoft Reserved) 파티션 — 128 MB (파티션 유형: MSR)
  • 기본 Windows 파티션 — Windows가 설치된 영역

이것이 최소 구성입니다. 포맷되지 않은 드라이브에 OS를 새로 설치하면 Windows 설치 프로그램이 자동으로 이 파티션들을 생성합니다. 또한 제조사나 사용자가 Windows 복구 환경(Windows RE)을 담은 winre.wim 파일 파티션, OEM 제공 시스템 이미지 백업 파티션, 기타 데이터 파티션 등을 추가로 만들 수도 있습니다.

EFI 파티션은 FAT32 파일 시스템을 사용하며, UEFI 컴퓨터의 GPT 디스크에서 필수적인 파티션입니다. GUID는 c12a7328-f81f-11d2-ba4b-00a0c93ec93b입니다. 기본 크기는 100MB이며(4KB 섹터를 사용하는 어드밴스드 포맷 디스크에서는 260MB), 부팅에 필요한 모든 파일이 여기에 저장됩니다.

MSR 파티션(Microsoft System Reserved)은 파티션 관리를 단순화하고 서비스 작업(예: 기본 디스크를 동적 디스크로 변환할 때)에 사용됩니다. GUID 레이블은 e3c9e316-0b5c-4db8-817d-f92df00215ae이며, 드라이브 문자를 받지 않고 사용자 데이터를 저장할 수 없습니다. Windows 10에서는 MSR 파티션 크기가 16MB(Windows 8.1에서는 128MB)이며 NTFS 파일 시스템을 사용합니다. MSR 파티션은 EFI 파티션(ESP)과 Windows 운영체제 기본 파티션 사이에 위치해야 합니다.

기본 파티션에는 설치된 Windows, 프로그램, 사용자 데이터가 들어갑니다. 필요에 따라 추가 데이터 파티션이 존재할 수도 있습니다.

팁: UEFI 컴퓨터에 Windows를 설치하려면 정품 DVD 또는 UEFI용으로 특별히 준비된 부팅 USB 플래시 드라이브가 필요합니다.

EFI 파티션 삭제 시 발생하는 문제

EFI 파티션은 MBR 파티션 테이블 디스크의 '시스템 예약(System Reserved)' 파티션과 유사한 역할을 합니다. 부팅 구성 데이터(BCD)와 Windows 부팅에 필요한 각종 파일이 이곳에 저장됩니다.

컴퓨터가 켜지면 UEFI 펌웨어가 EFI(ESP) 파티션에서 부트로더(EFI\Microsoft\Boot\bootmgfw.efi)를 로드하고 제어권을 넘깁니다. bootmgfw.efi가 Windows Boot Manager를 실행하면, 부트 관리자는 BCD에서 구성 데이터를 읽어온 뒤 winload.efi를 통해 Windows 부팅을 시작합니다.

따라서 EFI 파티션이 삭제되거나 손상되면 해당 드라이브에서는 Windows를 부팅할 수 없습니다. UEFI 오류 메시지 'could not locate \efi\boot\bootx64.efi – not found'가 표시되거나, 부팅 장치를 지정하라는 빈 UEFI Shell만 나타나게 됩니다.

또한 EFI 파티션이 NTFS 파일 시스템으로 포맷되어 있어도 Windows를 부팅할 수 없습니다. 이 경우 새로 설치를 시도해도 아래 오류가 발생합니다.

Windows detected that the EFI system partition was formatted as NTFS. Format the EFI system partition as FAT32, and restart the installation.

GPT 드라이브에 EFI·MSR 파티션 수동 생성하기

시스템이 정상 부팅되지 않으므로, Windows 10(또는 8/7) 설치 미디어나 다른 부팅/복구 미디어가 필요합니다. 설치 미디어로 부팅한 후 첫 번째 설치 화면에서 Shift+F10 키 조합을 누르면 명령 프롬프트 창이 열립니다.

디스크 및 파티션 관리 도구를 실행합니다.

Diskpart

컴퓨터에 연결된 하드 디스크 목록을 확인합니다(여기서는 디스크가 하나뿐인 디스크 0을 예로 들겠습니다. GPT 열에 별표(*)가 있으면 GUID 파티션 테이블을 사용 중이라는 의미입니다).

GPT 열에 *가 없다면 파티션 테이블이 MBR이라는 뜻입니다. 이 경우 컴퓨터가 네이티브 UEFI 모드로 부팅되었는지 먼저 확인해야 합니다(그렇지 않으면 이 가이드대로 진행해도 소용이 없습니다). 파티션 테이블 유형이 변경되었다면 MBR을 GPT로 변환하는 것을 고려해 보세요.

list disk

대상 디스크를 선택합니다.

Select disk 0

디스크의 파티션 목록을 표시합니다.

List partition

이 예제에서는 드라이브에 두 개의 파티션만 남아 있습니다.

  • MSR 파티션 — 128 MB
  • Windows 시스템 파티션 — 9 GB

보시다시피 EFI 파티션이 없습니다(삭제된 상태입니다).

팁: EFI 파티션 자체가 삭제된 것이 아니라 내부 파일만 손상된 경우라면 diskpart로 파티션을 재생성하는 과정은 건너뛰어도 됩니다. 대부분의 경우 EFI 부트로더만 복구하면 충분합니다.

우리의 목표는 EFI와 MSR 파티션을 위한 최소 228MB의 할당되지 않은 공간을 확보하는 것이므로, 남아 있는 MSR 파티션을 삭제해야 합니다. GUI 도구인 GParted로 삭제할 수도 있지만, 여기서는 명령 프롬프트에서 바로 진행하겠습니다.

중요! 이 단계에서는 매우 주의해야 합니다. Windows 파티션이나 사용자 데이터가 있는 파티션을 실수로 삭제하지 않도록 각별히 신경 쓰세요.

삭제할 파티션을 선택합니다.

Select partition 1

그리고 삭제합니다.

Delete partition override

Windows 파티션(9GB)만 남았는지 다시 확인합니다.

List partition

이제 EFI와 MSR 파티션을 수동으로 다시 생성할 차례입니다. diskpart 컨텍스트에서 아래 명령어를 하나씩 실행하세요.

디스크를 선택합니다.

select disk 0

100MB 크기의 EFI 파티션을 생성하고, FAT32로 포맷한 후 드라이브 문자를 할당합니다.

create partition efi size=100

100MB 파티션(Partition 1 앞에 별표 표시)이 선택되어 있는지 확인한 뒤 포맷과 문자 할당을 진행합니다.

list partition
select partition 1
format quick fs=fat32 label="System"
assign letter=G

다음으로 128MB 크기의 MSR 파티션을 생성합니다(Windows 10에서는 16MB면 충분합니다).

create partition msr size=128
list partition
list vol

이 예제에서는 Windows 기본 파티션에 이미 C: 드라이브 문자가 할당되어 있습니다. 만약 그렇지 않다면 아래와 같이 문자를 할당하세요.

select vol 1
assign letter=C
exit

EFI 부트로더 및 Windows BCD 복구

UEFI 컴퓨터용 GPT 드라이브의 최소 파티션 구조를 만들었다면, 이제 새 파티션에 EFI 부팅 파일을 복사하고 부트로더 구성 파일(BCD)을 생성해야 합니다.

Windows가 설치된 드라이브(C:)에서 EFI 환경 부팅 파일을 새 EFI 파티션(G:)으로 복사합니다.

mkdir G:\EFI\Microsoft\Boot
xcopy /s C:\Windows\Boot\EFI\*.* G:\EFI\Microsoft\Boot

이제 Windows BCD 부트로더 구성을 새로 작성합니다.

g:
cd EFI\Microsoft\Boot
bcdedit /createstore BCD
bcdedit /store BCD /create {bootmgr} /d “Windows Boot Manager”
bcdedit /store BCD /create /d “My Windows 10” /application osloader

'My Windows 10'이라는 이름은 원하는 다른 이름으로 변경해도 좋습니다.

마지막 명령이 생성된 항목의 GUID를 반환합니다. 다음 명령어에서 {your_guid} 자리에 이 GUID를 넣으세요.

bcdedit /store BCD /set {bootmgr} default {your_guid}
bcdedit /store BCD /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
bcdedit /store BCD /set {bootmgr} displayorder {default}

이어지는 bcdedit 명령어들은 {default} 컨텍스트에서 실행됩니다.

bcdedit /store BCD /set {default} device partition=c:
bcdedit /store BCD /set {default} osdevice partition=c:
bcdedit /store BCD /set {default} path \Windows\System32\winload.efi
bcdedit /store BCD /set {default} systemroot \Windows
exit

이제 컴퓨터를 재시작해 보세요. 첫 시도에 부팅되지 않을 수도 있습니다. 그런 경우 아래 순서를 따라 해 보세요.

  1. PC의 전원을 끕니다.
  2. 하드 드라이브를 물리적으로 분리합니다.
  3. PC를 켜고 부팅 오류 창('An Operating System not found')이 나타날 때까지 기다린 후 다시 전원을 끕니다.
  4. 하드 드라이브를 다시 연결합니다.

이 테스트는 UEFI 펌웨어를 사용하는 VMWare 가상 머신에서 진행되었는데, 부팅 메뉴에 새 항목을 추가하여 EFI 파티션의 EFI\Microsoft\Boot\bootmgrfw.efi 파일을 선택해야 했습니다.

일부 UEFI 메뉴에서도 같은 방식으로 파티션의 부팅 우선순위를 변경해야 할 수 있습니다.

이 모든 과정을 마치면 Windows가 정상적으로 부팅될 것입니다.

팁: 그래도 부팅되지 않는다면 EFI 파티션에만 부팅 플래그가 설정되어 있는지 확인해 보세요. GParted LiveCD를 사용하면 쉽게 확인할 수 있습니다.