elsa in mac

mac, USB로 부팅 가능한 Fedora-Asahi Linux 설치법 본문

Mac(OS X)/Asahi Linux

mac, USB로 부팅 가능한 Fedora-Asahi Linux 설치법

elsa in mac 2024. 1. 19. 17:41

이번 포스트는 개인적인 로그 입니다 만, 혹시 필요하신 분들에게도 도움이 될 수 있을 것 같습니다.

Apple silicon mac의 경우, 내부 저장장치가 아닌 외부저장장치를 통해 OS를 부팅할 수 없습니다. 이것은 비단 Asahi Linux 뿐만 아니라, macOS를 설치한다하더라도 마찬가지 입니다. 내부 저장장치의 분할된 파티션에 또 다른 macOS를 설치할 수 있을 뿐, 외장장치에 설치된 macOS로 부팅할 수 없습니다.

하지만, Asahi Linux를 설치한 경우에는 USB포트에 연결된 저장장치를 통해 Fedora-Asahi Linux를 부팅할 수 있는 방법이 있습니다.  이 방법은 asahi-fedora-usb github 을 참고 한 것입니다.

Pros vs. Cons
USB를 통한 Fadora-Asahi Linux 부팅의 전제조건은 내부저장장치에 Fedora-Asahi Linux가 설치되어 있어야 한다는 것 입니다. 기존 mac의 정책에 의해 곧바로 USB로 부팅을 할 수 없기 때문입니다. 따라서, 만일 외장장치에서 Linux를 사용할 것이라면 내부저장장치 파티션을 최소한으로 Asahi-Linux에 배정하고 Asahi Linux를 설치한 다음 Asahi Linux로 부팅 후 진입 단계에서 U-Boot > GRUB > USB-Booting의 단계를 거쳐야 합니다.  두번째로 고려해야 할 것은 현재 Asahi Linux는 mac의 Thunderbolt 인터페이스를 지원하지 않기 때문에 비교적 저속 USB 외장저장장치에 Asahi Linux를 설치하고 사용할 수 밖에 없습니다.  때문에 속도면에서는 내장 NVME에 설치하는 것 보다 느립니다 (그렇다고 렉이 걸리거나 버벅거리는 것은 절대 아님).  반면, Linux 저장장치의 공간적인 제한을 해소할 수 있는 장점이 있지요.

실제 사용을 해 보면, 역시 main으로 사용하기에는 내부저장장치에 직접 설치해서 사용하는 편이 좋습니다. 다만, macOS에 Recovery 모드가 있듯이, 내부 NVME에 설치한 FedoraAsahi Linux에 문제가 생겼을 때, USB 외장장치에 설치한 Fedora-Asahi Linux를 Recovery 모드처럼 사용할 수 있기 때문에, 문제를 해결할 수 있는 통로가 될 수 있습니다. 아니면, 내장 Linux에 어떤 작업을 하기 전에, 외장장치에 설치한 Linux에서 시범적으로 작업을 진행하고 확인하는 용도로 사용할 수도 있을 겁니다.

그럼.. 만드는 과정을 살펴 보도록 하겠습니다.

우선, Fedora-Asahi Linux를 설치할 USB 인터페이스의 외부저장장치를 준비 합니다. 내부에 정보들이 들어 있다면 모두 다른 디스크로 백업합니다. 아래에 진행될 작업에서 외장저장장치 전체의 파티션을 rebuild하기 때문에, 기존의 정보들과 파티션들이 모두 삭제 됩니다. 만일 여러 개의 파티션으로 나눠져 있다면.. 이 또한 macOS의 Disk utility 앱이나, Linux의 gparted 앱등을 이용하여 사전에 모두 제거하는 것이 좋습니다.  이게 시간낭비를 줄이는 방법 입니다.

그리고, mac에 여러 개의 저장장치가 연결되어 있다면 모두 분리하고 오로지 설치할 외장저장장치 하나만 연결을 해 줍니다. 만일 고정된 환경이라면 USB 연결을 변경하면 안됩니다. 부팅시 장치명으로 부팅하기 때문에, 설치 후에 USB 포트를 바꿔 다른 포트에 연결하거나 할 경우 장치 순서에 따라 장치명이 뒤 바뀌게 되고 따라서 올바로 부팅이 되지 않을 수 있습니다.

