사실상 명령어 몇 번 입력하면 끝나는지라, 윈도우에서 VMWare로 이것저것 하는 것보다 오히려 더 간단해요. .iso 파일도 필요하지 않아요.

macOS-Simple-KVM, OSX-KVM, OneClick-macOS-Simple-KVM 등 날로먹게 해주는 프로젝트가 3가지나 있어요.

 

사실 이 글을 읽으실 필요는 없고, 해당 레포에 들어가서 거기에 적힌 설명을 따라셔도 크게 상관은 없어요.

 

macOS-Simple-KVM

 - 카날리나까지만 지원하는 것으로 추정

 - https://github.com/foxlet/macOS-Simple-KVM

 

GitHub - foxlet/macOS-Simple-KVM: Tools to set up a quick macOS VM in QEMU, accelerated by KVM.

Tools to set up a quick macOS VM in QEMU, accelerated by KVM. - foxlet/macOS-Simple-KVM

github.com

 

OSX-KVM

 - 게시글 작성 시점 기준 최신버전까지 지원

 - https://github.com/kholia/OSX-KVM

 

GitHub - kholia/OSX-KVM: Run macOS on QEMU/KVM. With OpenCore + Monterey + Ventura + Sonoma support now! Only commercial (paid)

Run macOS on QEMU/KVM. With OpenCore + Monterey + Ventura + Sonoma support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required. - kholia/OSX-KVM

github.com

 

OneClick-macOS-Simple-KVM

 - 게시글 작성 시점 기준 최신버전까지 지원

 - https://github.com/foxlet/macOS-Simple-KVM

 

GitHub - foxlet/macOS-Simple-KVM: Tools to set up a quick macOS VM in QEMU, accelerated by KVM.

Tools to set up a quick macOS VM in QEMU, accelerated by KVM. - foxlet/macOS-Simple-KVM

github.com

 

 

이 글에서는 OneClick-macOS-Simple-KVM를 사용할거예요.

 

왜 최신버전 놔두고 하필 몬터레이를 설치하는가?

벤투라 : 사파리로 웹사이트 접속시 홈페이지가 정상적으로 표시되지 않음

소노마 이상 : 바탕화면 증발

 

vram 이슈로 추정되지만, 제가 시도해본 모든 수단은 vram 용량을 늘리지 못했어요. 오히려 줄어들게 만든 적만 한 번 있어요.

윈도우에서 VMWare에 macOS를 설치한 경우도 동일한 현상 발생


가상머신 준비

qemu 등 이것저것 필요한 것을들 설치해주세요.

# 데비안 계열 예시 (우분투, 리눅스민트, 하모니카, 칼리리눅스 등)
$ sudo apt-get install qemu-system qemu-utils python3 python3-pip

# 아치리눅스 계열 예시 (만자로, 엔데버 등)
$ sudo pacman -S qemu-full python python-pip python-wheel

 

 

다음 명령어 입력.

깃허브 저장소 복제, macOS 설치에 필요한 파일 다운로드, macOS를 설치할 가상 디스크 생성

$ git clone https://github.com/notAperson535/OneClick-macOS-Simple-KVM.git
$ cd OneClick-macOS-Simple-KVM
$ ./fetch-macOS-v2.py
 # 원하는 버전 선택 후 엔터
$ qemu-img convert BaseSystem.dmg -O raw BaseSystem.img
$ qemu-img create -f qcow2 macOS.qcow2 용량G

 

 

전 폴더 경로를 끝까지 입력하기 귀찮아서 *를 사용했고, 몬터레이를 골랐으며,

 

가상 디스크 용량은 128GiB로 했어요.

 

가상머신 부팅 및 macOS 설치 준비

다음 명령어를 통해 가상머신을 부팅해주세요.

$ ./basic.sh

 

 

전체화면 단축키는 "Ctrl + Alt + F"에요.

"Ctrl + Alt + G" 단축키를 통해 마우스/키보드 입력을 게스트(가상머신 내부)으로 받을지 호스트(가상머신 외부)로 받을지도 왔다갔다 할 수 있어요. 근데, Windows키 입력은 무조건 호스트로 갈거예요.

이 화면은 OpenCore라는 해킨토시 부트로더에요. 방향키로 부트 메뉴 선택이 가능하고, 탭을 누르면 시스템 종료 쪽으로 커서를 옮길 수 있어요.
"macOS Base System" 선택 후 엔터

 

 

