윈도우와 리눅스를 듀얼부트로 쓰다가 리눅스 파티션을 지우거나 크기를 조정한 뒤 재부팅하면, 윈도우 선택 화면 대신 아래처럼 검은 화면에 grub rescue>만 뜨는 경우가 있습니다.
error: unknown filesystem.
Entering rescue mode...
grub rescue>
윈도우가 망가진 게 아니라, 부팅을 맡고 있던 GRUB이 자기 파일(/boot/grub)을 찾지 못해서 멈춘 상태입니다. 윈도우 데이터는 그대로 있으니 침착하게 아래 순서대로 진행하면 됩니다.
1. 먼저 확인할 것: 리눅스를 살릴지, 윈도우만 남길지
| 상황 | 가야 할 방법 |
|---|---|
| 리눅스 파티션이 아직 있고 계속 쓸 예정 | 2번: grub rescue에서 임시 부팅 후 GRUB 재설치 |
| 리눅스를 이미 지웠거나 더 이상 안 씀 | 3번(UEFI) 또는 4번(레거시 BIOS): 윈도우 부트로더로 복구 |
내 PC가 UEFI인지 레거시인지는 grub rescue 화면에서 ls를 입력하면 대략 알 수 있습니다. 파티션이 (hd0,gpt2)처럼 gpt로 나오면 대부분 UEFI, (hd0,msdos5)처럼 msdos로 나오면 레거시(MBR) 방식입니다.
2. 리눅스가 남아 있을 때: rescue 모드에서 임시 부팅
ls로 보이는 파티션을 하나씩 열어 보면서 /boot/grub이 들어 있는 파티션을 찾습니다.
grub rescue> ls
(hd0) (hd0,gpt1) (hd0,gpt2) (hd0,gpt3) (hd0,gpt5)
grub rescue> ls (hd0,gpt5)/boot/grub
fonts/ grub.cfg grubenv x86_64-efi/ ...
error: unknown filesystem이 나오는 파티션은 윈도우(NTFS)나 EFI 파티션이니 건너뛰면 됩니다. grub.cfg가 보이는 파티션을 찾았다면 아래 4줄을 그대로 입력합니다. 예시의 (hd0,gpt5)는 본인 PC에서 찾은 값으로 바꿔 주세요.
set root=(hd0,gpt5)
set prefix=(hd0,gpt5)/boot/grub
insmod normal
normal
평소 보던 GRUB 메뉴가 뜨면 리눅스로 부팅한 다음, 터미널에서 GRUB을 다시 설치해야 재부팅 후에도 유지됩니다. 지금은 임시로 띄운 것뿐입니다.
# UEFI 시스템 (우분투 기준)
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
sudo update-grub
# 레거시 BIOS 시스템 (디스크 이름은 lsblk로 확인)
sudo grub-install /dev/sda
sudo update-grub
update-grub 실행 결과에 Found Windows Boot Manager가 보이면 윈도우 항목도 정상적으로 다시 잡힌 것입니다. 보이지 않으면 /etc/default/grub에 GRUB_DISABLE_OS_PROBER=false를 추가하고 다시 실행하세요.
3. 리눅스를 지웠을 때 (UEFI): 윈도우 부트 관리자로 되돌리기
UEFI에서는 대부분 바이오스(펌웨어) 부팅 순서만 바꿔도 바로 해결됩니다. 부팅 시 F2·Del 등으로 설정에 들어가 Boot 메뉴에서 Windows Boot Manager를 1순위로 올리고 저장합니다. ubuntu 항목이 남아 있다면 순서를 아래로 내리거나 삭제합니다.
Windows Boot Manager 항목 자체가 없거나 부팅이 안 되면, 윈도우 설치 USB로 부팅해서 컴퓨터 복구 → 문제 해결 → 고급 옵션 → 명령 프롬프트로 들어갑니다.
diskpart
list disk
select disk 0
list vol
:: FAT32, 100~300MB 정도인 볼륨이 EFI 파티션입니다. 번호 확인 후
select vol 3
assign letter=S
exit
:: 복구 환경에서는 윈도우가 C:가 아닐 수 있으니 먼저 확인
dir C:\Windows
dir D:\Windows
:: Windows 폴더가 있는 드라이브로 실행 (예: C:)
bcdboot C:\Windows /s S: /f UEFI
부팅 파일을 만들었습니다라는 메시지가 나오면 USB를 빼고 재부팅합니다. 남은 ubuntu 부팅 폴더까지 정리하고 싶다면 같은 명령 프롬프트에서 rmdir /s S:\EFI\ubuntu로 지울 수 있습니다. 단, 리눅스를 다시 쓸 계획이 없을 때만 실행하세요.
4. 리눅스를 지웠을 때 (레거시 BIOS/MBR)
MBR 방식은 디스크 맨 앞의 부트 코드가 GRUB으로 덮여 있어서, 이를 윈도우 부트 코드로 되돌려야 합니다. 마찬가지로 설치 USB의 명령 프롬프트에서 실행합니다.
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
최근 윈도우 10·11 복구 환경에서는 bootrec /fixboot가 액세스가 거부되었습니다로 실패하는 경우가 많습니다. 이때는 bootrec /fixmbr까지만 실행한 뒤, 3번처럼 윈도우 드라이브를 확인하고 bcdboot C:\Windows /f BIOS로 부팅 파일을 다시 만들면 대부분 해결됩니다.
5. 그래도 안 될 때 점검 순서
- 부팅 모드 불일치: 바이오스에서 UEFI/Legacy(CSM) 설정이 설치 당시와 다르면 위 방법이 먹히지 않습니다. 설치 당시 모드로 맞춘 뒤 다시 시도합니다.
- 여러 디스크 사용: GRUB이 다른 디스크에 설치돼 있었을 수 있습니다. 바이오스 부팅 디스크 순서에서 윈도우가 있는 디스크를 1순위로 둡니다.
- 설치 USB가 없을 때: Windows PE 기반 USB와 BOOTICE 같은 도구로도 부트 섹터를 복구할 수 있습니다. 순서는 BOOTICE로 MBR·PBR·BCD 복구하기에 정리했습니다.
정리
- grub rescue는 윈도우 고장이 아니라 GRUB이 파일을 못 찾는 상태
- 리눅스를 쓸 거면
set root / set prefix / insmod normal / normal로 띄운 뒤 GRUB 재설치 - 윈도우만 쓸 거면 UEFI는 부팅 순서 변경 또는
bcdboot, 레거시는bootrec /fixmbr+bcdboot
파티션 작업 전에는 윈도우 설치 USB를 미리 하나 만들어 두는 것이 가장 확실한 보험입니다.