이번 포스팅에서는 GRUB4DOS의 테마라고 할 수 있는 GFXMenu에 대해 알아보도록 하겠습니다. 지난 편에서 설명한 SPLASHIMAGE 명령어로는 기존 GRUB4DOS의 틀 안에서 배경화면을 바꾸는 정도만 가능했었는데요, 이번에 알아볼 GFXMenu는 GRUB4DOS의 UI 자체를 바꾸어 버릴 수 있는, GRUB4DOS의 테마라고 보시면 됩니다.

 

GFXMenu의 구조



GFXMenu 파일은 기본적으로 이런 단일파일 구조를 띄고 있습니다. 하나의 파일처럼 보이지만 실제로는 내부에 여러 파일들을 포함하고 있는 압축파일인데요, 반디집으로 열어보도록 하겠습니다.



이런, 반디집으로는 열리지 않는군요. 이번에는 7-ZIP으로 열어보겠습니다.



7-ZIP에서는 성공적으로 열리는데요, 무슨 포맷인지 확인해볼까요?



네, GFXMenu는 CPIO라는 포맷으로 압축되어있습니다. 주로 UNIX 시스템에서 사용하는 포맷인데요, 윈도우 환경의 압축 프로그램에서는 대부분 지원되지 않는 포맷입니다. 일단 7-ZIP으로 압축을 풀어보도록 하겠습니다.



여러 파일들이 보이는데요, 먼저 back.jpg 파일은 GFXMenu의 배경으로 사용되는 JPG 파일이고요, 그 외에 폰트 파일인 16x16.fnt 파일, 그리고 GFXMenu의 설정 파일인 GFXBoot.cfg 파일이 보입니다.

여기서 핵심은 init 파일입니다. 바이너리 파일인데요, 바로 이 init 파일이 GRUb4DOS에 의해 로드되어 구동되는 하나의 프로그램 역할을 수행합니다. 하지만 편집을 하려면 무려 어셈블리 언어(;;)를 사용해야 하기때문에 이 포스팅에서는 gfxboot.cfg 수정법과 배경화면, 폰트 변경법 정도만 설명하도록 하겠습니다. 

(지난 편에서 잠깐 언급했듯이 해외 포럼에서 이 init 파일이 바이너리라는 것을 이용해서 단순한 프로그램을 구동시킨 사례도 있었습니다. 물론 제대로 된 운영체제 위에서 구동되는 것이 아니기 때문에 자원 할당이 거의 되지않아 많은 제약이 있지만요...)


GFXMenu Tools로 GFXMenu 수정하기


앞서 언급했듯이 GFXMenu는 CPIO 포맷입니다. 따라서 윈도우 환경에서는 편집하기에 많은 제약이 따를 수 밖에 없는데요, 7-ZIP을 사용하면 되지만 이번 포스팅에서는 윈도우 포럼의 사랑인님이 만드신 GFXMenu Tools를 사용하도록 하겠습니다.




다운로드하신 파일의 압축을 풀면 여러 폴더들과 grubmenu.exe가 보이는데요, GFXMenu Tools의 모든 작업은 work 폴더에서 진행됩니다. work 폴더 안에는 압축이 풀린 GFXMenu가 들어있는데요, 모든 편집이 끝난뒤 다시 압축됩니다. grubmenu.exe를 실행시켜 주세요.



GFXMenu Tools를 처음 실행시키면 사용할 기능을 묻습니다. 전편에서 알아본 SPLASHIMAGE도 만들수 있는데요, 이번 편에서는 GFXMenu를 만들것이므로 '1'을 입력하신 뒤 엔터를 눌러주세요.



GFXMenu를 선택하시면 이렇게 GFXMenu를 편집할 수 있는 메뉴가 출력되는데요, 여기서 주로 사용되는 기능들은 3번, 4번, 5번, 6번입니다. 원하는 메뉴의 번호를 입력하시고 엔터를 누르시면 해당 메뉴가 선택되고요, 이름만 보셔도 대충 아시겠지만
    '3. 이미지 만들기'는 GFXMenu의 배경 이미지를 바꾸어주고,
    '4. 한글 폰트생성'은 TTF 폰트를 GFXMenu의 폰트 포맷으로 변환해 줍니다. 가장 많이 사용하게될
    '5. 환경변수 수정'은 앞서 GFXMenu의 설정 파일이라고 했던 gfxboot.cfg를 편집해줍니다. 그리고 편집이 전부 완료된뒤
    '6. 압축'을 선택하시면 다시 CPIO로 압축됩니다.


1. 배경화면 바꾸기


저는 먼저 배경화면을 바꿔보도록 하겠습니다. '3. 이미지 만들기'를 선택해주세요.



