앞서 1편에서는 만능 멀티부팅 USB가 무엇인지, 어떻게 쓸 수 있는지 설명드리고 제가 만든 만능 USB를 소개했습니다. 이번 포스팅에서는 이런 멀티부팅 USB를 만들때 가장 중요한 부분인 부트로더에 대해서 설명하려 합니다.


부트로더, 그게 뭐지? 먹는건가?


부트로더(boot loader)란 운영 체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 시동시키기 위한 목적을 가진 프로그램을 말한다. - 위키피디아


'부트로더' 라는 단어의 사전적 정의입니다. 위 정의만 가지고는 잘 이해가 되지 않으시는 분들도 계실 텐데, 간단하게 설명하면 이렇습니다.



가장 먼저 컴퓨터가 켜지면 롬에 들어있는 BIOS가 로드됩니다. BIOS는 컴퓨터에 연결된 저장 매체에서 설정된 부팅 순서대로 부트로더들을 불러오게 됩니다. 이 때, 하드 디스크가 첫 번째 부팅 장치로 설정되어 있으면, BIOS는 하드 디스크의 부트로더를 로드하게 됩니다.

운영체제는 크게 세 부분으로 나뉩니다. 실제 명령어들이 구동되는 커널, 프로그램에 포함된 명령어들을 커널에 전해주는 프레임워크, 그리고 커널과 프레임워크 위에서 구동되는 UI가 있습니다.

일반적으로 '부팅'이라하면 커널을 로드하고, 프레임워크를 실행시킨뒤, UI를 실행하는, 운영체제를 시동하는 행위를 일컫는데요, 위의 정의에서 나타나는 것 같이 부트로더는 커널을 시동시키기 전 하드웨어들을 준비하는 역할을 합니다.

그렇다면 부트로더는 어디에 있을까요?



하드디스크의 파티션 정보는 MBR이라는 하드 디스크의 첫 섹터 속에 존재합니다. 여기서 BIOS는 파티션 테이블을 읽은 후 활성화 되어있는 파티션의 PBR을 읽어 그 데이터로 부팅하게 됩니다. 여기서 이 MBR과 PBR이 바로 1차 부트로더입니다.

여기서 잠깐, 제가 왜 '1차' 부트로더라는 말을 썼을까요? 그렇다면 '2차' 부트로더도 있다는 말인가요?



네, 있습니다. 바로 이렁게 생겼는데요, 여기서 GRLDR은 GRUB4DOS의 2차 부트로더입니다. 윈도우 비스타/7/8의 2차 부트로더는 BOOTMGR이고요, XP는 NTLDR입니다. 2차 부트로더는 파일의 형식으로 부팅 파티션의 루트경로에 존재합니다.

왜 2차 부트로더라는 것이 존재할까요? MBR/PBR의 최대 용량은 512바이트밖에 되지 않기 때문에 도스 같은 운영체제 정도에는 적합했지만 윈도우 같은 복잡한 운영체제의 커널을 로드할 준비를 하기에는 턱없이 모자랐습니다. 그래서 2차 부트로더를 1차 부트로더를 통해 커널을 로드하듯이 로드한뒤, 2차 부트로더를 통해 커널을 로드하는 방식을 택하게 된 것입니다.



따라서 현재 일반적으로 운영체제를 부팅시키는 대략적인 과정은 다음과 그림과 같습니다. 그렇다면 멀티부팅을 하게 되면 어떻게 될까요?  



어떤 부트로더인지에 따라 조금씩 달라질 수도 있지만 우리가 사용하게될 GRUB4DOS의 멀티부팅 과정은 이렇습니다. 2차 부트로더가 로드된 후 어떤 운영체제를 부팅할 지 선택하는 화면을 띄워준 뒤, 해당 운영체제의 2차 부트로더를 로드하게 됩니다. 이러한 과정을 체인 로딩 (Chainloading) 이라고 하는데요, 자세한 부분은 뒤에 가서 살펴보겠습니다.

다음 편에서는 USB에 GRUB4DOS를 설치해보고, 간단한 실습을 해보겠습니다 ^^ 




신고
 




궁금합니다 2013.01.09 03:14 신고 URL EDIT REPLY
만능 usb 외하하드 디스크를 만들어 볼려고 여기저기 돌아다니다 디지누리님 블러그에 도달하였습니다.
제게 필요한 정보인듯한데 포스트가 아직 약간 부족하여 언제 포스팅할것인지 궁금하여 이렇게 글 남겨보니다.
크럭스 RUX | 2013.01.09 18:04 신고 URL EDIT
죄송합니다;;
오늘부터 다시 포스팅 하려고 어제 Bootice를 올렸는데,, 계속 포스팅하겠습니다.
ATOZ 2013.01.21 01:06 신고 URL EDIT REPLY
다녀갑니다
민규 2013.02.10 11:47 신고 URL EDIT REPLY
정말 좋은 글 잘 읽고 있습니다.
^^ 좋은정보 주셔서 감사합니다.
크럭스 RUX | 2013.02.10 16:33 신고 URL EDIT
감사합니다. 좋은 설날 보내세요 ^^
onair 2013.02.20 18:30 신고 URL EDIT REPLY
만능 USB 정말 잘 쓰고 있습니다.
감사합니다.

저는 IDE하드가 남는게 있어 멀티어댑터를 사용하여 USB형태로 만들어 만능USB로 만들어 보았습니다.
PBR로 만들어 졌습니다.

구동을 시켜보니 백업복구에서 PC의 하드는 읽는데 자신은 읽지 못하는현상이 생겼습니다.
어떻게 해야하는지 지도 바랍니다.
크럭스 RUX | 2013.02.21 12:40 신고 URL EDIT
윈도우 PE나 다른 OS를 부팅했을때 하드 디스크를 읽지 못하는 말씀이신가요, 아니면 GRUB4DOS에서 하드 디스크를 읽지 못한다는 건가요?
통신 2013.05.26 16:29 신고 URL EDIT REPLY
안녕하세요 부팅usb 만들다가 여기까지 도달했는데 여기가 종착역이네요 좋은정보 정말 많네요 ^^
익명 2014.03.01 20:38 신고 URL EDIT REPLY
대단하시다
안녕하세요 2014.05.29 01:46 신고 URL EDIT REPLY
내용이 매우 좋네요. 감사하는 마음으로 적어보아요.
초보자 2016.11.22 13:35 신고 URL EDIT REPLY
아직도 블로그를 운영 하실진 모르지만 질문 드립니다.
제가 윈 10 을 사용하는데 mobalive cd를 실행해서 USB를 가상디스크로 실행해보면
중단되었다고 나오는데 혹시 해결법이 있을까요?
송근호 2017.07.29 16:43 신고 URL EDIT REPLY
이런 포스팅이 무료라니 지식 공유해주셔서 너무너무 감사합니다...
잘보고갑니다 2017.10.25 13:05 신고 URL EDIT REPLY
블로그에 링크로 담아갈게요! grub을 지우지 못해서 문제가 되고 있던차에 방문했습니다
Name
Password
Homepage
Secret
굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드