상세 컨텐츠

본문 제목

[만능 USB를 만들어 보자] 10. GRUB4DOS의 테마, GFXMenu

운영체제/GRUB4DOS

by wjdqh6544 2017. 8. 1. 21:57

본문


이번 포스팅에서는 GRUB4DOS의 테마라고 할 수 있는 GFXMenu에 대해 알아보도록 하겠습니다. 지난 편에서 설명한 SPLASHIMAGE 명령어로는 기존 GRUB4DOS의 틀 안에서 배경화면을 바꾸는 정도만 가능했었는데요,(관련 글: [만능 USB를 만들어 보자] 9. GRUB4DOS 배경화면 변경하기) 이번에 알아볼 GFXMenu는 GRUB4DOS의 UI 자체를 바꾸어 버릴 수 있는, GRUB4DOS의 테마라고 보시면 됩니다. 준비물은, 제가 첨부해 드리는 파일입니다. 그럼 시작합니다.


GFXMenu의 구조


(사진 없습니다. 양해바랍니다.)GFXMenu 파일은 기본적으로 윈도우에서 인식하지 못하는 확장자를 가지고 있는데요, 하나의 파일처럼 보이지만 실제로는 내부에 여러 파일들을 포함하고 있는 압축파일입니다. 7-ZIP 으로 열어보면 이 파일의 확장자를 알 수 있는데요, 바로 GFXMenu는 CPIO 라는 확장자를 가지고 있습니다. CPIO 확장자는 주로 UNIX 시스템에서 사용하는 포맷인데요, 윈도우 환경의 압축 프로그램에서는 대부분 지원되지 않는 포맷입니다. 7-ZIP 으로 압축을 풀면 여러개의 파일을이 보이는데요, 먼저 back.jpg 파일은 GFXMenu의 배경으로 사용되는 JPG 파일이고요. 그 외에 폰트 파일인 16x16.fnt 파일, 그리고 GFXMenu의 설정 파일인 GFXBoot.cfg 파일이 보입니다.


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

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


GFXMenu Tools로 GFXMenu 수정하기


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


2017:07:27 20:18:47

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

2017:07:27 20:19:22

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

2017:07:27 20:19:37

GFXMenu를 선택하시면 이렇게 GFXMenu를 편집할 수 있는 메뉴가 출력되는데요, 여기서 주로 사용되는 기능들은 3번, 4번, 5번, 6번입니다. 원하는 메뉴의 번호를 입력한 후 엔터를 누르면 해당 메뉴가 선택됩니다. 기능 설명을 하자면

3. 이미지 만들기 - GFXMenu의 배경 이미지 변경

4. 한글 폰트 생성 - TTF폰트를 GFXMenu의 폰트 포맷으로 변환해 줌.

5. 환경변수 수정 - GFXMenu의 설정 파일이라고 했던 gfxmenu.cfg를 편집해 줌.

6. 압축 - 수정한 파일들은 다시 CPIO로 압축


1. 배경화면 변경


가장 먼저 배경화면을 바꾸어 보도록 할게요. '3. 이미지 만들기' 를 선택해주세요.

2017:07:27 20:19:58

image 폴더에 변환할 이미지파일을 넣어달라네요. 저는 지난 편에서 사용한 배경이미지를 살짝 수정해서 사용하겠습니다. 원하는 이미지 파일을 image 폴더에 복사한 뒤, 아무 키나 눌러주세요. 단, jpg 포맷이어야 하고, 작업 전에 미리 800x600의 해상도로 변환해 두는것을 추천합니다.)

2017:07:27 20:22:49

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

2017:07:27 20:23:03

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

2, 폰트 변경하기


이번에는 폰트를 변경할겁니다. '4. 한글 폰트 생성' 메뉴를 선택해주세요.

2017:07:27 20:23:41

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

2017:07:27 20:25:01

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

2017:07:27 20:25:55

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

2017:07:27 20:26:41

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

2017:07:27 20:27:04

아무거나 누르세요

2017:07:27 20:27:23

이제 이런 문자들이 출력되는데요, 폰트를 변환하는 과정입니다. 약간의 시간이 소요되니 커피한잔 마시면서 느긋하게 기다려주세요.

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


3. gfxboot.cfg 수정하기


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

2017:07:27 20:30:26

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

2017:07:27 20:31:49

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

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

이 값은 여러번 수정해서 자신에게 맞는 값을 찾아주시면 됩니다.

2017:07:27 20:33:44

이제 이렇게 gfxboot.cfg에 x, y 좌표값을 입력해 줍니다. 입력 후 'File - Save' 또는 Ctrl+S 로 저장해주시고 닫아주시면 됩니다.


4. 압축하기


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

2017:07:27 20:34:10

파일명을 입력해줍니다. 저는 GFXMENU 로 하겠습니다. 당연히 한글은 안되고요.

2017:07:27 20:34:32


2017:07:27 20:34:48
성공적으로 압축이 되었다네요. 완성된 GFXMENU 파일은 ISO 폴더 안 GFXMENU 폴더에 존재합니다.

2017:07:27 20:35:18

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


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



2017:07:27 20:36:02

gfxmenu /[GFXMenu 파일 경로]


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

2017:07:27 21:07:16

부팅하시면 GRUB4DOS의 시커멓고 칙칙한 UI 대신 마음에 드는 GFXMenu의 UI 가 출력되는 것을 보실 수 있습니다.

2017:07:27 21:07:35


2017:07:27 21:08:06

이 방법을 활용하시면 각 카테고리마다 각기 다른 UI 를 적용할 수 있습니다. 압축할 때 압축 파일 이름만 바꾸면 되거든요.


마치며..


이렇게 이 GFXMenu 편을 마지막으로 모든 GRUB4DOS [만능 USB를 만들어 보자] 시리즈가 끝이 났습니다. 아직 설명하지 못한 것도 많고 제가 모르는 기능도 엄청날 수도 있겠지만 이 정도만 있어도 전문가 못지않은 복구 툴을 만들어 낼 수 있을 것 같은데요, 더 많은 정보를 원하시는 분들은 밑의 USB 부팅 관련 사이트 링크 하나 걸어드리도록 할게요.


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


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


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


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

관련글 더보기

댓글 영역