ubuntu | 부팅 복구

디스크 2개에 우분투와 윈도우를 설치하고 사용중입니다.

윈도우를 포맷하고 부팅을 했는데 우분투 부트매니저가 동작을 하지 않는 문제가 발생했습니다…

원인은 모르겠고…다행히 우분투 부팅 usb로 붙어보니 파티션들을 다 살아 있었어요.

.....
sda           8:0    0 931.5G  0 disk 
├─sda1        8:1    0   976M  0 part /boot/efi
├─sda2        8:2    0   488M  0 part 
├─sda3        8:3    0   1.9G  0 part /boot
├─sda4        8:4    0  30.5G  0 part [SWAP]
└─sda5        8:5    0 897.7G  0 part /
...

예전 같았으면 걱정을 많이했겠지만, 잘못 되면 포맷한다는 생각으로 복구를 진행해 보았습니다.

(gpt와 함께라면 망가트릴 지언정 겁나진 않…사실 데이터가 날라갈까봐 긴장되긴 합니다…)

복구 과정

1. Ubuntu USB로 부팅

부팅하고 Try Ubuntu를 선택합니다. 참고로 현제 환경은 Ubuntu Desktop입니다.

설치는 아래영상 내용으로 설치했었습니다. 그래서 파티션구조는 까먹었지만 영상을 찾아보고 확인 할수 있었습니다.

directory mount

아래 명령어를 차례대로 입력했습니다.

# 마운트 지점 생성
sudo mount /dev/sda5 /mnt                # / (루트) 파티션 마운트
sudo mount /dev/sda3 /mnt/boot           # /boot 파티션 마운트
sudo mount /dev/sda1 /mnt/boot/efi       # EFI 파티션 마운트 (UEFI 시스템의 경우)

# 필수 시스템 디렉토리 바인딩
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

chroot 진입

sudo chroot /mnt

GRUB 재설치

재설치를 위해서 시스템을 확인합니다.

[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"

저는 UEFI로 확인.

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
update-grub

아래 같은 메세지가 나왔는데 반영 된것 같으므로 통과

grub-install: warning: EFI variables cannot be set on this system.
grub-install: warning: You will have to complete the GRUB setup manually.
Installation finished. No error reported.

종료 및 재부팅

exit
sudo umount -R /mnt
sudo reboot

재부팅후 문제가 발생했습니다.

/dev/sda5: clean, 1213764/58834944 files, 41701885/235315456 blocks
you are in emergency mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reoot, "systemctl default" or "exit"
to boot info default mode.
Press Enter for maintenance
(or press Control-D to continue):

부팅이 뭔가 제대로 안되었습니다.

journalctl -xb -p err

에러로그를 못남겼는데…일단은 fstab에 이전에 설정된 UUID와 새로운 파티션의 UUID가 달라서 제대로 연결이 안되고 있는점을 발견했습니다.

# fstab조회
cat /etc/fstab

# block id조회
blkid

fstab을 수정해서 맞춰주니 해결되었습니다.

윈도우 멀티 부팅 재설정

EFI 파티션에 Windows가 존재하는지 확인

sudo ls /boot/efi/EFI/

정상일 경우 예시:

Boot  Microsoft  ubuntu
sudo ls /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

→ 파일이 있으면 OK.
→ 없다면 Windows 부트 파일이 삭제되었거나 EFI 파티션이 덮어씌워짐 (복원 필요)


os-prober 설치 및 활성화

Ubuntu 22.04 이후 버전은 기본으로 os-prober가 비활성화되어 있습니다. 이를 활성화해야 GRUB이 Windows를 찾습니다.

sudo apt install os-prober
sudo vi /etc/default/grub

다음 줄을 추가하거나 주석 해제하세요:

GRUB_DISABLE_OS_PROBER=false

저장 후 아래 명령 실행:

sudo update-grub

🟢 이때 출력에서 다음과 같은 메시지가 보이면 성공입니다:

Found Windows Boot Manager on /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi

재부팅 후 확인

sudo reboot

→ GRUB 부트 메뉴에서 Windows가 다시 나타나는지 확인합니다.