부트로더(boot loader) 그러브(grub) & 멀티부팅(Multi Booting)을 위한 grub 관리

이전의 포스트에서 잠깐 언급했던 부분을 이번에 별도로 이야기해 보겠습니다.
여러 OS를 사용하면서 ,그중 하나의 파티션을 포맷할때 꼭 해야할 작업

제 블로그를 방문 하시는 많은 분들이 

우분투제거 & Grub제거하기 http://bagjunggyu.blogspot.kr/2012/09/grub.html
GRUB 복구,복원하기 (grub rescue) http://bagjunggyu.blogspot.kr/2012/09/grub_29.html

를 통해서 찾아 오시는데요

아마 이런 이유로 찾아 오시지 않을까요?
그 첫번째, windows와 우분투 듀얼부팅을 하다가
우분투를 지우려고 파티션을 지웠는데, grub rescue>_ 를 만나서 찾아 오시는 분들

두번째는 ,멀티부팅으로 여러 os를 설치해서 사용하시다가
그중에 한 os 의 파티션을 지웠는데,grub rescue>_ 를 만나서 찾아 오신분들

세번째는 grub를 지우거나,위치를 변경해서 설치하는 등의 작업을 하다가 
어떤이유로 인해서 grub rescue>_ 를 만나서 찾아 오시는 분들

정도로 나뉘어 지지 않을까 합니다.

물론 ,모두다 boot-repair를 통해서 복구 가능합니다.
또는,이 boot-repair를 이용해서 grub를 읽는 os를 바꿀수도 있습니다.

를 보시면 나옵니다.


오늘은,이중 두번째 경우에 관해서 좀더 이야기를 해볼까 합니다.
어떻게 하면,grub rescue>_ 를 만나지 않고 grub를 지우거나, 파티션을 지울 수 있을까요?
그리고,멀티부팅을 하면서 어떻게 grub관리를  하는 것이 효과적일까요?

GRUB
GRUB란 무엇을 말하는 걸까요?
위키백과의 설명에 따르면 http://ko.wikipedia.org/wiki/GRUB
정식 명칭은 GNU GRUB (그뉴 그러브) ,GNU 프로젝트의 부트로더를 일컫는 말이며
GNU GRUB 이전의 이름은 GRand Unified Bootloader 이었고,
이것은 대통일 이론(Grand Unitied Theory)의 패러디랍니다.
대부분 리눅스 배포판 부트로더로 사용하고,
체인 로딩 기능을 이용해서 windows를 불러올수도 있답니다.
즉,
리눅스의 부트로더를 GRUB라고 부르고 있는 것입니다.

부트로더(boot loader)
위키백과의 설명에 따르면 : http://ko.wikipedia.org/wiki/부팅
운영체제가 시동되기 이전에 미리 실행 되면서 
커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 
최종적으로 운영체제를 시동시키기 위한 목적을 가진 프로그램을 말한답니다.

마스터 부트 레코드 (master boot record)
위키백과의 설명에 따르면 : http://ko.wikipedia.org/wiki/마스터_부트_레코드
줄여서 MBR 또는 파티션 섹터 (partition sector)라고도 하며
파티션된 기억장치의 첫 섹터(섹터 0)인 512바이트 시동 섹터랍니다.
파티션 되지 않은 장치의 시동 섹터는 볼륨 부트 레코드라고 한답니다.

음...이런 것이군요....

이 grub를 설치하는 위치에 따라 멀티부팅을 관리하는 방법이 달라지는데요
직접 os를 설치하면서 살펴보겠습니다.

설치되어 있는 os - Windows7 , /dev/sda1
                        Linux Mint 13 maya mate , /dev/sda5 그래서 (hd0,5)가 됩니다.
설치할 os -------- Ubuntu 13.04 Raring Ringtail (development branch) 입니다.

Ubuntu 13.04는 아직 알파2버전이며,여러가지 테스트를 위한 목적과, 
개발에 도움을 주기위한 오류보고등의 참여용 으로만 설치 하시길 바랍니다.
알파1 버전을 사용해보고는 전 우분투는 무조건!! 13.04^^이라고 생각했답니다.
현재 알파2버전은 compizconfig settings manager를 이용하지 않길 바라는의도가 있어 보입니다.
아마도 가장 오류보고가 자주 나기 때문이 아닐까 합니다.

캐노니컬은 compiz를 어떻게 해결할까,virtualbox문제도,ntfs 파티션에도  문제를 일으키지 않게도 해야하구요 
그럼에도,이번의 Ubuntu 13.04가 전 좋습니다.
전체적으로 빠르고,여러가지로 아기자기하게 변화가 많이 생겼습니다.
덕분에 5월에 나올 Linux Mint 15 Olivia를 한껏 기대에 부풀게 합니다.

