설치 / 사용기

소프트웨어 grub으로 UEFI legacy에서 사용할 수 있는 멀티 부트 USB 만들기

2017.02.17 14:35

뽜이론 조회:1962 추천:9

오늘은 USB에 grub을 설치하는 것을  말하려합니다.

grub4dos도 좋은 부트로더이지만 아시다시피 UEFI 시스템에서는

사용 할 수가 없습니다.

 

UEFI 시스템에서 USB 혹은 하드디스크로 멀티부트를 하기 위해서는

grub을 설치하면 됩니다.

 

리눅스가 설치된 머신에서 작업을 하면 좀 더 수월하겠지만

grub을 usb에 설치하기 위해 리눅스를 설치하실 필요는 없습니다.

vm에서 리눅스를 라이브로 부팅하여 USB에  설치하는식으로

말씀드리겠습니다.

 

키보드만 잡으면이라는 말이 어울리는 컴을 겨우 키고 끄는

저의 친구녀석도 이방법으로 만들었으니 윈포에 계시는 분들이라면

어려운건 없으리라 생각합니다.

 

준비물은 vm과 리눅스 배포판 이미지 중 64비트로 빌드된 이미지가 필요합니다.

어떤 배포판이든 상관이 없지만 사용자 친화적이라는 우분투 민트 같은

데비안 후손들을 기준으로 설명하겠습니다.

 

기존에 vm에 윈도우가 설치 되어 있든 상관이 없으나 하드디스크와 파티션 구성이

어떨지 모르니 새로운 머신을 하나 만드십시오.

굳이 UEFI 모드로 만들지 않아도 됩니다.

 

준비된 USB를 윈도우에서 포맷을 하셔도 되고 기존의 사용하는 USB 파일시스템이 fat32라면

그냥 그것을 쓰셔도 되겠습니다, 혹 모르니 백업을 해 놓으시길 바랍니다.

 

USB는 파티션을 나눠서 사용 할 수도 있지만, 일부 iso이미지들은 ntfs에서 부팅시 멈춰버리는

경우가 있습니다. fedora가 그렇습니다. 권장은 fat32입니다.

여기서도 심플하게 설명하기 위해 단일파티션으로 사용하는걸 기준으로 말씀드립니다.

 

1. vm으로 리눅스 라이브 모드로 부팅합니다.

 

2. USB를 꽂고 vm에서 오른쪽 하단에 마우스를 가져가서 USB의 모델이름이 팝업 되는 곳에서

   오른클릭하여 vm에 연결해 줍니다.

 

3.터미널을 실행합니다.

 

4.루트권한을 얻습니다.

 

   sudo -i

 

5. vm의 연결된 물리적 장치를 확인해 보겠습니다.

lsblk

 

6. 새머신이라면 하드디스크가 sda

  USB가 sdb로 잡혀 있는 것을 확인합니다.

 

7. UEFI 시스템에서 grub이 사용할 모듈을 설치할  grub-efi를 설치합니다.

 

apt-get install grub-efi

 

y/n 이 나오면 y를 선택하여 진행합니다.

 

8. 이제 USB를 마운트 합니다.

 

mount /dev/sdb1 /mnt

 

9. 윈도우에서 fat32로 포맷을 했거나 이미 사용중인 USB가 fat32인 것을 기준으로

설명하는것이니 여기서 포맷은 생략 합니다만

usb루트에 이미 boot폴더가 있으면 소문자로 boot인지 확인합니다.

BOOT 이거나 Boot로 되어 있으면 boot로 변경 하여 주십시오.

 

10. usb 루트에 boot 폴더가 있는 분들은 이과정은 생략합니다

 

없는 분들은 boot 폴더를 만들어 줍니다.

 

mkdir /mnt/boot

 

11.이제 grub을 설치합니다.

 

grub-install --target x86_64-efi --efi-directory=/mnt --boot-directory=/mnt/boot /dev/sdb --recheck

 

(실제 머신에서 작업 하시면 --recheck 뒤에 --removable 옵션을 사용하셔도 됩니다.)

 