Disk Utility 더블클릭 또는 클릭 후 Continue 클릭

 

 

아까 위에서 생성했던 가상 디스크를 골라서 포멧시켜야 해요.

 


저는 128GiB 짜리로 생성했고 128GiB는 약 137.44GB이니 이 디스크가 아까 생성한 가상 디스크 같아요.

 

 

Gi는 1024로 나눈 이진 접두어이고, G는 1000으로 나눈 십진 접두어고, 128에 1024를 3번 곱해서 바이트 단위로 만들고, 다시 1000으로 3번 나누면 약 137.44 정도가 나와요.

 

 

아무튼 해당 디스크에 마우스 오른쪽 클릭 후 Erase 클릭

 

 

이름은 적절히 입력한 뒤에 Erase 클릭

 

 

포멧이 끝났으니 Done 클릭 후

 

 

Disk Utility 종료. 그냥 왼쪽 위에 있는 빨간색 버튼이 닫기 버튼이니 그거 눌러도 돼요.

 

qemu에 macOS 설치 시작

"Reinstall macOS Monterey 항목"을 "더블클릭" 또는 "클릭 후 Continue 클릭"

 

 

Continue 클릭

 

 

약관 동의해주시고,

 

 

방금 생성 및 포멧시킨 디스크 선택 후 Continue

 

 

그러면 설치가 시작되는데, 약 2시간 19분이나 걸린다고 하네요. 근데, 3분 정도 지났는데, 약 1시간 30분으로 바뀌었어요.

3분은 30을 잘못 적은 것이 아니에요. 진짜로 3분 만에 줄어들었어요. 역시 맥OS 설치할 때 뜨는 시간은 믿으면 안돼요.

 

 

25분 정도 지났는데, 재부팅되면서 이런 화면이 나왔어요.

 

 

해상도가 개판이 된 것은 전체화면 단축키 "Ctrl + Alt + F"를 두 번 눌러주면 정상화돼요.

새로 생긴 "macOS Installer"를 선택해주세요.

 

 

그러면 맥이 켜지는 듯 싶더니

 

 

또 이런 화면이 나올텐데, 그러면 또 "macOS Installer"를 선택해주세요.

 

 

언제부턴가  "macOS Installer"가 "macOS 어쩌고"로 바뀔텐데, 그거 계속 선택하면 돼요. 선택하고 기다리고 선택하고 기다리고 몇 변 반복

 

macOS 설치 완료 및 초기 설정

그러다가 보면 이제 이런 화면이 나와요. 1시간 정도 걸린 듯

 

 

대한민국 선택 후 Continue 클릭. 여기서는 South Korea로 되어있어요.

 

 

Continue 클릭

 

 

해당사항 없으면 Continue 클릭

 

 

Continue 클릭

 

 

해당사항 없으면 Not Now 클릭

 

 

Set Up Later, Skip 클릭

 

 

약관도 동의해주세요

 

 

 

컴퓨터에서 사용할 로컬 계정을 생성해주세요.

 

 

한/영 전환은 Caps Lock 키를 누르면 될텐데, 만약 안된다면 오른쪽 위에 있는 저 부분을 마우스로 눌러서 전환하면 돼요.

 

 

타임존은 적당히 우리나라로 설정. 전 분명 서울을 클릭했는데 부산으로 눌렸네요.

 

 

이건 뭔가 해킨토시 사용한다고 자수하는 것 같으니 공유 안함 선택

 

 

Set Up Later 클릭

 

 

여기서 테마 바꾸면 렉 심하게 걸리니 전 일단 Continue 클릭해서 넘겼어요. 어차피 설정 들어가서 번경 가능.

 

 

조금 기다리면 이렇게 macOS가 나오는데, 저기서 Continue를 누르고 누르라는 키를 누르면

 

 

이런식으로 알아서 키보드 종류를 찾아줘요.

 

 

아무튼 리눅스에서 가상머신에 맥OS 설치 완료. KVM을 활성화시킨 qemu에 macOS를 설치한거예요.

 

 

아까 위애서 실행시켰던 basic.sh 파일을 보면 -enable-kvm이라고 써있는 문구를 볼 수 있을텐데, 저게 KVM 쓰겠다는 의미에요.

 

 

아무튼 이제 ./start.sh 명령어 등을 통해 macOS가 설치된 가상머신을 킬 수 있어요.

