elsa in mac

m1(apple silicon) mac에서 Linux를 사용하고 싶다면... 2 (Multipass를 이용하는 방법) 본문

카테고리 없음

m1(apple silicon) mac에서 Linux를 사용하고 싶다면... 2 (Multipass를 이용하는 방법)

elsa in mac 2022. 4. 2. 12:42

이번 포스트에서는 M1 mac에서 Linux를 사용할 수 있는 두 번째 방법 입니다. 

Linux를 사용하는 분들 중에는 Linux가 제공하는 GUI를 사용하시는 분들 보다는 저 처럼 주로 Terminal 만 사용하시는 분들도 꽤 많으실 것이라 봅니다. 주로 Linux를 소프트웨어 개발 용이나, Web Server용으로 사용하는 경우에 해당 되겠죠. 

mac을 사용하면서 굳이 휼륭한 macOS GUI를 나두고 Linux GUI를 사용할 이유가 있을까 ?...

암튼, apple silicon mac에서 Linux를 사용하기는 해야 하는데,  굳이 Linux GUI를 사용할 필요가 없는 분들이 선택할 수 있는 가장 좋은 선택 중 하나는 Ubuntu 개발사인 Canonical 에서 제공하는 가상머신 솔루션인 Multipass를 사용하는 것입니다.  

Multipass는 Canonical에서 2019년에 만든 가상머신 솔루션으로 Terminal 기반의 인터페이스를 지원하는 대신 매우 적은 자원 소비를 장점으로 합니다. 이러한 장점은 여러 개의 Linux Instance를 단일 PC 혹은 Mac에서 동시에 띄어야 하는 분들에겐 매우 큰 장점이 아닐 수 없습니다.   

설치 및 관리가 매우 쉽기 때문에, Linux 기반의 개발환경이나 서버 환경을 공부하고자 하는 분들에겐 더할 나위 없이 좋은 솔루션이라고 생각 됩니다. 

자 그럼 M1 mac을 기준으로 설치 과정을 알아보도록 하겠습니다. 

우선, 홈페이지에서 Multipass app을 다운로드 받습니다.

설치를 마치고, 앱을 실행하면 아래와 같이 Menubar에 multipass icon이 나타나게 됩니다. 

이 녀석의 활용법은 뒤에서 알아보도록 하겠습니다. 


일단 설치를 하고 나면 Terminal을 통해 Multipass을 제어할 수 있게 됩니다. 
Terminal을 열고, 아래와 같이 multipass를 실행해 봅니다. 

멀티패스가 잘 설치가 되었네요..

자 그럼, 가장 먼저 할일은 ubuntu Linux 가상머신을 설치하는 일이겠죠. 
macOS Terminal에서 multipass find 명령을 사용하면 설치가능한 가상머신의 종류를 확인할 수 있습니다. 

위에서 부터 아래로 ubuntu 18.04 LTS, ubuntu 20.04 LTS, ubuntu 21.10 버전등을 설치할 수 있음을 알 수 있습니다.

만일, Ubuntu 21.10 버전을 설치한다고 하면 아래와 같은 명령으로 설치할 수 있으며, 각 항목에 대한 설명은 아래와 같습니다. 

multipass launch 21.10 -n linux -p 4 -m 2G -d 12G

launch : 설치하고 실행하라는 의미
21.10 : 설치할 image 종류
-n linux : 설치할 가상머신의 Instance 이름(name)을 정의, ubuntu에서는 호스트명으로 사용됨.
-c 4 : CPU 4 core를 사용하겠다는 의미.
-m 2G : Memory를 2GB 사용하겠다는 의미.
-d 12G : 가상머신의 디스크 공간 크기는 최대 12GB 사용하겠다는 의미.

위의 명령은 가상머신을 자신의 m1 mac에 설치할 때 한번만 해 주면 됩니다. 만일 한 개 이상의  ubuntu 인스턴스를 구축해야 한다면, -name 뒤의 인서턴스 명만 각각 다르게 정의해서 각각 launch를 해 주면 됩니다.

만일 아래와 같이 launch를 하게 되면, 기본 옵션으로 설치가 되는데, 

multipass launch -n linux

이 경우 resource는 1 cpu core, 1GB memory, 4GB disk 로 할당됩니다. 