image 폴더에 변환할 이미지파일을 넣어 달라네요. 저는 지난 편에서 사용한 배경이미지를 그대로 사용하겠습니다. 윈하시는 이미지 파일을 image 폴더에 복사해 주시고 아무 키나 눌러주세요. (단, JPG 포맷이어야 하며, 작업 전에 미리 800x600의 해상도로 변환해 놓으시는 것을 추천합니다.)



image 폴더 안의 모든 파일들이 출력되는데요, 변환할 이미지 파일명을 적어줍니다. (확장자는 빼주세요 ^^)



변환이 완료되었습니다. work 폴더를 확인해 보시면 back.jpg 파일이 선택한 이미지로 바뀌어 있는 것을 보실 수 있습니다.


2. 폰트 변경하기


이번에는 폰트를 변경해보도록 하겠습니다. '4. 한글 폰트생성' 메뉴를 선택해주세요.



변환할 폰트의 파일명을 입력하라고 나오는데요, 윈도우에 설치된 폰트만 변환이 가능합니다. 탐색기를 열고 C:\Windows\Fonts (또는 윈도우가 설치된 디렉터리\Fonts) 를 열어주세요.



여기서 원하는 폰트를 찾아준 뒤 바탕화면이나 아무 폴더로 복사해줍니다.



복사하시면 폰트의 파일명이 드러나는데요, 나눔고딕을 사용할 제 경우는 NanumGothic이네요.



찾은 폰트 파일명을 입력하시고 엔터를 입력하시면 폰트 크기를 묻습니다. 저는 기본값인 17로 해주었지만 원하는 크기를 입력하시면 됩니다.



아무키나 눌러주세요.



이제 이런 문자들이 출력됩니다. 폰트를 변환하는 과정인데요, 약간의 시간이 소요되니 느긋히 기다려주시면 됩니다.



폰트 변환이 완료되면 자동으로 메인 화면으로 돌아가는데요, work 폴더안을 보시면 변환된 16x16.fnt 파일을 보실 수 있습니다.


3. gfxboot.cfg 수정하기


이제 마지막으로 GFXMenu의 설정 파일인 gfxboot.cfg를 수정할 차례입니다. '5. 환경 변수 수정'을 선택해주세요.



선택하시면 이렇게 Notepad2가 열리며 gfxboot.cfg를 편집할 수 있는 창이 뜹니다. 주석이 잘 달려있어서 아마 한번 읽어보시면 대부분 설정하실 수 있으실 텐데요, 여기서는 '메뉴의 시작 위치' 부분만 잠깐 알아보도록 하겠습니다.



먼저 메뉴가 출력될 부분의 x, y 좌표값을 알아야 합니다. work 폴더의 back.jpg를 그림판으로 열어주세요.



메뉴가 출력되기 원하는 곳에 마우스 포인터를 올리시고 좌측 하단의 좌표값을 기억해주세요. 제 경우는 (50, 50) 이군요.



실제 부팅시에는 이렇게 출력됩니다. 여러번 시도해보시고 자신에게 맞는 값을 찾아주세요.



이제 이렇게 gfxboot.cfg에 x, y 좌표값을 입력 해줍니다.



수정을 다 하셨으면 'File - Save' (또는 Ctrl+S) 로 저장해주시고 닫아주시면 됩니다.


4. 압축하기


이제 완성된 gfxmenu를 다시 CPIO로 압축할 차례입니다. '6. 압축'을 선택해주세요.



파일명을 입력해줍니다. 저는 gfxmenu로 하겠습니다. 원하시는 파일명을 입력해주시면 됩니다. (역시 한글은 안됩니다 ;;)



성공적으로 압축이 되었다네요. 완성된 GFXMenu 파일은 ISO 폴더 안의 GFXMenu 폴더에 존재합니다.



GRUB4DOS가 설치된 USB에 복사해주세요.


5. MENU.LST에 완성된 GFXMenu 추가하기



gfxmenu /[GFXMenu 파일 경로]


이제 완성된 GFXMenu를 GRUB4DOS가 읽도록 MENU.LST에 추가해주면 됩니다. 사용할 명령어는 GFXMENU 명령어인데요, 명령어 뒤에 로드할 GFXMenu 파일의 경로만 적어주시면 됩니다. 제 경우는 'GFXMENU /gfxmenu'가 되겠네요. 전편에서 추가한 SPLASHIMAGE 명령어는 이제 쓸 일이 없으니 지워줍시다.



부팅하시면 GRUB4DOS의 칙칙한 UI 대신 아주 깔끔한 GFXMenu의 UI가 출력되는 것을 보실 수 있습니다.


