macos 에서 utm 을 사용해서 ubuntu vm 을 띄우는 법을 공유하고자 한다. utm 이 그냥 vm 만드는 도구 중 ui가 깔끔해서 선택했다.
https://mac.getutm.app/ 위 링크에서 utm 을 설치한다 (app store 는 유료)
https://cloud-images.ubuntu.com/ 위 링크에서 설치하고자 하는 ubuntu version 을 선택한다.
Description에 QCow2 UEFI/GPT Bootable disk image
로 되어 있는 것 중 현재 사용중인 머신의 arch 에 맞는 image 를 다운로드 한다. (M 시리즈는 arm64 다운로드, 인텔맥은 amd64 다운로드)
utm 에서 기본적으로 cloud-init 해주는게 있어서 그런지 ubuntu 이미지만 vm 에 마운트해서 실행하면 unbuntu / ubuntu 로 로그인이 안된다.. 그래서 추가적으로 cloud-init 을 만들어서 vm 에 로그인 할 수 있게 해야한다.
brew install cdrtools
위 명령어로 cdrtools
를 설치한다.
.
├── seed.iso
├── meta-data
└── user-data
참고 디렉토리 구조
#cloud-config
users:
- name: ubuntu
sudo: ALL=(ALL) NOPASSWD:ALL
groups: users, admin
shell: /bin/bash
lock_passwd: false
passwd: "$6$rounds=4096$plaintextpw$hashedpw"
chpasswd:
list: |
ubuntu:ubuntu
expire: False
ssh_pwauth: True
runcmd:
- echo "cloud-init 완료!"
meta-data 는 내용이 없어도 괜찮다.
mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-data
cloud-init 을 위해 seed.iso를 생성한다.
이제 준비는 다 끝났다. vm을 생성해보자.
생성하고자 하는 vm 이미지의 arch 타입이 host 와 같은 경우에는 virtualize 로 선택한다.
other 를 선택한다
없음으로 하고 continue 한다.
뒷 부분 설정은 다 continue 해도 상관없다.
이제 메인화면에 생성된 vm 항목이 보일 것이다.
생성된 vm 목록에서 우클릭하여 edit 창을 띄운다.
여기서 이제 할 일은 Devices 쪽에서 디스플레이와 소리 삭제하고 Serial 을 추가한다.
드라이브에는 기본으로 생성된 VirtIO Drive 를 삭제하고 ubuntu.iso 이미지와 seed.iso 이미지를 마운트 해줘야 한다.
seed.iso 의 경우에는 이미지 종류를 CD/DVD (ISO) image
타입으로 바꿔주자.
위 이미지를 참고하면 된다.
정상적으로 접속 되는 것을 볼 수 있다.
utm은 생성한 vm을 clone
이나 New from template
하면 network의 mac address를 동일하게 가져온다.
그래서 반드시 clone 시 edit 창에 1회 접속하여 mac address를 다시 받아오도록 해줘야 한다.
절대 실행하지 않는 vm을 하나 만들어두고 그 vm을 계속 clone하면 네트워크 이슈 없이 여러개 만들 수 있다. 단 mac address를 다시 받아오는 작업은 해줘야한다.