본문 바로가기
프로그래밍/PC

GRUB Legacy 를 이용한 부팅가능한 CD 이미지 만들기

by 사악신 2014. 4. 3.


GRUB 2 와 달리 기존의 GRUB 1 의 경우 GRUB Legacy 로 칭합니다.


먼저, CentOS 에서 관련 패키지들을 설치합니다. 저 같은 경우에는 그냥 설치되어있더군요.


yum install genisoimage grub


작업 디렉토리(여기서는 isofiles)를 생성한 후, boot/grub 디렉토리도 생성합니다.


mkdir -p isofiles/boot/grub


생성한 grub 디렉토리에 기설치된 grub 패키지의 El Torito 파일들을 복사합니다. 참고로 El Torito 는 CD-ROM 부팅 관련 표준으로 이해하면 되겠습니다.(64비트 CentOS 인 관계로 경로가 x86_64-redhat 이 붙습니다.)


cp /usr/share/grub/x86_64-redhat/stage2_eltorito isofiles/boot/grub/


이제 iso 이미지 파일을 생성합니다.


genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -input-charset utf8 -o misihi.iso /절대경로/isofiles


옵션에 대해 살펴볼까요.


-R : RRIP(Rock Ridge Interchage Protocol) 사용. 유닉스 계열 파일체계는 ISO9660 에서 정한 규격보다 자유도가 높아 긴 파일명을 사용하거나 디렉토리 제한을 벗어나는 경우가 발생합니다. 따라서 유닉스 계열에서 사용할 수 있는 ISO9660 확장안을 만들었으며 이를 RRIP 규격이라고 부릅니다. GRUB 에서 사용.


-b : 부트 파일의 위치를 지정.(생성된 CD 이미지에서의 위치임)


-no-emul-boot : no emulation 모드 지정.


-boot-load-size : 512바이트 섹터 몇 개를 불러올 것인지 지정. CD 에서 한 섹터의 크기는 2048 바이트입니다.


-boot-info-table : CD 이미지 관련 정보를 추가함. GRUB 에서 사용.


-input-charset : 현재 파일시스템의 문자셋을 지정.


-o : 생성될 이미지 파일 지정.


그외: CD 이미지에 포함되어야할 디렉토리 지정.


이렇게 생성된 이미지 파일을 VirtualBox 등으로 불러와 부팅해봅니다.






반응형

댓글