노에러 메시지가 나오면 설치된 것입니다.

 

aa.PNG

 

12.legacy에서도 사용 할 수 있도록 하기위한 모듈 설치를 하겠습니다.

 

grub-install --target=i386-pc --boot-directory=/mnt/boot /dev/sdb --recheck --force

 

bb.PNG

 

13.실제 머신에서 작업 중이라면 grub.cfg를  생성해줍니다.

grub-mkconfig -o /mnt/boot/grub/grub.cfg

 

vm에서 작업 하시는 분들은 /cow 에러가 나오니 하실 필요가 없습니다.

 

14. USB의 UUID 값을 확인합니다.

 

blkid /dev/sdb1

cc.PNG

 

마우스로 블럭을 설정한 후 오른클릭으로 copy합니다.

 

15. uuid값을 텍스트 파일에 저장하겠습니다.

 

nano /mnt/uuid.txt

 

nano가 실행되면 마우스를 가져가서 입력창에 오른클릭하여 paste해 줍니다.

 

그리고 ctrl+x를 누르고 y를 입력하고 저장합니다.

 

16.이제 마운트 되었던 usb를 마운트 해제합니다.

 

umount /mnt

 

16. 루트계정에서 로그아웃 합니다.

 

exit

 

17. 터미널을 종료하고 시스템도 종료합니다.

 

나머지 작업은 윈도우에서 하겠습니다.

 

18. 작업이 정상적으로 마쳐졌다면 USB루트에

boot폴더와 EFI폴더가 생성되어 있을겁니다.

그리고 boot/grub 폴더에 가보면 아래와 같은 구조로 되어 있을겁니다.

 

├── fonts
├── i386-pc
├── locale
└── x86_64-efi

 

19. 동봉된 grub.rar를 압축해제합니다.

 

거기서 grub.cfg 파일과 memdisk파일 그리고, grub.d , themes폴더를  USB의 boot\grub폴더에 복사합니다.

 

20. grub.cfg를 메모장으로 열기합니다.

 

편집 =>바꾸기를 선택해서   찾을 내용에 5678-5678 입력하고 바꿀내용에 uuid.txt에 적혀있는 xxxx-xxxx를 입력한 후

 

모두 바꾸기를 클릭합니다.

 

 

20. b.PNG

부팅 후의 모습입니다.

 

루트에 iso폴더를 만들고 그안에 각각의 예를 들어 debian arch gentoo같은 폴더를 만들어서 거기에 iso파일을 넣으면 저런 식의 메뉴리스트가

나오게 됩니다. 혹 메뉴가 나오지 않는다면 \boot\grub\grub.d폴더 안에 있는 설정파일을 메모장으로 열어 iso파일 이름과 거기에 적혀있는

파일 이름이 같은지 그리고 대소문자를 비교하시고 수정할 부분이 있으면 수정하시면 되겠습니다.

 

아이콘이 나오지 않는 경우는 \boot\grub\themes\icons폴더에 png파일이 없기 때문에 안나옵니다.

인터넷어서 적당한 사이즈의 png파일을 구한 후 설정파일인 grub.cfg와 grub.d폴더에 있는 inc-xxxx.cfg를

열어서 menuentry 로 시작 되는 부분을 찾아서 --class 뒷부분에 파일이름만 써주면 됩니다. 역시 대소문자 구분하기 때문에

같게 써줘야 합니다.

 

