
저는 Linux와 Windows 7에서 Grub을 부트로더로 사용하여 이중 부팅을 설정했습니다.
내 파티션 테이블은 다음과 같습니다.
100 MB System Reserved Windows 7
500 GB Windows 7
100 MB /boot - ext2
500 GB linux, swap, etc.
여기에서 이 설정을 마친 후 GRUB가 어디에 설치되었는지 궁금합니다.
시스템 예약 파티션이 Windows 7의 부팅 파티션인 줄 알았는데 Grub이 이를 덮어쓰면(마스터 부트 레코드에서 가정) Windows 7을 실행할 수 없는 것 같습니다.
Grub은 어디에 자체적으로 설치되고 여전히 Windows와 Linux를 모두 가리킬 수 있습니까? 파티션 설정 방법에 따라 달라지나요?
답변1
boot.ini
Windows가 자체적으로 설치되면 부팅 목록을 표시하기 위해 읽는 마스터 부트 레코드에 부트로더(NT에서 XP를 통한 NTLDR, 그 이후에는 winboot)를 넣습니다 . 해당 목록에서 항목을 선택하면 부트로더의 작업이 완료되고 드라이브의 실제 파티션에서 적절한 커널이 시작됩니다.
Grub도 같은 일을 합니다. 부트로더는 grub.conf
/ menu.lst
목록을 표시하기 위해서만 존재하며, 일단 무언가를 선택하면 제어권을 일반 파티션으로 전송합니다. 따라서 grub은 MBR의 NTLDR/winboot를 덮어쓰지만 일반 파티션에서는 아무것도 덮어쓰지 않으며 부팅 목록에서 Windows를 선택하면 제어권을 Windows 파티션으로 전송하는 방법을 알고 있습니다.
답변2
Grub은 드라이브의 마스터 부트 레코드에 자체적으로 설치됩니다. 마스터 부트 레코드는 파티션 자체가 아니라 파티션된 드라이브의 첫 번째 섹터라는 점을 인식하는 것이 중요합니다. 보다위키피디아자세한 내용은
이 정보가 주어지면 기본적으로 Grub은 Windows 7이 설치된 MBR 정보를 덮어쓰지만 Windows 7이 생성하는 "시스템 예약 파티션"은 사용자가 요청하지 않는 한 건드리지 않습니다. 새로운 MBR은 단순히 시스템에 GRUB를 로드하라고 지시하고 GRUB는 적절한 OS가 로드되었는지 확인합니다. 이를 통해 운영 체제 간 전환이 쉬워집니다.
답변3
MBR이 아닌 곳에 GRUB를 설치하는 유일한 경우는 Mac을 사용할 때입니다. 전체 이중 부팅 질문은 Mac에서 더욱 복잡해집니다. 일반적으로 GRUB는 MBR에 설치되어 NTLDR을 덮어쓰고 Linux 또는 Windows를 부팅할 수 있게 해줍니다.
답변4
여기에는 몇 가지 혼란스러운 내용이 있습니다. 우선 디스크가 분할될 때(슬라이스=기본 파티션) 각 슬라이스에 "파티션 부트 레코드"가 있다는 것을 알아야 합니다. 디스크를 포맷할 때 첫 번째 섹터를 "부트섹터"라고 합니다. 부트섹터는 부팅 가능으로 표시된 파티션에서 로드되고 실행됩니다.
GRUB는 이 영역에 512바이트만 갖고 있으며 이를 stage1이라고 합니다. 1단계에서는 stage2(또는 1.5)만 로드하며 이는 menu.lst 파일과 기타 모듈을 로드하는 파일입니다.
Stage1.5(또는 Stage2)는 약간의 코드에서 menu.lst를 로드하므로 해당 파일 시스템에 따라 다릅니다(FS에서 /boot/menu.lst를 찾을 수 있어야 함).
구경하다여기더 읽어보세요.
간단히 말해서 Stage1은 MBR에 있지만 GRUB는 stage1뿐만 아니라 Stage1을 제외한 모든 것이 /boot에 있습니다.