이제, mac의 내부저장장치에 설치한 Fedora-Asahi Linux로 부팅을 합니다. 부팅이 되고 로그인 단계에서 일반 계정이 아닌 root 계정으로 로그인을 해야 합니다. 일반계정으로 로그인 후, sudo 를 이용한 작업을 할 수 없기 때문입니다. 만일 root 계정에 대한 패스워드를 모른다면 일반계정으로 진입한 후, passwd 명령으로 root 계정의 패스워드를 재설정 해 주어야 합니다.  그럼 다시, logout -> root 계정으로 로그인 합니다.

root 계정으로 로그인을 한 후, 터미널을 열고  아래의 package들을 설치 합니다.

dnf install arch-install-scripts bubblewrap gdisk mkosi pandoc rsync git systemd-container

다음으로, USB에 minimum fadora mkosi를 설치할 수 있는 설치 스크립트를 다운로드 합니다.

git clone https://github.com/leifliddy/asahi-fedora-usb.git

git clone이 완료되면, cd asahi-fedora-usb 디렉토리로 진입한 후, 장치명을 확인합니다.

위의 예는 이미 설치를 완료 한 후의 상황입니다 설치 후에, 외부 저장장치에 파티션을 3개를 더 만든 것이라 좀 혼동될 수 있지만, mac에 오직 한 개의 외장장치만 USB로 연결한 상태라면 sda 한 개만 있을 것 입니다.

이제 아래의 명령을 내리면, /dev/sda 즉 외장저장장치에 파티션을 나누고, 부팅 가능한 fedora-asahi linux를 설치하게 될 것입니다.  (시간이 좀 걸립니다)

./build.sh -d /dev/sda

오류 메시지 없이 정상적으로 설치가 되었다면.

./build.sh mount

명령을 내려 줍니다. 그럼 현재 디렉토리에 mnt_usb 라는 디렉토리가 생기고 해당 디렉토리로 들어가면 방금전에 설치한 fedora-asahi linux의 내부로 진입할 수 있습니다.

진입을 했다면 cd home 한 후, 자신의 계정과 동일한 계정이 있는 것을 확인하고 이를 제거해 줍니다.  여기서 주의 해야 합니다. 정확한 경로는 ..../mnt_usb/home/[자신의 계정과 동일한 디렉토리] 입니다 실수로 rm -Rf /home/[자신의 계정 디렉토리] 이렇게 하면 안됩니다. 난리 납니다.

아래는 예시 입니다 저의 계정이 elsa 이므로. 아래와 같이 진행 했습니다.

cd mnt_usb
cd home
rm -Rf elsa
cd ../..
./build.sh umount

mnt_sub 디렉토리로 진입 > home 디렉토리로 진입 > 계정 디렉토리 삭제 > mnt_usb 디렉토리를 나옴 > mount 해제

이헣게 계정을 지우는 이유는 나중에 USB로 부팅을 한 후에 다시 계정을 만들어 줘야 하기 때문입니다.

자 이제, 이 부분이 중요 합니다 현재 내부 NVME에 설치된 Fedora-Asahi Linux로 부팅을 한 상태에서 위의 작업을 진행했는데요.. 여기서 GRUB Menu를 만들어 주어야 합니다.  인터넷을 검색하면 U-Boot 에서 env 설정하고 run usb_boot 명령으로 USB 부팅하면 된다는 글들이 많이 있는데.. 이거 안됩니다. (적어도 저의 경우에는 절대 되지 않음)

우선, 현재 내부로 부팅한 linux 기준 이고, 외부저장장치가 여전히 연결되어 있어야 합니다. /etc/default/grub의 내용을 확인합니다 만일 grub 파일이 없거나, 있더라도 아래와 다른 내용이 있다면 아래의 내용으로 바꿔 줍니다.

GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE="menu"
GRUB_TERMINAL_OUTPUT="gfxterm"
GRUB_FONT=/boot/grub2/fonts/unicode.pf2

저장을 한 후에 아래의 명령을 내려 줍니다.

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

그럼, 아래와 같은 메시지가 나오면서 grub menu를 생성하게 됩니다.