예를 들어 menuentry "Arch Linux Install 2016.01.01 x86_64" --class arch { 가 있다면

 boot\grub\themes\icons에 들어갈 파일 이름도 Arch가 아닌 arch여야 합니다

 

debian art, gnome-look과 같은 곳에서 테마 파일은 쉽게 구할 수 있습니다.

직접 만들어도 됩니다. themes폴더에 있는 themes.txt파일을 열어서 참조하십시오.

위의 테마 역시 gnome look에서 구한 것입니다.

 

지금과 같은 방법 이외에 usb를 gpt파티션 테이블로 구성한 후 gdisk로  legacy부트를 위한 1mb 정도의 하이브리드 파티션과 EFI파티션을

만들어 구성하는 법 sgdisk를 이용하여 typecode를 입력하여 만드는 방법등 몇가지가 있지만 간단한 방법을 소개하였습니다.

관심이 가는 분들은 sgdisk나 gdisk를 이용하는 방법도 시도해보시길 바랍니다.

 

앞서도 말씀드렸지만  리눅스 이용자라면 grub복구 시에 사용하는 것이니 당연히

리눅스가 설치되지 않은  하드디스크에서도 그대로 적용 할 수 있습니다.

응용하기 나름입니다.

 

그럼 여기까지 말씀드리고 이만 마치겠습니다.

감사합니다.

 

 

첨언:

 

windows pe 같은 경우 memdisk를 이용해서 iso로 부트 할 수도 있지만 UEFI에서는 쓸 모도 없고 메모리에 부담이 가기때문에

USB루트에 풀어서 chainloader 하는 방식으로 grub.cfg를 설정하였으니 windowsPE는 풀어서 루트에 위치 시키면 되겠습니다.

 

 

번호 제목 글쓴이 조회 추천 등록일
[공지] 사용기/설치기 이용안내 gooddew - - -
10856 기 타| WinXPE147수정버전_20240311_ 23H2(빌드22631.3235) 사용기 [66] 격자 470 94 03-12
10855 기 타| Dism Cmd - Multi 윈도우용으로 구성을 하여 보았습니다. [14] 왕초보 668 19 03-12
10854 소프트웨어| 히든파티션에 드라이브명 부여-RSPartition [15] 카멜 698 38 03-12
10853 기 타| PE의 빌드 앞번호 수정하기 [24] suk 837 46 03-12
10852 기 타| " 화면확대용 도우미 - 쭘 " - ㅁ자님 작 [13] 굴렁쇠 649 27 03-11
10851 윈 도 우| 지후빠님의 디펜더 토글 [36] 집앞의_큰 940 83 03-11
10850 기 타| Dims Cmd 증분 - 컬러바를 선택해서 사용하여 보았습니다 [7] 왕초보 647 16 03-11
10849 기 타| [종료]WindowsXPE147 수정버전_20240311 [48] 노랑개굴 1020 69 03-11
10848 윈 도 우| Win10 최신 버전 PE빌드 [17] 라랑 1023 31 03-11
10847 소프트웨어| WIM 정보 v0911 -Apply 추가. Export 기능 강화. ESD 지원 [20] 입니다 872 48 03-10
10846 기 타| Dims Cmd 증분 - 컬러 아이콘을 적용하여 보았습니다.. [8] 왕초보 659 16 03-10
10845 소프트웨어| 유튜브 멀티 다운로드 외부 실행기 기능추가 및 당부말씀드... [2] 굿듀님스토 561 12 03-10
10844 기 타| Dims Cmd 증분 - 메세지에 체크 박스를 추가하여 보았습니다 [10] 왕초보 655 16 03-09
10843 소프트웨어| [공유] WindowsXPE147 수정버전 사용기 [52] 시종일관 1099 73 03-09
10842 윈 도 우| 튜닝윈도 따라하기 22H2_19045.4123 [9] 라랑 520 17 03-09
10841 소프트웨어| 유튜브멀티 다운로드 사용법 영상 [1] 굿듀님스토 421 17 03-09
10840 기 타| Dims Cmd 증분 - nov님 소개 메세지를 활용하여 보았습니다. [8] 왕초보 668 16 03-09
10839 윈 도 우| 입니다님의 PE_RunOnce_ANSI02 [23] 집앞의_큰 940 55 03-09
10838 기 타| [종료] 아래 성공한 PE 나눔 [33] 더~불어~~~ 1380 75 03-09
10837 기 타| [종료] 노**굴님 빌더 수정 공유 [16] 더~불어~~~ 910 44 03-09
XE1.11.6 Layout1.4.8