본문 바로가기
Project/Ubuntu

멀티 OS 설치 - Windows11, Ubuntu 22.04)

by FastBench 2023. 11. 19.

Disk Partition


멀티 OS 를 사용하기 위해서는, GRUB 이라는 별도의 로더를 사용해야 한다.

해당 로더는 어디에 위치할까? 이를 알기 위해서는 디스크의 파티션 방식에 대해 간략히 알아야 한다.

 

디스크 관리 유틸리티를 열어준다.

내가 사용하고 있는 windows11 기준으로 디스크 관리(disk management)를 실행하기 위해서는, 영어로 검색하던지 한글로 '하드디스크 파티션 만들기 및 포맷' 이라고 검색하면 된다.

 

최근 대부분의 x86 시스템이 사용하는 펌웨어(부트로더)는 BIOS 가 아닌 UEFI 이고,

UEFI를 사용하기 위해서는 디스크 포맷 시 GPT 파티션 방식이 적용되어야 하므로 EFI  파티션이(EFI 시스템 파티션, ESP 라고도 한다) 자동으로 생성된다. 

유저입장에서 보이지 않을 뿐이다. 위 스크린샷에서는 디스크 0 의 파티션 1 이 이에 해당한다.

 

ESP

해당 파티션에 접근하기 위해 명령 프롬프트에서 'diskpart' 를 입력하여 디스크 관리 유틸리티를 실행한 후,

해당 시스템파티션 (efi 파티션) 을 s 드라이브로 할당하면, 아래와 같이 액세스가 가능해진다.

 

해당 파티션 내의 계층 구조를 살펴보면 bootx64.efi 라는 파일이 보일 것이다.

 

Boot flow in Windows

​UEFI 펌웨어는 ESP 의 EFI/Boot/bootx64.efi 를 가장 먼저 실행한다.

이후의 플로우는 아래와 같다.

 

이후 우분투 설치 USB 또한 GPT 방식으로 만들어, UEFI 펌웨어에 진입한 후 부팅 순서를 USB 를 1순위로 지정하면 

USB 내의 EFI/Boot/bootx64 가 실행되어 설치과정에 맞게 흘러갈 것이고, EFI/Ubuntu/xxxx.efi 가 잘 설치 될 것이라고 생각했는데

 

예상외로 설치과정에서 자꾸 GRUB 설치에 오류가 발생하며 실패했다.

 

Ubuntu Install


이후로 삽질을 계속 하다가 결국, 디스크를 포맷하고 우분투를 먼저 설치하기로 했다.

디스크를 포맷하므로 정상적으로 설치가 되었고, 디스크는 아래와 같이 파티셔닝 되어 있다.

설치시 별다른 수정을 하지 않았으므로 ESP를 제외한 디스크의 모든 공간이 파티션으로 잡혀 마운트 되어 있음이 확인된다. 

 

GRUB Configuration

우분투의경우 bootx64.efi 가 EFI/ubuntu/grubx64.efi 를 호출하여 GRUB 로더가 가장 먼저 실행되는데, GRUB 은 OS 로더로써, ESP 파티션내의 efi 파일을 서칭해서 선택하여 실행될 수 있도록 한다.

따라서 Multi OS 환경에서는 필수로 먼저 실행되어야 한다.

따로 마운트를 해줬는데, /boot/efi 에 이미 마운트가되어 있으니 확인 가능하다.

 

 

환경에 따라 다를 수 있겠으나, 본인의 경우 GRUB 이 보이지 않았으므로 GRUB 설정파일을 약간 수정해 주었다.

(수정 후 sudo update-grub 필요)

이후 정상적으로 GRUB 로딩이 확인되었다.

캡처가 어려워, 인터넷에서 사진을 가져왔다

 

Partioning for Windows & Installation


이후 윈도우 설치를 위해 디스크에 공간을 마련해 주어야 하는데, 위에서 언급했든 모든 공간이 할당되어 있어 파티셔닝을 다시 해주어야 했다.

하지만 root file system 이 디스크에 마운트에 된 채인 runtime 에서 파티셔닝은 불가능하기 때문에 ubuntu 의 live booting 을 사용하여 파티셔닝을 해준다.

 

우분투설치 usb 로 부팅하여  Try Ubuntu 기능을 사용하면 usb 디바이스를 root file system 삼아 동작하는데, 이때 디스크를 파티셔닝 해줄 수 있다. window가 설치될 디스크가 어떤 블록 디바이스로 잡혀있는지 잘 확인 후, 사이즈를 조절하여 할당되지 않은 공간을 만들어 준다.(unallocated)

대략 120 GB 로 잡아주었다.

캡처할 생각을 못해, 이미지 서치로 대체

 

이후 윈도우 설치 usb 로 윈도우 설치를 진행한다.

리부팅이 될때는 UEFI 펌웨어 진입하여 부팅 순서를 디스크로 바꾸는 것을 잊지 말자.

 

GRUB Reconfiguration

설치가 모두 끝나고, 재부팅을 시작하니 GRUB 에 window boot manager 가 잡히지 않아 ubuntu 에서 좀 살펴보았다.

ESP 에 필요한것들은 다 잡혀있었는데 GRUB 이 bootmgfw.efi 를 잡지 못하는 것처럼 보였다.

 

수동으로 boot/grub/grub.cfg 를 수정해도 되지만 grub-mkconfig 를 사용하여 자동으로 생성해주니, 아래와 같이 bootmgfw.efi 를 찾아서 entry 에 추가되는것이 확인되었다.

만약 bootmgfw.efi 를 찾지 못한다면, GRUB_DISABLE_OS_PROBER=false 를 /etc/default/grub 에 추가한다.

 

리붓 후 grub 이 windows boot manager (bootmgfw.efi) 를 찾는 것을 확인

 

 

이로써 멀티 OS 설치가 끝났다.

'Project > Ubuntu' 카테고리의 다른 글

[Vim Plugin] YouCompleteMe  (0) 2024.05.12
WSL2 D드라이브로 마이그레이션하기  (0) 2024.04.04

댓글