Generating grub configuration file ...
Found Fedora Linux Asahi Remix 39 (Thirty nine) on /dev/sda3
done

위의 내용과 정확히 정확히 일치하지 않을 수 있습니다. 중요한것은 /dev/sda3에서 Fedora Linux Asahi Remix 39를 찾았다리는 메시지가 포함되어 있어야 한다는 점입니다.

이로써 USB에 Linux를 설치하고, 부팅할 준비가 다 되었습니다.  이제 rebooting을 해 줍니다.

USB로 부팅
부팅을 하면, Fedora 로고가 나오고, U-boot 카운트가 지난 후, 기존과는 달리 GRUB Menu가 나타나게 됩니다. 아래의 스샷을 보면, Fedora Linux Asahi Remix 부팅 옵션이 2개 있는 것을 알 수 있습니다. 위부터 아래로 첫번째 것은 내장 NVME에 설치한 Fedora-Asahi Linux로 부팅하는 것이고, 두 번째가 바로 USB에 설치한 Fedora-Asahi Linux로 부팅하는 메뉴 입니다. (/dev/sda3) 가 보입니다. 두 번째 것을 방향키로 선택하고 Enter를 눌러 부팅을 진행 합니다.

부팅을 하고 나면, GUI 모드가 아닌 그냥 shell 모드인 것을 알 수 있습니다.

root로 로그인 합니다. 패스워드는 fedora 입니다. 로그인을 한 후에 네트워크를 연결하고 upgrade를 한 후, 이 후의 작업들을 진행해야 합니다. wifi를 활성화 시키는 방법은 아래와 같습니다.  아래는 예시 입니다.

nmcli dev wifi connect demo_5g password 1234_abcd

nmcli : network manager cli 명령
dev wifi : wifi 장치를 사용하겠다.
demo_5g : 연결할 wifi 의 ssid, 집이나 사무실에서 와이파이 연결할 때 나타나는 wifi 이름을 넣어 주면 됨.
password : password 옵션
1234_abcd : 해당 wifi의 접속 패스워드

이제 wifi를 통해 인터넷을 사용할 수 있게 되었으니, 아래의 명령으로 기본 업데이트를 진행합니다.

dnf upgrade --refresh

다음으로 사용자 계정을 하나 만들어 줍니다.  계정명은 elsa 로 예를 들겠습니다. 

adduser elsa

다음, 해당 계정이 sudo를 사용할 수 있도록 wheel group에 넣어 줘야 합니다.

usermod -aG wheel elsa

이제 다 되었습니다. 이제 필요한 다른 package들이 있다면 설치해서 사용하면 됩니다.

끝으로 만일, GUI Desktop을 설치하고자 한다면, 아래의 명령으로 KDE Plasma Desktop을 설치하면 됩니다.  대략 1400개의 패키지를 설치해야 하므로, 시간이 좀 걸립니다. 설치가 끝난 후에 rebooting을 하고 다시 USB로 부팅하면 GUI 로그인 화면을 만날 수 있습니다.

dnf groupinstall "KDE Plasma Workspaces"

앞서 서두에서 언급했듯이, mac에서 바로 USB로 부팅을 하면 참 좋겠지만.. 그건 mac에서 지원을 하지 않으니 어쩔 수 없습니다. 아직 thunderbolt 인터페이스를 지원하지 않기 때문에 보다 고속의 저장장치를 활용하지 못하는 것도 아쉽지만.. 그건 앞으로 해 나가야할 작업 스켸쥴의 우선 순위에서 좀 밀려 있는 듯 합니다. 

개인적으로는 USB3 SSD에 KDE Plasma와 Hyprland 둘 다 모두 설치하고 사용해 보고 있는데, 나름 쓸만 합니다. 물론 Read/Write 가 빈번할 수 있는 작업을 할 경우에는 아무래도 내장 SSD에 설치한 Linux보다는 살짝 느린감이 있습니다. 그래도 내장 SSD linux에 문제가 생겼을 때, USB로 부팅해서 data 백업이라도 할 수 있게 되었으니 그저 감사한 맘으로 쓸 따름 입니다. ^^ 

 

공유하기 링크
Comments