메모장2017. 5. 28. 16:09

-윈도우10과 우분투 멀티부팅하던중, 우분투 삭제로 인해 발생한 부팅장애 처리



주말 내도록 삽질한 내용을 한번 포스팅 해보고자합니다.

본인의 노트북에 c와 d드라이브로 파티션을 나누었습니다.

c드라이브에는 윈도우 10을 설치해서 기본적으로 사용했고, d드라이브에는 리눅스의 하나인 우분투 데스크탑 버전을 설치했습니다. 별도의 멀티부트 설정을 할 필요없이 후에 설치한 우분투에서 grub으로 설정해서 윈도우로 부팅할것인지 우분투로 설치할것인지 구분해 주더군요.

그런데 멀티부트를 할 경우 결국 윈도우만 사용하게 된다고 하는 글들을 본거같아서 윈도우10으로 부팅을 한 다음 virtual box로 리눅스 우분투를 설치한 다음 푸티로 가지고 노는게 좋을것이라는 의견이 많더군요.

제 피씨 사양이 그렇게 좋지는 않지만 그정도는 충분히 가능할거같아서 과감히 d드라이브에 있는 우분투를 삭제했습니다. 그리고 한참 프로그래밍하고 놀다가 컴퓨터를 껏습니다. 그리고는 다시 부팅을 하는데...

해당 스크린샷은 인터넷에서 퍼온 것입니다. 위와 동일한 에러가 났습니다.



안타깝게도 제 폰으로 찍지를 못했네요.

여튼 막막한 상황이었습니다. ls 명령어는 먹히는거같은데, 아이폰으로 다급히 구글링해봤습니다.


1.첫번째 삽질. grub에서 윈도우로 접속해 보자.


구글링해본 정보론 ls로 윈도우가 설치된 hd를 찾으라고 합니다.

그리서 만약 (hd0,msdos1)에 윈도우가 설치되었다는 것을 확인하면

GRUB > rootnoverify (hd0,msdos1)

GRUB > chainloader  +1

GRUB > boot


이렇게 윈도우로 접속한 다음에, 윈도우에서 bootsect.exe 라는 파일을 받고 어쩌고 복구하라는 내용을 보았습니다.

그러나...

제 경우는 무슨이유인지 몰라도 rootnoverify가 unkown 이라고 뜨기에  애초에 실행이 불가능했습니다.

스택오버플로우에도 rootnoverify 라고 설명이 되어있었지만... 제 컴퓨터에서는 아에 실행이 안됩니다.

그냥 윈도우 10 usb 설치 씨디로 c와 d 다 포멧하고 c에 새로 설치하면 해결될법한 문제였습니다만 안타깝게도 윈도우10usb가 안보입니다.

우분투 부팅 usb로 d드라이브에 다시 우분투를 설치했습니다.

다행히도 d드라이브로 우분투로만은 잘 부팅되었습니다.


2. 우분투에서 윈도우의 grub을 복구해보자.


저 뿐만 아니라 멀티부팅으로 윈도우 우분투를 사용하다가 우분투만 삭제하게 될경우, 부팅이 되지 않는 문제를 가진 사람들이 제법 있었습니다.

그분들의 경험을 토대로 해결책을 마련하려 했습니다.


우선 우분투에서 


sudo add-apt-repository ppa:yannubuntu/boot-repair

sudo apt-get update

sudo apt-get install -y boot-repair


로 boot-repair를 설치해봅니다. 그러면 망가진 grub을 제대로 잡아줄수도 있다고 하더군요.


sudo boot-repair로 실행합니다.


그러면 친절하게 한글말로 설명도 나오고 쭉쭉쭉 진행했습니다.

예 예 누르고 진행하다가 완료후 부팅해봅니다.

그럼 grub 표시가 뜨는걸 확인할수 있습니다. 단 예제 작성하신분들은 윈도우와 우분투가 같이 떳었는데 우분투 하나만 있더군요. 사실 복구한 의미가 없어집니다.


grub 창에 내용들도 vi 편집기로 들어가서 수정하면 뭔가 될거같기는했습니다만 머리가 아파오더군요.


그냥 외장하드에 있는 윈도우10 iso파일을 usb로 부팅디스크를 만들어서 다 밀고 새로 깔아보자 라는 생각이들더군요.


3. 우분투에서 윈도우10 부팅 디스크를 만들어보자.

사실 저에게 윈도우 10 부팅 디스크만 있었다면 아무 문제가 안되는 일이었습니다.

아님 세컨드로 회사에 짱박아둔 노트북만 있었어도 쉽게 처리할수 있는 일이었을겁니다.


리눅스는 학부생시절에 임베디드 수업시간에 커널 수업시간때 잠깐 써본게 다고, 컨테이너 내리고 올리는 정도, 에러 로그 읽는정도 밖에 안썻습니다. 그래서 그런지 리눅스에서 윈도우10 부팅 디스크를 만드는것도 쉽지는 않더군요.


일단 사용되는 프로그램은 두개 정도 추려냈습니다.


winusb라는 프로그램과 unetbootin라는 프로그램이 있더군요.


다른 사람들은 잘만 쓰는거 같던데 제 피씨에서는 죽어도 winusb는 설치가 안됩니다.

sudo apt-get update

sudo apt-get upgrade

이런걸 다 했지만


sudo apt-get install winusb

제 노트북에서는 winusb 절대 설치가 안됩니다.


그래서 하는수없이


sudo apt-get install unetbootin

명령어로 unetbootin을 설치해봅니다.


여기서 제가 삽질하게 된것이 unetbootin의 경우 usb가 fat32인 경우만 인식합니다.

이게 왜문제인가 하니, 윈도우10은 4기가가 넘어가는데 이럴경우 제대로 설치가 안됩니다.

부팅 디스크를 만든줄 알았지만 몇차례 시도해도 전혀 윈도우10을 읽지를 못합니다.


ntfs로 usb를 포멧한 경우에만 설치가 됩니다.


그래서 구글링해본결과 unetbootin-linux-506 버전을 설치하면 Show All Drives 옵션이 있어서 가능하다는 이야기였습니다.


링크


하지만... 이미 설치되 있어서 그런지 


sudo ./unetbootin-linux-506


이렇게 해봐도 아무반응이 없더군요.

그래서 꼼수를 부려봤는데, 

1. 처음에 usb를 fat로 포멧합니다. 

2. 그러면 unetbootin을 실행시키면 드라이브를 잡습니다.

3. 이때 다시 usb를 ntfs로 포멧합니다. 그리고 설치 디스크를 만듭니다.

그러니깐 성공하네요.

말로는 엄청 짧은거같은데 주말 내내 고생해서 마무리했습니다.


요약하자면

1.c드라이브에 윈도우10 설치. d드라이브에 우분투 설치. 멀티부팅으로 운영

2.윈도우10으로 부팅후 d드라이브 포멧.

3.종료후 다시 부팅하면 윈도우로도 부팅이 안되는 문제 발생

4.우분투를 d드라이브에 새로 깔면 우분투로만 접속 가능

5.우분투에서 윈도우 10 부팅 usb를 만들어서 부팅한다음 c, d드라이브 싹 다 포멧하고 c에 윈도우 설치.


윈도우가 없는 상태라서 스크린샷은 별로 남기지를 못했네요.

만약 윈도우와 리눅스를 같이 쓰시는 분이라면 윈도우로 부팅해서 컴퓨터 관리자에서 리눅스가 설치된 하드를 삭제할경우, 종료하시기전에 grub 멀티부팅 설정도 반드시 제거해 주셔야 좋으실겁니다.


Posted by Joseph514