듀얼부팅 EFI 부트 파티션 복구
Linux grub 듀얼부트에서 Windows 11 부팅 매니저를 복구한 작업기록입니다.
개요
GNU/Linux Debian 13을 메인 운영체제로 윈도우즈 11을 듀얼부팅 설정하여 함께 사용하고 있었다. 부팅 매니저는 grub
을 사용하고 있는데 디스크를 2개로 나누어 각 운영체제를 설치하고 리눅스 디스크의 EFI 부팅 파티션에 설정하여 사용하고 있었다. 최근 데비안 13버전으로 디스크 포맷을 진행하면서 EFI 관련 설정이 모두 제거되어 윈도우즈 디스크로 부팅할 수 없는 현상이 발생하여 복구를 진행하였다.
파티션
nvme 디스크 두개로 나누어 관리중이다. vfat 형식으로 된 파티션이 부트 파티션으로 리눅스 설치시 포맷을 진행하면서 윈도우즈 부트 파일이 사라진 것이 원인이다. nvme1n1
디스크의 각 파티션들은 예약, 주, 복구 파티션으로 부팅과 관련된 파티션은 존재하지 않는다.
윈도우즈 EFI 부트 복구
ntfs 볼륨을 마운트하여 파일시스템내에 위치한 EFI 부트 파일들을 복사하고 디스크 UUID를 지정하는 등의 작업을 진행해봤지만 정상적으로 작동하지 않았다. 가장 확실한 방법은 윈도우즈 설치 USB를 만들어 부트 파일을 복원하는 것이었다.
윈도우즈 설치 화면에서 CLI 접속
설치 USB를 만든 후 윈도우즈 설치 화면으로 진입하여 Shift + F10
을 입력하면 CLI 입력 화면이 표시된다. 이곳에서 디스크를 확인하고 파티셔닝을 진행할 수 있다.
예제 | EFI 파티션 |
---|---|
diskpart 예제 | EFI 파티션 |
diskpart
list disk
select disk X
list part
select part Y
assign letter=S
exit
CLI에 접속하면 diskpart
를 사용할 수 있다. 용량을 확인하여 윈도우즈가 설치된 디스크와 리눅스가 설치된 디스크를 구분할 수 있었는데 동일한 용량을 사용하고 있다면 다른 방법을 사용해야 한다. 'EFI가 위치하는 파티션을 찾아 선택'해야 한다. 나의 EFI 파티션은 2번 디스크의 1번 파티션이다. 파티션을 선택한 후에 assign letter=S
명령으로 S
레이블과 연결한다.
준비가 끝났다면 bcdboot /v C:\Windows /s S: /f UEFI
명령을 입력하여 윈도우즈 부트 파일 복구를 진행할 수 있다. 듀얼부팅 설정시에 부트 파티션을 양쪽 디스크 모두 만들어 두었다면 이 글을 보고 있을 필요가 없겠지만 동일한 현상으로 인해 복구를 진행하고 있다면 이 명령은 실패할 수 있다.
복구 실패
옵션 /v
를 넣어 자세한 실패 이유를 확인할 수 있는데 C
볼륨 레이블에서 복사할 부트파일의 경로를 찾을 수 없기 때문에 발생한 오류임을 확인할 수 있었다.
볼륨 목록
diskpart 프로그램에서 list volume
명령을 실행하면 어떤 볼륨들이 연결되어 있는지 확인할 수 있다. C
레이블로 연결된 볼륨이 ssd_storage
라는 외장디스크이기 때문에 발생한 오류였다. 아마도 ntfs 형식으로 마운트된 디스크를 자동으로 연결하기 때문에 발생한 문제로 보인다. 이럴때에는 연결 되어있는 C
볼륨 레이블을 제거하고 윈도우즈가 설치되어있는 주 디스크를 연결해야한다.
diskpart
select volume 0
remove letter=C
select volume 3
assign letter=C
exit
bcdboot /v C:\Windows /s S: /f UEFI
레이블 C
와 연결된 볼륨을 선택하여 제거한다. 파일 시스템 유형과 용량 등을 확인하여 윈도우즈가 설치되어 있는 정확한 볼륨을 선택하고 C
레이블과 연결한 후 다시 복구명령을 진행하면 된다. 정상적으로 복구가 완료되면 설치 화면을 나가도 좋다.
os-prober 활성화
GRUB_DISABLE_OS_PROBER=false
부트 파일 복구를 완료하였으면 다시 리눅스로 들어와 Grub 정보를 갱신해야 한다. 재설치와 같은 작업으로 인한 복구라면 /etc/default/grub
정보도 초기화 되어있을 것이다. 파일에 주석처리된 GRUB_DISABLE_OS_PROBER=false
부분을 다시 활성화 시켜주고 sudo update-grub
명령을 실행한다.
grub 갱신
sudo os-prober
sudo update-grub
grub 옵션을 변경한 후에 재부팅하면 자동으로 다른 디스크에 있는 부팅 매니저 설정을 진행하는 sudo os-prober
명령을 사용할 수 있다. 해당 명령을 실행하면 grub이 갱신된다. sudo update-grub
을 한 번 더 실행하여 명확히 해주고 재부팅을 진행하면 grub 화면에서 윈도우즈 부팅을 선택할 수 있다.
초판: 2025. 10. 06. 10:09:14
© 2025 이 문서는 "CC BY-SA 4.0 국제규약" 라이선스로 배포 되었습니다. 모든 권리는 저자에게 있습니다.