부트파티션에 설치한 LILO or GRUB 가 실행될 수 있는 이유
제가 제 컴퓨터에 맨 처음에는 윈도우즈(Windows XP)를 깔고,
그 다음에 리눅스(RedHat 9)를 깔았거든요. 그런데 리눅스 설치과정에서
리눅스 부트로더(GRUB)를 /boot의 첫섹터에 깔았어요.(Windows NT계열이 이미 깔려 있는 경우는 /boot의 첫섹터에 깔아야 한다고 설명되었어서.)
그래서 멀티부팅환경을 까는데 성공은 했고, 부팅하면 GRUB나오면서
윈도부팅할지 리눅스부팅할지 선택하는 화면 나오고 아무 문제가 없어요.
문제는 없는데, 단지 어떻게 이렇게 정상적으로 작동할 수 있는지 메커니즘이 궁금해요.
저의 이해에 따르면, 윈도우즈XP를 깔았을 때, NT Loader 가 MBR에 설치되었을 것이고, 그리고 나중에 리눅스 깔면서 /boot 파티션의 첫섹터에 깔렸을 거예요. 그러면 저의 하드의 최종상태는 MBR에 NT로더가 깔려있고 리눅스부트파티션의 첫부트섹터에 리눅스부트로더GRUB이 설치되있는 상태일 거라고 짐작하는데, 그런데 일단 컴퓨터를 부팅하면 MBR의 코드를 실행한다고 배웠는데, 그러면 MBR에는 NT로더가 있으니까 결국 제 컴퓨터부팅하면 NT로더가 실행될 것이고 그리고 NT로더의 역할은 윈도우즈 부팅시키는 거니까 결국은 윈도우즈가 부팅될 것이고 GRUB화면은 보지 못하게 되야 할 것 같거든요. 그런데 실제로는 제 컴퓨터를 부팅하면 GRUB화면이 나타나잖아요, 어떻게 NT로더가 GRUB으로 제어를 넘기라고 프로그래밍되어있는 게 아닐 것 같은데, 어떻게 해서 GRUB이 제어권을 잡게 되는거죠?
레드햇 깔면서 grub이 MBR의 NT로더를 덮어쓰는 걸로 아는데요...
레드햇 깔면서 grub이 MBR의 NT로더를 덮어쓰는 걸로 아는데요...
그리고 /boot파티션의 grub 설정 파일을 읽은 뒤 윈도우든 리눅스든 부팅하는 거죠...
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
댓글 달기