-m 4G는 RAM 용량을 4GB로 하겠다는 것을 의미하니, RAM 용량을 더 늘리거나 줄이고 싶으시다면 저 부분을 수정하시면 돼요.

그냥 기본제공 프로그램 종류가 무엇이냐 정도의 차이일 뿐, 무엇이 더 좋다거나 같은 우열은 없어요.

어느 리눅스를 선택하든 그냥 본인이 필요한 프로그램 깔아서 쓰면 돼요. 해킹 특화 리눅스일 필요도 없어요.


칼리 리눅스 (Kali Linux)

데비안을 기반으로 만들어진 가장 유명한 모의 침투 테스트용 리눅스 배포판이에요.

기본 테스크톱 환경으로 xfce를 지원해요.

 

 

리눅스가 뭔지도 모르면서 칼리리눅스만 알고 있는 하찮고 미개한 툴키디들도 많아요.

가상머신이 무엇인지도 몰라서, 가상머신 안에 설치해둔 칼리리눅스를 그냥 윈도우에서 실행 가능한 프로그램이라고 착각해요.

 

 

칼리리눅스는 백트랙의 후속작인데, 백트랙은 요즘에 나오는 컴퓨터에서 작동하지 않으니 그냥 칼리리눅스 쓰세요.

방어 특화 버전인 칼리 퍼플이라는 것도 있어요.

 

다운로드 : https://www.kali.org/get-kali/

 

Get Kali | Kali Linux

Home of Kali Linux, an Advanced Penetration Testing Linux distribution used for Penetration Testing, Ethical Hacking and network security assessments.

www.kali.org

 

블랙아치 리눅스 (BlackArch Linux)

아치리눅스를 기반으로 만들어진 사이버 보안 및 해킹에 초점을 맞춘 리눅스 배포판이에요.

slim 버전과 full 버전이 있어요. 아래 사진은 데스크톱 환경으로 xfce를 사용하는 slim 버전의 모습

 

이건 full 버전의 모습. 창 관리자로 fluxbox를 사용해요. fluxbox 말고 다른 창 관리자도 지원하지만, 생긴 모습은 그게 그거에요.

 

 

아무것도 없는 것처럼 생겼지만, 바탕화면에 마우스 오른쪽 클릭을 하면 메뉴가 나와요.

 

홈페이지에 2800개가 넘는 해킹툴을 지원한다는 소개 문구가 있는데,

 

하위메뉴에 저런식으로 한 가득 들어있는 경우가 많은 것을 보면, 진짜인 것 같아요.

 

다운로드 : https://blackarch.org/downloads.html

 

Download BlackArch

Here you will find official BlackArch Linux downloads and installation instructions. ISOs The following list contains official BlackArch full, slim and netinstall ISO images. You can burn these images to DVDs and flashdrives. The full ISO contains a comple

blackarch.org

 

패럿 OS (Parrot OS)

데비안을 기반으로 하는 보안과 프로그래밍에 중심을 둔 리눅스 배포판이에요.

 

기본 테스크톱 환경으로 MATE를 지원해요. 여기서 MATE는 "마테"라고 읽어요. 마테나무에서 따온 명칭

 

프로그래밍 목적도 있어서 그런지, 일단 프로그래밍이라는 메뉴도 보이긴 해요.

 

다운로드 : https://parrotsec.org/download/

 

Parrot Security

This website is a safe place, we respect your privacy enough to skip the cookies and go straight to the content. Accept

parrotsec.org

 

페도라 보안 랩 (Fedora Security Lab)

보안 감사, 시스템 복구 등과 관련된 교육을 수행할 수 있는 안전한 테스트 환경을 제공하는 리눅스 배포판이에요.

 

 

GNOME을 사용하는 패도라 워크스테이션과는 달리, 기본 테스크톱 환경으로 xfce를 사용해요.

 

 

페도라 스핀이라는 이름으로 여러가지 페도라 배포판들이 있는데 그것들 중 하나에요.

 

다운로드 : https://fedoraproject.org/labs/security

 

Fedora Security Lab

The Fedora Security Lab provides a safe test environment to work on security auditing, forensics, system rescue and teaching security testing methodologies in universities and other organizations. The spin is maintained by a community of security testers a

fedoraproject.org

 

펜투 리눅스 (Pentoo Linux)

젠투 리눅스를 기반으로 만들어진 시스텝 보안 점검 및 취약점 분석을 위해 만들어진 리눅스 배포판이에요.

 

 