설치를 하고 나면 가상머신이 곧바로 실행됩니다.  실행된 Ubuntu로 접속하기 위해 menu bar의 mutipass icon을 클릭한 후, 아래와 같이 실행 중인 인스턴스(아래 예에서는 ubuntu) 에서 Open Shell을 선택해 줍니다. 

Open Shell을 선택하면, 아래와 같이 Terminal 이 자동으로 실행되면서, ubuntu shell이 나타나게 됩니다. 

가상머신 shell은 Open Shell을 클릭하면 여러 개의 terminal로 개별적으로 열 수 있습니다. 
위에 보시는 바와 같이 기본 사용자명은 ubuntu 이며, password는 정의되어 있지 않습니다. 

굉장히 쉽고 간단하죠.. 설명이 길뿐 multipass설치 부터 ubuntu linux 설치까지 10분, 빠르면 5분 안에 설치할 수 있습니다. 물론, 설치된 버전은 기본형으로, gcc 나, g++ 같은 컴파일 환경을 구축하려면 별도의 패키지들을 install 해 주어야 합니다. 

다음은, Host인 mac과 폴더(디렉토리) 공유를 어떻게 할 것인가에 대해 알아 봅니다. 

가상머신 실행 여부와 관계 없이 아래와 같은 명령으로 Host가 VM간에 폴더를 공유할 수 있습니다. 

multipass mount /Users/elsa/share_linux linux:/home/ubuntu/share

위의 명령을 수행하기 전에 Host와 VM에 각각 공유할 대상 폴더를 mkdir로 생성해 줍니다. 그리고, multipass mount 멸령을 사용하여, 둘 간을 assign 해주면 되는데, 주의할 점은 위의 예 처럼 둘 다 절대경로를 사용해야 한다는 점.  그리고, macOS의 경우 계정 root에 바로 공유 폴더를 만들어 주고, VM의 경우에도 계정 밑에 만들어 주면 됩니다. 

폴더 공유가 문제없이 되었는지의 여부는 아래와 같이 info 옵션을 사용하면 확인할 수 있습니다. 

multipass info linux

host 즉, instance명은 linux, IP address가 자동으로 지정되어 있고, 버전은 Uvuntu 21.10임을 알 수 있습니다. 각각 현대 사용 중인 메모리와 디스크 용량을 확인할 수 있고, 맨 마지막에 Host와 VM간에 어떤 폴더가 서로 공유되어 있는지를 알 수 있습니다. 

이러한 설정은 한번 정의되면, 해제하거나 변경하기 전까지 Host의 전원 On/Off 여부와 관계없이 계속 유지되게 됩니다. 

만일 공유를 해제하고자 한다면, umount 옵션을 실행하면 됩니다. 

multipass umount linux

위의 명령행은 linux 가상머신에 mount된 것을 해제하라는 의미가 됩니다. 

만일, 설치한 Linux 가상머신을 제거하고 싶다면, 아래의 순서로 진행하면 됩니다. 

1. mount 된 것이 있다면 해제한다. (umount)
2. 해당 가상머신을 중지 시킨다. (stop)
3. 해당 가상머신을 삭제한다. (delete)
4. 해당 가상머신을 물리적으로 제거한다. (purge)

아래는 위의 예에서 생성한 linux 이름의 Ubuntu 가성머신을 제거하기 위한 명령 순서 입니다 .

multipass umount linux
multipass stop linux
multipass delete linux

 

아래는 위의 3 명령을 수행하는 과정에 대한 스샷 입니다. 

맨 마지막 명령에 보면, multipass list 를 실행한 것이 보이는데, list 옵션은 현재 사용자가 생성한 가상머신의 목록을 보여주는 것입니다. 보시면, linux 가상머신이 delete 되어 사용할 수 없는 상태임을 알 수 있습니다. delete는 관리 대상에서 뺀다는 의미이지 물리적인 VM 이미지를 삭제한다는 의미는 아닙니다. 따라서, delete된 가성머신은 recover 옵션을 사용하면 언제든 다시 활성화 상태로 복구할 수 있습니다. 

진정한 의미의 완전 삭제를 하려면 delete 된 상태애세 purge 옵션을 수행해야 합니다. 

multipass purge