설치는 Booting usb가 아닌, Grub를 이용해서 설치하겠습니다.
이 포스트를 참고하시면 좋습니다.

그럼 시작하겠습니다

우선 설치할 Ubuntu 13.04 의 iso 를 /home/사용자 폴더로 옮겨주세요
편리하게 이용하려고 하는 것입니다.

이제,터미널을 열어서 이렇게 입력합니다.

sudo pluma /boot/grub/grub.cfg

이런 설명이 있는 곳을 찾으세요 ,보이는 숫자40은 언제든 변하는 겁니다.
숫자가 아닌 내용을 살피셔서 이 내용이 있는 곳을 찾으세요
이곳에 설치명령어를 입력할겁니다.
이렇게 입력을 합니다.
다 하셨으면 ,저장을 누르고 창을 닫습니다.

컴퓨터를 다시시작해주세요
다시시작하면 grub 화면  맨아래에 /home/사용자/raring-desktop-i386.iso 이라고 나올겁니다.
선택하셔서 Enter를 눌러 시작해줍니다.

Install Ubuntu 13.04 가 보이시죠?Ubuntu 13.04 설치화면입니다. 
그곳에서 터미널을 실행 주세요 ,Ctrl + Alt + T 누르시면 됩니다.
터미널에서 
sudo umount -l -r -f /isodevice 를 실행 하셔서 
isodevice를 unmount 해준후에, Install Ubuntu13.04를 눌러 설치를 시작합니다.


이제부터 오늘의 포스트 주제를 이어 가겠습니다.
이곳에서 부터 ,grub(부트로더)의 위치가 결정되는 데요

DUAL Booting (멀티부팅중 2개의 os를 사용하는 경우)
windows 와 함께 Linux Mint 혹은 Ubuntu등을 하나더 설치 하는 경우입니다.
이 경우도 두가지로 나뉠 수 있습니다.
파티션을 만들어 놓지 않고 설치관리자가 알아서 하게 두는 방법과
파티션을 미리 만들어 놓고 설치하는 경우입니다.
원하시는 방법으로 설치하시면됩니다.

자동으로 설치하는 방법으로 설치하는 경우부터 보겠습니다.
아래의 그림처럼 ,Ubuntu을(를) 같이 설치를 선택하시면,

이런 화면이 나오면서 기존의 파티션을 함께 나누어 쓰고자 할겁니다.



부트로더는 자동으로 /dev/sda(마스터 부트 레코드)에 설치됩니다.
이 그림은 내용의 이해를 돕기위해 별도로 캡쳐한것이구요


물론 os는 별도의 파티션을 따로 만들게 되며,이경우에는 /dev/sda8이 될겁니다.
이유는 제가 파티션을 이렇게 사용하고 있기 때문입니다.
/dev/sda1 = Windows7
/dev/sda2 = Windows7 백업 (실제로는 /dev/sda3에 백업을 했지만 ,백업한 것을 하나의 별도 파티션으로 읽더군요)
/dev/sda3 = Repository
/dev/sda4 = extended
/dev/sda5 = Linux Mint 13 Maya Mate
/dev/sda6 = linux-swap
/dev/sda7 = Server
가 이미 만들어져 있기때문에,새로 만들어지는 파티션은 자동으로 /dev/sda8이 됩니다.
Ubuntu 13.04 설치 관리자가 자동으로 이렇게 파티션을 만들고 설치할겁니다.

요약하면,이렇습니다.
Ubuntu 13.04 설치관리자가 자동으로 파티션 /dev/sda8을 만들어서 Ubuntu 13.04를 설치하고
Ubuntu 13.04 설치관리자가 부트로더(GRUB)를 자동으로 /dev/sda(마스터 부트 레코드)에 설치를 하는 경우입니다.

파티션을 만들어 놓은 경우는 아래의 그림을 참고하시구요
다만,부트로더를 MBR (/dev/sda)에 설치하도록 설정 하시면 됩니다.

Multi Booting (Dual Booting + 몇개의 os를 더 설치하는 경우입니다.)

Dual Booting 이후에 os를 더 설치하시려면 
세번째 os 부터는 os와 grub를 같은 파티션에 설치하시면 grub 관리가 편합니다.

그럼 세번째부터  이후의 os 설치하는 방법부터 한번 볼까요?

/dev/sda8 에
ext4 파일 시스템으로 포맷한 
8GB크기의 
이름은 Raring인 파티션을 만들어두었구요,
이곳에 Ubuntu 13.04를 설치할 것입니다.
아울러 부트로더(GRUB)도 이곳에 설치 하겠습니다.