젠투는 어쩐지 모르겠지만, 펜투는 기본 테스크톱 환경으로 xfce를 지원해요.

최초 실행시 위와 같은 화면이 나오고, 계정 이름이 pentoo라는 것을 알려준 뒤에 라이브 부팅 도중에 사용할 비밀번호를 입력하라고 해요.

그 뒤에 X를 시작할거냐고 물어볼텐데, 실행하겠다고 하면 이런식으로 GUI 환경이 나올거에요.

 

이것저것 아무거나 실행해본 모습

 

 

펜투 리눅스가 기반으로 하는 젠투 리눅스의 경우, 완성된 프로그램을 받아서 설치하는 것이 아닌, 소스코드를 받아서 기계어로 번역해서 설치하는 방법을 사용해요.

리눅스도 프로그램이니, 리눅스 그 자체도 소스코드로 받아서 기계어로 번역하는 방식으로 설치되는데, 펜투 리눅스는 다른 리눅스들처럼 평범하게 설치 가능한 듯.

 

다운로드 : https://www.pentoo.ch/downloads

 

Pentoo

Pentoo is a Live CD and Live USB designed for penetration testing and security assessment. Based off Gentoo Linux, Pentoo is provided both as 32 and 64 bit installable livecd.

www.pentoo.ch

 

어차피 펜투 사용할 뵨태들은 저보다 더 잘 알겠지만, 파일 이름에 core가 들어간 .iso 파일들은 GUI 환경이 나오지 않고 startx 명령어도 작동하지 않으니 참고하세요.


라이브 부팅 중 계정 이름과 비밀번호

  계정 이름 비밀번호
Kali Linux kali kali
BlackArch Linux (slim) liveuser blackarch
BlackArch Linux (full) root blackarch
Parrot OS user parrot
Fedora Security Lab liveuser, root 없음
Pentoo Linux pentoo 라이브 부팅 시점에 사용자가 직접 설정

 


grub에서 SSD에 넣어둔 .iso 파일을 바로 부팅하는 법

예전에는 칼리리눅스도 깔아놓고 막 어둡게 커스터마이징하고 그랬는데, 어차피 쓰지도 않고 용량만 차지해서 지워버린 상태에요.

완전히 없애버리기는 뭔가 아쉬워서 SSD에 .iso 파일을 넣어두고, 이미 깔려있는 grub에서 라이브 부팅이 바로 가능하도록 설정했어요.

 

글을 올리는 김에 이 글에서 소개한 리눅스 5가지를 grub에 넣는 것을 살짝 다루어볼까 해요.

참고로, grub는 리눅스 등에서 사용하는 부트로더에요.

 

일단 전 최상위경로 바로 아래에 liveiso라는 폴더를 만들고, 그 안에 .iso 파일들을 넣어두었어요.

윈도우 파티션에 넣어두어도 상관은 없지만, 파일 시스템이 NTFS라서 정상적으로 부팅되지 않을 수도 있어요.

 

 

그리고 /etc/grub.d/ 폴더에 있는 40_custom 파일을 수정하면, grub에 보여질 목록을 편집할 수 있어요.

 

 

일단 저는 다 적어놓았으니, 필요한 부분만 뽑아가서 사용하세요.

 

 

40_custom 파일 내용. 배포판마다 적어야 할 내용이 조금씩 다르거나 아예 달라요.