위의 스샷은 purge  전과 그 이후의 차이를 보여 줍니다. 
delete 상태의 Linux가 purge 명령으로 완전히 삭제 되었음을 알 수 있습니다. purge 명령을 내리게 되면, 복구는 불가능 하며 필요한 경우 다시 설치를 해야 합니다. 

다음으로, 굳이 multipass ubuntu 가상머신에서 GUI 데스크탑 환경을 사용하고자 한다면, Microsoft Remote Desktop  앱을 이용하면 사용할 수 있습니다. 물론, 처리 속도 등 몇가지 닩범과 제한 사항이 있기는 하지만 가능은 합니다. 

알아보도록 하죠..
기본 ubuntu VM에는 Desktop 환경관련 요소들이 설치되어 있지 않기 때문에, 이를 설치해 줘야 합니다.  해당 가상머신 shell에서 다음의 절차로 진행 합니다. 

sudo apt update
sudo apt upgrade
sudo apt install ubuntu-desktop xrdp

3번째 명령은 ubuntu desktop와 관련된 GUI  자원들을 설치하고, 원격 데스크 탑을 지원하기 위한 xrdp를 설치하라는 명령 입니다. 

굉장히 많은 패키지들을 설치하는 것을 알 수 있습니다. 대략 디스크의 2GB 정도를 추가적으로 사용한다고 안내하고 있지요.. Yes... 설치 시간이 꽤 걸릴 겁니다. 

설치가 완료되면, ubuntu 계정에 대한 password를 생성해 줘야 합니다. 이유는 Microsoft Remote Desktop app에서 원격 연결을 만들 때, 계정 ID와 Password를 넣어 줘야 하기 때문입니다. 

패스워드 생성 시 유의 사항은 ubuntu 보안 정책상 8자리 이상의 길이를 가져야 하며, 단순한 패스워드는 허용하지 않는다는 점입니다. 

자 그럼, App Store에서 Microsoft Remote Desktop 앱을 다운로드 받습니다.  이 앱은 무료 입니다.  ^^

설치가 되었다면, 실행합니다. 

실행이 되면, 위의 스샷처럼 + 버튼을 누르고, "Add PC" 를 선택해 줍니다. 

앞서 살펴 본 바와 같이 host terminal에서 multipass info linux 로 해당 VM에 할당된 Ip address를 확인한 다음, Remote Desktop app의 PC name에 넣어 주고, 오른쪽 하단의 Add  버튼을 눌러 추가해 줍니다. 

추가가 된 것이 보이죠, 해당 Desktop을 더블 클릭하여 접속을 시도 합니다. 

경고문이 뜹니다.
Don't ask again for this PC에 Check 하고, Connect 해 줍니다. 

계정을 물어 봅니다. 계정 ID는 ubuntu, 비밀번호는 앞서 설정한 비밀번호를 넣고 Continue...

짜잔.. 원격 데스크탑을 이용하여, ubuntu GUI가 실행되는 것을 확인할 수 있습니다. 이후는 알아서 진행하시면 됩니다.

자 여기까지 해서 multipass를 이용한 Linux  설치 및 기본적인 관리 방법을 알아 봤습니다. 
보다 관심이 있으시거나 더 상세한 정보를 원하신다면, Multipass 공홈 메뉴얼을 검토 해 보시기 바랍니다. 

macOS 에서 가상머신을 이용하는 방법은 매우 다양합니다. Docker, Virtualbox, Parallels, VMware, QEMU, UTM 등등... 하지만, apple silicon 칩을 탑재한 mac에서는 가상머신을 사용하는데 아직은 제한이 많습니다.  위에 나열한 많은 솔루션 업체들이 열심히 준비는 하고 있지만, 애플이 자사의 하드웨어 정보를 공개하지 않는 이상 기존 Intel 버전 mac에서 만큼의 편의성을 제공하는데 까지는 오랜 시일이 걸릴 것 같습니다. 

누구나 알 듯이, 최강의 하드웨어를 만들었더라도.. 활용도가 떨어진다면 최고의 제품이라는 인정을 받기는 어려울 것입니다. 
진정한 최고의 컴퓨터라는 왕관을 쓰기 위해 애플이 조금만 협조를 해 주었으면 하는 바램을 가져 보며.. 긴 글을 마침니다..

공유하기 링크
Comments