본문 바로가기

Coding

ubuntu 제거 후 grub 커맨드 창 해결 방법 (UEFI) (+CMD 먹통 해결)

이 문제의 오류는 윈도우와 리눅스(우분투) 멀티 부팅을 통해 컴퓨터를 사용하다가,

파티션 통합 혹은 삭제를 통해 리눅스 파티션을 삭제했을 때 발생하는 오류이다.

 

정확히는 grub을 제거하기 이전에 리눅스 파티션을 제거하면 발생하는 오류라고 한다.

 

내 경우엔 그런 거 없이 막 삭제했고, 그러다가 grub 커맨드 창을 3시간 동안 바라봐야했다.

 

일단 그 grub 커맨드 창에서 window로 넘어오는 방법은

insmod part_gpt

insmod chain

set root=(hd0,gpt1)

일단 여기까지 해보고 별 다른 메시지가 출력이 안되면 아마 높은 확률로 이 글까지 안 왔겠지?..

 

만약에 filesystem is unknown 이라고 출력될 경우

ls

검색어를 입력하여 (hd0,gpt1) 조합을 바꿔본다. 결국에는 윈도우의 부트로더가 깔린 곳을 찾아야한다. (대충 그런 느낌..? 정확하진 않다.)

set root=(hdn, gptn)를 했다면...

chainloader /EFI/Microsoft/Boot/bootmgfw.efi

boot

 

를 차례대로 입력해주면 된다. 만약 chianloader ~~가 수행이 안된다면 해당 hdn, gptn의 조합이 윈도우의 부트로더가 아니므로 다른 곳을 찾야아한다. 적어도 내 경우엔 그랬고, (hd0, gpt2) 였다

 

그렇다면 여기서 윈도우가 켜질텐데, 내 경우엔 cmd 창이 먹통이었다. 정확히는 켜지자마자 바로 꺼졌다.

찾아보니까 이건 아나콘다 환경변수 설정 때문이었는데, 설치 시 path 설정을 자동으로 체크해놨다면 발생할 확률 있는 듯? 아효...

내 경우엔 window powershell이 작동이 되어서 powersehll을 관리자모드로 열었고 다음을 입력했다.

1
C:\Windows\System32\reg.exe DELETE "HKCU\Software\Microsoft\Command Processor" /v AutoRun /
cs

여기까지 했을 때 CMD 창을 열 수 있었다.

 

CMD 창을 열어서 부트로더를 다시 잡아주는 작업을 해야하는 건데 (위의 GRUB 창을 다시는 볼 수 없도록)

diskpart를 입력하면 다음과 같이 출력된다.

기본적으로 *이 있는 쪽이 부팅디스크가 된다.

DynGpt 가 보일텐데 사진은 Gpt에 체크가 된 것이고, Dyn에 체크가 된 경우

bootrec /fixmbr

bootrec /fixboot

를 순서대로 입력하면 된다. 부가설명을 하자면 레거시 방식의 윈도우 시스템이 이렇게 부트를 바로 잡을 수 있다고 한다.

MBR인데.. 아래와 같은 방법도 있다고 한다.

cmd 에서 Boosect /nt60 <drive name>: /mbr (drive name은 부팅 드라이브)

 

 

근데 내 경우엔 이게 안됐다..

나와 같은 UEFI 유저, Gpt * 은 다음과 같이 진행하면 된다.

diskpart 상태에서

list vol 을 입력 하면 아래와 같이 출력된다.

여기서 FAT32 형식을 찾으면 된다. 이유는 UEFI 부팅? 형식? 의 EFI 볼륨은 FAT로 포맷되기 때문이다.

내 경우엔 3번 볼륨이 그렇게 되어있으니까..

sel vol 3

assign letter:B:

이런 식으로 파티션으로 지정해줬다. (B에 들어갈 문자는 기존 디스크로 사용하지 않은 아무 문자)

exit

입력하여 diskpart를 빠져나오고

cd /d B:\

로 아까 지정한 파티션으로 입장했다. 이후 

dir

을 입력하여 EFI 디렉토리를 확인했다. (없으면 다른 곳에 있으므로 찾아야한다. ㅠ)

cd EFI

dir

차례대로 했다면 여기에 나처럼, ubuntu 폴더가 있을 텐데 지워주자.

rmdir /S ubuntu

이러면 아마 문제가 해결될 것이다... 아마두..?