Qumu ovmf
Linux QEMU, QEMU Guest Agent, OVMF, swtpm 정보
QEMU(큐에무)는 오픈 소스 머신 에뮬레이터(Emulator) 및 가상화 도구(Virtualizer)입니다. 다양한 CPU 아키텍처의 코드를 다른 아키텍처에서 실행하거나, 하드웨어를 가상화하여 게스트 운영체제를 실행할 수 있도록 해줍니다.
특히 Linux 환경에서는 Kernel-based Virtual Machine (KVM)과 함께 사용될 때 강력한 가상화 솔루션이 됩니다. QEMU가 하드웨어 에뮬레이션 및 장치 모델링을 담당하고, KVM은 CPU 및 메모리 가상화를 위한 커널 모듈을 제공하여 거의 네이티브에 가까운 성능으로 가상 머신(VM)을 실행할 수 있게 합니다.
QEMU의 주요 동작 모드 및 특징
- 전체 시스템 에뮬레이션: 다른 아키텍처 OS 실행.
- 사용자 모드 에뮬레이션: 다른 아키텍처 단일 프로세스 실행.
- 하드웨어 가상화 (KVM 연동): 고성능 VM 실행 (동일 아키텍처).
- 다양한 아키텍처, 가상 장치, 디스크 형식, 네트워킹 지원.
Linux에 QEMU 설치
패키지 관리자로 qemu-system-x86
, qemu-kvm
등을 설치합니다.
# Debian/Ubuntu 계열
sudo apt install qemu-system-x86 qemu-kvm
# RHEL/CentOS/AlmaLinux/Rocky Linux 계열
sudo yum install qemu-kvm qemu-img
QEMU 기본 사용 방법 (명령줄 중심)
- 가상 디스크 생성:
qemu-img create -f qcow2 my_virtual_disk.qcow2 20G
- VM 실행 (ISO 설치 또는 설치된 디스크):
qemu-system-x86_64 -enable-kvm -m 2048 -hda my_virtual_disk.qcow2 -cdrom /path/to/os.iso -boot d ...
GUI 도구 및 관리 툴
virt-manager
, libvirt
, virsh
등을 사용하면 QEMU/KVM VM 관리가 편리해집니다.
QEMU Guest Agent (qemu-ga)
QEMU Guest Agent (qemu-ga
)는 QEMU 가상 머신 **내부** (게스트 OS)에서 실행되는 서비스입니다. 호스트 또는 관리 도구(libvirt 등)와 게스트 OS 간의 통신 채널을 제공하여 게스트 내부 정보를 얻거나 특정 작업을 지시할 수 있게 합니다.
- **주요 기능:** 파일 시스템 일관성 스냅샷, 클린 종료/재부팅, 게스트 정보 획득(IP 등), 게스트 내 명령 실행.
- **설치:** **게스트 OS 내부**에서
qemu-guest-agent
패키지를 설치합니다. - **사용:** 호스트에서
virsh qemu-agent-command ...
또는 QEMU 명령줄 유틸리티를 통해 사용합니다.
추가 구성 요소: OVMF 및 swtpm
최신 운영체제를 사용하거나 보안 기능을 활성화하기 위해 QEMU VM 설정 시 추가적으로 사용되는 중요한 컴포넌트들입니다.
1. OVMF (Open Virtual Machine Firmware)
-
무엇인가:
가상 머신을 위한 오픈 소스 UEFI 펌웨어 구현체입니다. 전통적인 BIOS 펌웨어를 대체합니다. -
왜 사용하는가:
Windows 10/11의 보안 부팅(Secure Boot), BitLocker와 같은 최신 OS 기능들은 UEFI 펌웨어를 필요로 합니다. OVMF를 사용하면 QEMU VM에서 이러한 기능들을 활성화할 수 있습니다. 또한, BIOS에 비해 더 빠른 부팅 시간을 제공하기도 합니다. -
설치:
호스트 시스템에 OVMF 패키지를 설치합니다.# Debian/Ubuntu 계열 sudo apt install ovmf # RHEL/CentOS/AlmaLinux/Rocky Linux 계열 sudo yum install edk2-ovmf # 또는 dnf 사용 시 # sudo dnf install edk2-ovmf
-
사용:
QEMU 명령줄에서-bios /usr/share/OVMF/OVMF_CODE.fd
(경로는 설치에 따라 다를 수 있음) 옵션을 사용하거나, libvirt VM 설정 XML에서<os><loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>...</os>
와 같이 설정합니다. 게스트 OS의 NVRAM 상태를 저장할 파일도 함께 지정해야 합니다.
2. swtpm (Software TPM)
-
무엇인가:
TPM(Trusted Platform Module) 칩의 기능을 소프트웨어로 구현한 것입니다. TPM은 암호화 키 저장, 플랫폼 무결성 검증 등의 하드웨어 기반 보안 기능을 제공하는 보안 프로세서입니다. -
왜 사용하는가:
가상 머신에 물리적인 TPM 칩 없이 TPM 기능을 제공하기 위해 사용됩니다. Windows의 BitLocker 드라이브 암호화, 보안 부팅(Secure Boot) 관련 기능 등 TPM을 요구하는 게스트 OS 기능을 VM에서 사용 가능하게 합니다. -
설치:
호스트 시스템에 swtpm 패키지를 설치합니다.# Debian/Ubuntu 계열 sudo apt install swtpm swtpm-tools # RHEL/CentOS/AlmaLinux/Rocky Linux 계열 sudo yum install swtpm swtpm-tools # 또는 dnf 사용 시 # sudo dnf install swtpm swtpm-tools
-
사용:
QEMU 실행 시 가상 TPM 장치를 연결하는 옵션을 사용하거나, libvirt VM 설정 XML에<tpm model='tpm-tis'><backend type='swtpm'/></tpm>
와 같이 TPM 장치 및 swtpm 백엔드를 정의합니다.
OVMF, swtpm, QEMU/VM 간의 관계
OVMF와 swtpm은 QEMU가 실행하는 가상 머신에 추가적인 하드웨어 기능(UEFI 펌웨어 및 가상 TPM)을 제공하는 컴포넌트입니다.
- QEMU는 VM의 가상 하드웨어를 에뮬레이션하고 게스트 코드를 실행하는 주체입니다.
- VM이 부팅될 때, QEMU는 전통적인 BIOS 대신 **OVMF** 펌웨어 코드를 로드하여 실행할 수 있습니다.
- OVMF(UEFI 펌웨어)는 부팅 과정에서 **swtpm**이 제공하는 가상 TPM 장치와 상호 작용하여 플랫폼 상태를 확인하거나 암호화 키를 활용할 수 있습니다.
- 게스트 운영체제(예: Windows)가 부팅되면, 이 OS는 VM에 연결된 가상 TPM 장치(swtpm이 제공)를 인식하고 BitLocker와 같은 TPM 기반 보안 기능을 활성화할 수 있습니다.
즉, QEMU는 가상 하드웨어 플랫폼을 제공하고, OVMF는 이 플랫폼의 펌웨어(BIOS/UEFI) 역할을 하며, swtpm은 이 플랫폼에 가상 TPM 칩을 추가하여 최신 OS 기능 및 보안 요구사항을 충족시키는 데 기여합니다. qemu-ga
는 OS가 부팅된 후에 호스트와 게스트 간의 상호 작용을 담당하는 별개의 레이어입니다.