마치며...


 이렇게 이 GFXMenu 편을 마지막으로 모든 GRUB4DOS [만능 USB를 만들어 보자!] 시리즈가 끝났습니다. 아직 설명하지 못한 것도 많고 제가 모르는 기능들도 많겠지만 이 정도만 가지고도 원하시는 대부분의 기능을 포함한 만능 USB를 만드실 수 있을 것 같은데요, 더 많은 정보를 원하시는 분들은 밑의 USB 부팅 관련 사이트들을 참고하시면 되겠습니다.


http://usboffice.kr/

 국내 최대의 USB 커뮤니티. 현재는 활동이 줄어든 상태.

http://reboot.pro/

 부팅 관련 해외 포럼. 10편에서 설명한 FiraDisk를 포함한 수십개의 프로젝트가 진행중. 


제가 가장 많이 참고한 두 개의 사이트입니다. USBOffice 같은 경우에는 최근 들어 활동량이 많이 줄어들었지만 예전 자료들을 찾아보면 괜찮은 포터블 프로그램들과 유용한 부팅 자료들을 찾으실 수 있습니다.

reboot.pro는 제가 아는 한 부팅에 관련된 전 세계 모든 초고수들의 집합소입니다. 10편에서 설명한 FiraDisk도 여기서 개발된 드라이버이고요, 위에서 언급한 GFXMENU의 init 파일이 바이너리라는 것을 이용해 프로그램을 구동한 곳도 이곳입니다. 이외에도 윈도우 PE, SysLinux 등 거의 모든 종류의 부팅 정보를 포함하는 포럼이니 영어가 되시는 분들은 (;;) 참고하시면 되겠습니다.


이상으로 [만능 USB를 만들어 보자!] 시리즈를 마치도록 하겠습니다. 감사합니다 ^^


p.s. GRUB4DOS는 아직 끝나지 않았습니다. 이 시리즈에 사용된 정식 빌드는 2009년 6월 20일의 0.4.4 빌드로 끝났지만 아직도 여러 유저에 의해 비공식 빌드가 개발되고 있습니다. 추후에 이 비공식 빌드에서 추가된 기능들과 NTBOOT에 대해서 포스팅하도록 하겠습니다.


첨부파일 [1]


저작자 표시 비영리 변경 금지
신고
 




이전 댓글 더보기
종달 2013.07.31 14:25 신고 URL EDIT REPLY
정말 유용한 자료였습니다. 덕분에 두가지 매체로 복원하는데 쓰던걸 USB하나로 해결했습니다. 더이상 CD넣었다 뺏다 할필요 없을거같네요... 한가지 궁금한게 있습니다. 만약 PC의 메모리가 과도하게 부족하여 RAMDISK를 쓰지 못할경우 이를 해결할 방법은 없는건가요?
그니까 2013.09.03 03:58 신고 URL EDIT REPLY
감사드립니다.

잘배우고갑니다.
컴사랑 2013.09.28 10:24 신고 URL EDIT REPLY
어디에서도 볼 수 없는 좋은 자료입니다
이 자료가 많은 도움이 되었습니다
감사드립니다
바람 2013.11.04 22:49 신고 URL EDIT REPLY
정말 좋은 강좌입니다..지금까지는 다른분들이 만들어놓은것을 사용했는데..

내부구조를 알수있게되어서 이젠 직접 핸들링 할수있겠습니다...

정말 많은 도움이 되었습니다...감사합니다.
TKDL 2013.11.21 22:51 신고 URL EDIT REPLY
정말 도움이 많이되는 강좌 인거같습니다 정말 고맙습니다.!!
해리 2013.12.20 14:49 신고 URL EDIT REPLY
좋은 정보 감사합니다. grub4dos에 대해서 공부 많이 했네요
초이스 2014.02.12 22:38 신고 URL EDIT REPLY
좋은 정보 감사합니다.
직접 실습도 해 봐야 겠습니다.
win7 라이트 버전 깔고 업데이트만 3일째 합니다.
다른 OS도 UBS에 담아서 까아보려 합니다.
XP에서 우분투로 갔다가 다시 win7으로 왔습니다.
우분투의 좋은 점을 잘 몰라서......
암튼 좋은 정보 감사합니다.
크럭스 RUX | 2014.02.12 23:48 신고 URL EDIT
우분투는.... 컴퓨터 배울때부터 우분투로 배우지 않은 이상 익숙해지는데 좀 시간이 걸립니다. (처음부터 우분투로 배웠을때는 윈도우보다 훨씬 더 빨리 적응한다는 이야기도 있지만요) XP에서 넘어오셨다면 KDE 데스크탑이 더 직관적이고 적응하기 쉽습니다.