이렇게 파티션을 지정해서 설치하면서,부트로더(GRUB)를 그 파티션에 설치를 해주는 경우는
그림에서 처럼 설치 형식에서 기타를 선택합니다.

그림처럼 /dev/sda8 를 선택해서 ,이미 있는 파티션을 그대로 활용하거나,새로 만들어서 이용합니다.
/dev/sda8 부분을 더블클릭하거나,마우스 오른쪽 버튼을 눌러서

이렇게 만들어 주는 것입니다.

부트로더를 설치할 장치 에서 /dev/sda8 을 선택합니다.

ubuntu 13.04를 /dev/sda8 에 설치하고,부트로더도 /dev/sda8 에 설치했습니다.
이후에 설치할 os들도 이런 방식으로 하면 됩니다.

Tip) Ubuntu 13.04 설치하는 도중에 
파티션을 사용자가 직접 나누어 설치하는 부분에서부터 창이 너무 커져서 어찌할 바를 모르게 됩니다.
당황 하시지 말고,Alt + 마우스 왼쪽 버튼을 누르면서 아래위로 스크롤하시면 선택버튼을 찾을 수 있습니다.
나머지 설치과정중에 입력해야 하는 부분은 모두 이렇게 하셔야 합니다.
이후,자동으로 복사하고 설치되는 과정은 다시 원상태로 돌아옵니다.

3)이제 부턴 grub 관리 하는 방법입니다.
이화면 혹시 보셨나요?
이전에 Linux Mint Mate 13,14 버전과 Ubuntu 12.10의  32-bit 와 64-bit 차이를 확인해 보려고 설치 했을때의 모습입니다.
이곳에 가시면 있는데요 http://bagjunggyu.blogspot.kr/2012/12/os.html
이 그림의 GRUB 화면은 정리를 다 해놓은 후의 상태랍니다.
정리 하지 않으면........한 화면에 다 나오지 않습니다.

Linux Mint 13 Maya Mate 가 주 os 입니다.
그 아래로 보이는 7개의 os들도 업그레이드를 다 해준 상태랍니다.
이 화면을 가지고 GRUB관리하는 방법을 요약하겠습니다.

Multi Booting 하기위해서 하는 작업

Section 1)
* Dual Booting에서 부트로더를 MBR에 설치
* 세번째 os 설치
   우선 os를 설치합니다.부트로더도 같은 파티션에 설치합니다.
   os를 설치해도 grub 화면에 나타나지 않을 겁니다.
   이유는 주 os의 grub를 업데이트 하지 않았기 때문입니다.
   나중에 모든 os를 다 설치 한 후에
   한번에 sudo update-grub를 해서 grub를 적용 시킬겁니다.
* 모든 os 설치 끝
* 주 os의 터미널에서 sudo update-grub
* 그러면 변경된 grub.cfg 파일생성 됩니다.
* 그것을 sudo pluma /boot/grub/grub.cfg 해서 수정을 합니다.
   그리고,직접 지울것은 지우고,이름을 바꿀것은 바꾸는 작업을 해줍니다.
그런데,이렇게 하면 많이 복잡합니다.
그래서 grub-customizer를 적극 활용해줍니다.

일단 ,이렇게 한번은 정리를 해줍니다.
그러면 ,정리된 화면이 그림처럼 나타납니다.

Section 2)
* 이제 차례대로 os들을 실행 시켜서 업그레이드를 합니다.
* 커널이 업그레이드 되면서 그 안에서 grub.cfg를 새로 생성 합니다.
* 그렇게 나머지 7개의 모든 os들의 grub.cfg 가 생성되면
* Section 1) 과 마찬가지로 ,맨 나중에,주 os 인 Linux Mint 13 Maya Mate에 들어가서
    sudo update-grub를 해줍니다.
* 그러면 나머지 7개의 os에서 업그레이드 되어 바뀐 설정이 적용됩니다.
* 그리고는 마찬가지로 sudo pluma /boot/grub/grub.cfg
    grub-customizer를 적절히 이용해서 GRUB 정리를 해줍니다.

그러면 화면처럼 정리된 GRUB 화면을 만나실겁니다.

그리고,중요한 부분입니다.
설치된 os 를 지우는 작업은 항상 주 os에서 합니다.
그리고 그곳에서 파티션을 지운후에는 sudo update-grub를 해서 GRUB정리를 합니다.

파티션을 나누거나 조절하는 방법,지우기는 이 글을 읽어 보세요
Linux Mint(리눅스 민트) 와 Ubuntu(우분투) 파티션(Partition) 조절과 제거하기