[만능 USB를 만들어 보자!] 4편 - GRUB4DOS 사용법

Multibooting/GRUB4DOS


지난 3편에서는 USB에 GRUB4DOS를 설치했었습니다. 이번 편에서는 GRUB4DOS의 사용법과 핵심 명령어들을 알아보도록 하겠습니다.


GRUB4DOS, Command-Line 모드로 사용하기



3편의 모든 과정을 제대로 따라오셨으면 지금 GRUB4DOS가 설치된 USB를 부팅시키면 이런 화면이 나타납니다. 바로 이것이 GRUB4DOS의 Command-Line 모드인데요, DOS와 매우 비슷하다는 것을 한눈에 확인할 수 있습니다. 

GRUB4DOS는 두 가지의 모드가 있습니다. 바로 Menu 모드Command-Line 모드인데요, GRUB4DOS가 처음 로드되면 해당 디스크의 menu.lst 파일을 찾아서 그 안의 메뉴 설정들을 읽어들여 띄워주게 됩니다.



Menu 모드의 모습입니다. 제 만능 USB의 menu.lst를 로드한 모습인데요, 키보드 방향키로 원하는 메뉴를 선택한 뒤, 엔터키를 입력해주면 선택된 메뉴의 명령어들을 순차적으로 실행하게 됩니다.


title Windows 7 PE
find --set-root /bootmgr
chainloader /bootmgr


위의 명령어들은 제 만능 USB에서 윈도우 7 PE 메뉴를 선택하면 순차적으로 실행되는 명령어들인데요, 저번에 2편에서 잠깐 언급했던 '체인 로딩' 명령어입니다. '체인 로딩' 명령어는 GRUB4DOS의 가장 기본적인 명령어 중 하나로, 위의 경우 윈도우 7의 BOOTMGR 2차 부트로더를 찾은 뒤 로드하고 부팅하는 명령을 수행하게 됩니다.

이렇게 GRUB4DOS는 기본적으로 설치된 디스크의 menu.lst를 로드한뒤 Menu 모드로 들어가게 되는데요, 그렇다면 왜 우리가 만든 USB는 Command-Line 모드로 들어가지는 걸까요?

GRUB4DOS에서 자동으로 Commnad-Line 모드로 진입되는 이유는 'menu.lst 파일이 존재하지 않기 떄문' 입니다. 지난 편에서 만든 USB에는 menu.lst 파일이 없으므로 자동으로 Commnad-Line 모드로 들어가지게 되는 것인데요, 이외에도 Menu 모드에서 'c' 키를 눌러 수동으로 들어가는 방법도 있습니다.


이제 GRUB4DOS의 명령어들을 알아볼텐데요, 모든 명령어들을 다 설명하기는 그렇고 앞으로 자주 사용할 필수적인 명령어들 몇 개만 설명한뒤 나중에 필요할 때 하나씩 더 설명하도록 하겠습니다. 스크롤이 길지만 잘 읽어주세요 ^^


GRUB4DOS 명령어 - 1. {TAB} (자동완성)


TAB키는 명령어라고 하기는 그렇지만 GRUB4DOS의 Command-Line 모드에서 가장 자주 사용되는 기능 중 하나입니다. Command-Line에서 TAB키를 입력하면 남는 부분을 자동완성 해주는데요, Menu 모드에서는 전혀 쓸 수 없는 명령어지만 Command-Line 모드에서 TAB키는 매우 유용한 기능 중 하나입니다.



Command-Line 모드에서 TAB키를 입력했을때의 동작은 두 가지가 있는데요, 명령어 부분 (첫번째 단어) 에서 입력되었을때와 그 외의 부분에서 입력되었을 때의 동작이 달라집니다.


chainloader   /bootmgr

                     명령어 부분 - 입력 가능한 모든 명령어 출력   /  구문 부분 - 해당 경로의 모든 드라이브/파일 출력


먼저 첫번째로 명령어 부분에서 TAB키를 눌렀을때 입니다. 이 때 GRUB4DOS는 입력된 알파벳으로 시작하는 모든 명령어들을 출력해주게 됩니다. 당연히 아무것도 입력되지 않은 상태에서 TAB키를 누르시면 모든 명령어가 출력되겠죠?



그렇다면 명령어가 아닌 부분에서 TAB키를 누르면 어떻게 될까요? 이 때는 해당 알파벳으로 시작하는 현재 경로의 모든 드라이브/파일을 출력 해줍니다.



이렇게 TAB키를 통한 자동완성 기능은 Command-Line 모드를 좀 더 편하게 쓰게 해줍니다.


GRUB4DOS 명령어 - 2. FIND (검색)


이 Find 명령어 역시 유용하게 사용될 수 있는 명령어인데요, TAB키와는 다르게 Find 명령어는 메뉴 작성시 유용하게 사용됩니다. 기본적인 사용법은 이렇습니다.


find --set-root /bootmgr


이런 식으로 사용하시면 되는데요, 이 명령어를 실행하면 이렇습니다.



보신 뒤 눈치채신 분들도 있겠지만 find 명령어는 현재 컴퓨터의 디스크들 중 루트 경로에 bootmgr이 존재하는 디스크를 출력해줍니다. 이 때 --set-root 를 뒤에 붙이시면 현재 경로를 루트 경로로 지정해줍니다.

보통 멀티부팅 USB를 만드시면 여러 컴퓨터에서 사용하실텐데요, 이 경우 컴퓨터마다 장착된 디스크의 수, 디스크 번호가 다를수도 있기때문에 메뉴를 작성했을때 내 컴퓨터에서는 부팅이 되지만 다른 컴퓨터에서는 부팅이 안될 수 있습니다.

그래서 메뉴를 작성할 때는 항상 find 명령어를 사용해서 로드할 파일이 어느 디스크에 있는지 확인하고 해당 디스크를 루트경로로 지정해 주는 습관을 들이시면 좋습니다.


GRUB4DOS 명령어 - 3. CHAINLOADER (체인로딩)


Chainloader 명령어는 GRUB4DOS의 전부라고해도 무방할 정도로 GRUB4DOS의 가장 핵심 명령어이며, 가장 많이 사용되는 명령어입니다. 아까 앞에서도 얘기했었죠? GRUB4DOS는 Chainloader 명령을 통해 다른 운영체제의 2차 부트로더를 로드하고 부팅하게 됩니다.


chainloader /bootmgr


사용법은 그냥 Chainloader 명령어 뒤에 로드할 2차 부트로더의 경로를 적어주시면 됩니다.



이렇게 실행하시면 이 명령어는 첫번째 하드디스크의 첫번째 파티션의 루트경로에서 윈도우의 2차 부트로더인 bootmgr을 찾아서 로드하게 됩니다. (Command-Line 모드라서 그냥 바로 하드디스크를 지정해 주었는데요, 메뉴를 작성하실때는 find --set-root /bootmgr 명령을 먼저 실행해주시는 것이 좋습니다.) 이제 2차 부트로더를 로드했으니 부팅을 해야겠죠? boot 명령어를 입력해주시면 윈도우로 부팅됩니다.


이렇게 가장 핵심적인 GRUB4DOS 명령어들을 알아보았습니다. 다음 편에서는 GRUB4DOS의 '파일 경로'에 대해서 알아보도록 하겠습니다.