위에서 찍은 리눅스 스크린샷들은 전부 grub에서 바로 .iso 파일을 라이브 부팅하는 것을 성공한 뒤에 찍은 것들이에요.

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Kali Linux 2025.2" {
    insmod ext2
    set isofile="/liveiso/kali-linux-2025.2-live-amd64.iso"
    loopback loop (hd0,gpt4)$isofile
    linux (loop)/live/vmlinuz boot=live findiso=$isofile
    initrd (loop)/live/initrd.img
}
menuentry "BlackArch Linux slim" {
    insmod ext2
    set isofile="/liveiso/blackarch-linux-slim-2023.05.01-x86_64.iso"
    loopback loop (hd0,gpt4)$isofile
    linux (loop)/blackarch/boot/x86_64/vmlinuz-linux archisolabel=BLACKARCH_20305 img_dev=/dev/nvme0n1p4 img_loop=$isofile earlymodules=loop archisobasedir=blackarch
    initrd (loop)/blackarch/boot/x86_64/initramfs-linux.img
}
menuentry "BlackArch Linux full" {
    insmod ext2
    set isofile="/liveiso/blackarch-linux-full-2023.04.01-x86_64.iso"
    loopback loop (hd0,gpt4)$isofile
    linux (loop)/blackarch/boot/x86_64/vmlinuz-linux archisolabel=BLACKARCH_20304 img_dev=/dev/nvme0n1p4 img_loop=$isofile earlymodules=loop archisobasedir=blackarch
    initrd (loop)/blackarch/boot/x86_64/initramfs-linux.img
}
menuentry "Parrot Security 6.4" {
    insmod ext2
    set isofile="/liveiso/Parrot-security-6.4_amd64.iso"
    loopback loop (hd0,gpt4)$isofile
    linux (loop)/live/vmlinuz boot=live findiso=$isofile
    initrd (loop)/live/initrd.img
}
menuentry "Fedora Security 42-1.1" {
    insmod ext2
    set isofile="/liveiso/Fedora-Security-Live-x86_64-42-1.1.iso"
    loopback loop (hd0,gpt4)$isofile
    linux (loop)/images/pxeboot/vmlinuz root=live:CDLABEL=Fedora-Sec-Live-42-1-1 rd.live.image verbose iso-scan/filename=$isofile
    initrd (loop)/images/pxeboot/initrd.img
}
menuentry "Pentoo 2024" {
    set isofile="/liveiso/pentoo-x86-hardened-2024.0_p20240111.iso"
    loopback loop (hd0,gpt4)$isofile
    linux (loop)/boot/pentoo init=/linuxrc nogui nox nodhcp secureconsole overlayfs max_loop=256 dokeymap video=uvesafb:mtrr:3,ywrap,1024x768-16 console=tty0 net.ifnames=0 scsi_mod.use_blk_mq=1 ipv6.autoconf=0 usbcore.usbfs_memory_mb=0 looptype=squashfs loop=/image.squashfs cdroot isoboot=$isofile
    initrd (loop)/boot/pentoo.igz
}

 

 

set isofile="/liveiso/어쩌고저쩌고.iso" 부분은 .iso 파일이 있는 위치에요.

 

(hd0,gpt4) 부분은 파티션이에요. (디스크,파티션)

중간에 /dev/nvme0n1p4 같은 방식으로 적어야 하는 경우도 있어요

 

archisolabel=BLACKARCH_20305 와 같이 .iso 파일을 마운트하면 보이는 이름을 적어야하는 경우도 있어요.

윈도우에서 마운트하면 보이는 내용을 적으면 돼요.

 

root=live:CDLABEL=Fedora-Sec-Live-42-1-1 같이 파일명을 한 글자만 다르게 수정해서 적어야 하는 경우도 있어요.

 

사실 .iso 파일 안에 있는 grub.cfg 파일 같은 것을 찾아서 그 안에 적힌 내용을 컨닝하면 해결

적당히 파일 경로와 파티션 위치 등을 적어놓으면 대부분 다 잘 작동해요.

 

menuentry "Kali Linux 2025.2" --class kali {

와 같이 뒤에 --class 어쩌고를 적으면, 테마가 적용된 grub에서 그에 맞는 아이콘이 나올거에요.

 

아무튼 "sudo update-grub"나 "sudo grub-mkconfig -o /boot/grub/grub.cfg" 같은 명령어를 통해 수정한 내용을 grub에 반영시킨 뒤에 재부팅하면 이런식으로 아래에 추가된 것을 볼 수 있을거에요.

 

 

40_custom에서 앞에 40이 실행 순서이니, 파일 이름에 적힌 숫자를 바꾸면 다른 위치에 추가시킬 수도 있어요.

하위메뉴를 만들고 그 안에 넣는 방법도 있으니 원한다면 한 번 찾아보세요.

 

저런식으로 메뉴에 추가해놓는다는 뜻은 "내 컴퓨터를 사용하는 모든 사람에게 루트 권한을 주는 것"과 다를 바 없어요.

누구나 라이브 부팅을 통해 루트 계정으로 로그인 가능한 리눅스를 부팅할 수 있기 때문.

그러니 능력것 막아보세요. 저는 grub 자체에 비밀번호를 걸어두고, 설치된 운영체제를 부팅하는 경우만 예외로 빼두었어요.

+ Recent posts