윈도우와 리눅스를 멀티 부팅할 때 부트로더
글쓴이: psw9255439 / 작성시간: 수, 2017/01/25 - 3:02오후
윈도우와 리눅스를 멀티부팅을 할 때 부트로더의 위치와 관련해서 질문합니다.
윈도우와 리눅스를 같은 저장 장치에 파티션을 나눠서 설치하는 상황입니다.
부트로더는 MBR에 저장된다고 들었는데요 윈도우를 먼저 설치하고 리눅스를 설치한다면 먼저 윈도우의 부트로더가 MBR에 설치되어 있는 상태에서 GRUB이 윈도우의 부트로더와 함께 MBR에 공존하게 되는 것인가요? 만약 MBR에 윈도우의 부트로더와 GRUB가 함께 존재한다면 왜 GRUB로 부팅되는 건가요?
리눅스를 설치하는 과정에서 GRUB를 어디에 설치할 지를 물어보는데 만약 /dev/sda 를 선택하면 /dev/sda 장치의 MBR에 GRUB가 설치되는 것인가요? 그리고 /dev/sda3 와 같이 파티션을 지정하여 GRUB를 설치하게 되면 MBR이 아닌 위치에 GRUB가 설치되는 것인데 BIOS에서 MBR을 읽는 과정에서 윈도우의 부트로더를 불러오게 되고 윈도우는 리눅스 파티션을 인식할 수 없으므로 리눅스로 부팅할 수 없는 것 아닌가요? 만약 /dev/sda3와 같은 파티션에 GRUB를 설치하게 되면 어떻게 리눅스로 부팅할 수 있나요?
두개의 리눅스를 같은 저장 장체에 파티션을 나눠서 설치하는 상황입니다.
GRUB 부트로더가 MBR에 설치되었을 때 각각의 리눅스에 존재하는 /boot/grub 디렉토리는 MBR에 있는 GRUB에 대한 설정인가요?
Forums:
혼란함이 글에서도 느껴질만큼 넘치는것 같아요 ㅎㅎ
두번은 읽어서 질문의 요지를 파악한것 같아요. 여튼.. 이 기회에 제 얕은 지식을 조금이나마 정리해 봅니다.
'부트로더' 자체는 부트 섹터에 저장되어 유지되어야 하므로 크기가 작아야 합니다. 그래서 부트로더의 본체와 그 설정들은 따로 file로 저장되어 있고, 실질적으로는 [부트섹터에 적재된 부트로더]는 그 [부트로더의 본체]의 위치를 찾아 실행시켜주는 역할을 합니다.
grub의 경우, 위에서 말한 [부트로더의 본체]의 위치가
/boot/grub
디렉토리 입니다. 또/boot/grub/grub.cfg
에 부트로더의 각종 설정을 저장합니다.윈도우는 XP의 경우 NTLDR 부트로더를 쓰고, 7이후로는 bootmgr(부트매니저) 라는 부트로더를 사용합니다. NTLDR은
NTLDR
,NTDETECT.COM
,BOOT.INI
,BOOTFONT.BIN
파일로 이루어져 있으며 일반적으로 'CMOS 기준으로 첫 번째 디스크의 활성 파티션 (통상적으로 C:드라이브)'의 루트 폴더에 숨겨져 있습니다. bootmgr은Bootmgr
파일과Boot/
디렉토리 로 이루어져 있으며 일반적으로 '예약 파티션'의 루트에 숨겨져 있습니다.윈도우 설치후 리눅스를 설치하셨다면 부트섹터의 부트로더는 grub으로 덮어 씌어지고 윈도우의 부트로더는 file system에 남아있지만 연결(link)이 안된 상태가 됩니다. 즉 부팅시 바로 grub으로 링크되어 버립니다.
윈도우와 리눅스를 멀티 부팅할 수 있는 방법은 grub에서 bootmgr로 링크시키는 부팅메뉴를 하나 만드는것 입니다. 즉 부팅시 grub이 실행되고 grub에서 '윈도우 메뉴'를 선택하게 되면 grub이 수동으로 윈도우의 부트로더를 실행시키는 구조가 됩니다. 윈도우의 부트로더는 grub을 수동으로 실행시킬 수 없기 때문에 그 반대의 구조는 성립하지 못합니다.
다음은 grub에서 '윈도우 메뉴'를 만드는 하나의 예제 입니다.
/dev/sda에 grub을 설치한 후 /dev/sda3에 또 grub을 설치한다면 grub의 본체는 두개의 파티션에 위치해 있지만 부팅시 부트로더는 /dev/sda3에 있는 grub의 본체에게 링크 시키겠죠. 결론적으로 마지막에 설치한 리눅스만 부팅 가능한 상태가 될겁니다.
추천하는 멀티부팅 구성 입니다.
/boot/grub/grub.cfg
에 윈도우 menuentry 추가이민철 올림
감사합니다!!
감사합니다!!
EasyUEFI 와 EasyBCD 라는 프로그램이 있던데요.
한번 참고해보시면 좋을지도 모르죠. ㅇ_ㅇ;;
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기