윈도우에 비해 우분투가 가지는 특별한 기능 같은 것을 기대하셨다면 End User 관점에서는 딱히 없습니다. End User 분들에게 리눅스의 장점은 '무료'란 거죠 (동시에 리눅스를 사용하는 주요 이유이기도 합니다.) 개발자나 컴퓨터를 좋아하는 사람들이야 리눅스의 막강한 CLI나 오픈소스의 메리트들이 큰 요인으로 작용하지만, End User의 입장에서는 그저 사용할 일 없고 사용할줄도 모르는 기능에 불과하지요. (저야 뭐 윈도우 커맨드 창에다 ls 치고 있으니.. 리눅스의 CLI가 좋긴 합니다 ㅋ) 한국에서는 게임도 안되고 (Steam이 포팅된 후 이야기가 달라지기는 했습니다만...) 인터넷뱅킹도 대부분 못하기 때문에 리눅스를 메인으로 사용하기 힘듭니다.
감사합니다 2014.02.26 01:34 신고 URL EDIT REPLY
몇시간동안 차근차근 따라한결과 완벽한 결과물을 얻을 수 있었습니다. 너무 감사드립니다! 복받으세요!
그런데 하나 의문점이 제가 만든 usb 디스크에선 배경 우측하단에 gfxmenu_tools\work\head.jpg가 꼭 들어가더군요 이걸 제거하는 방법은 없을까요?
박성민 2014.03.30 14:52 신고 URL EDIT REPLY
감사합니다.
덕분에 궁금했던 많은 것이 해결되었고 저만의 usb를 만들 수 있어 너무 즐겁습니다.
쉽고 간결한 설명이 초보인 저에게 막연히 저런걸 어떻게 만들었을까..궁금했던 사항도 해결해주고, 이해하기 어려웠던 부분을를 쉽게 이해할 수 있게 해주었네요.. 짱입니다.!!!
Linho 2014.03.31 09:20 신고 URL EDIT REPLY
감사합니다 ㅎ
덕분에 잘 만들었습니다 ㅎ
necozalenky 2014.04.12 22:18 신고 URL EDIT REPLY
많은 도움 받고 갑니다.
진심으로 감사 드립니다.
잔머리 2014.05.06 00:37 신고 URL EDIT REPLY
마지막에 usb에 복사하라고 하셨는데 어디까지 복사해야 하나요?
gfxmenu 파일만 복사하는건지 아니면 폴더를 복사해야 하는건지???
K's man 2014.07.14 20:29 신고 URL EDIT REPLY
혹시 한 usb에서 윈7 32bit 64bit를 동시에 깔 수 있는 방법이 있나요 ? 알려주시면 감사하겠습니다. 아직 이해하고 있는중이라서 급한대로 일단 이것만 가능한지 여쭤봅니다
으아아 2014.11.14 21:39 신고 URL EDIT REPLY
제발 봐주세요 ㅠㅠ 저 계속 Gfx메튜 ui가 안뜨고 전에 ㅎ던게 계속떠요 ㅠㅠ 어떡하죠?
크럭스 RUX | 2014.11.15 11:11 신고 URL EDIT
구체적으로 어떻게 구성하셨는지 USB 내부의 파일 구조, menu.lst 파일 내용 등을 알려주세요.
어떻게하지 2015.02.07 16:54 신고 URL EDIT REPLY
Gfxmanu를 올렸더니 배경은 나오는데 메뉴출력이 안되네요... 그보다도 시간재는 아이콘은 어떻게 없애나요?
송준혁 2015.02.17 09:09 신고 URL EDIT REPLY
정말 대단하세요. 이 블러그가 가장 맘에 들어요
나그네 2015.05.06 08:29 신고 URL EDIT REPLY
거진 요즘 크럭스님..사이트에 매일 출근부 찍네요. 좋은 강좌 감사합니다. ( _ _ )
하늘빛QP 2015.08.10 14:31 신고 URL EDIT REPLY
저는 왜 따라하니까
안될까요? 그대로 적용해서 gfxmenu명령어와 함꼐 적용되니
그림에 _만 뜹니다.(회색)
하늘빛QP | 2015.08.10 14:31 신고 URL EDIT
메뉴 부분을 눌르니까 되긴 되더라고요
글씨만 않보이는거 같은데...
왕초보 2017.03.30 19:00 신고 URL EDIT REPLY
윈도우포럼의 왕초보입니다..
좋은것 많이 배우고 갑니다
감사합니다..
moomoo339 2017.07.23 09:47 신고 URL EDIT REPLY
최고에요! 존경합니다!
Name
Password
Homepage
Secret
굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드