
가상화 지원여부를 확인해본다.
cpu 정보에서 vmx 혹은 svm가 포함된 flags의 개수를 구해보는 것으로 알 수 있다.
가상화가 지원된다면 cpu 코어수 만큼 나올것이다.
# egrep -c '(vmx|svm)' /proc/cpuinfo
# 4
qemu kvm을 설치해본다.
qemu는 하드웨어 환경을 소프트웨어적으로 구현한 에뮬레이터이다.
에뮬레이터는 속도가 상대적으로 느리기 때문에 KVM(Kernel-based Virtual Machine)과 같이 사용된다.
KVM은 리눅스 커널을 기반으로 전가상화방식을 지원하는 하이퍼바이저이다.
# apt -y install qemu-kvm
# kvm --version
QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.24)
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
qemu를 이용하여 가상 머신을 생성해본다.
우선 OS가 설치될 디스크를 생성해본다.
# qemu-img create -f qcow2 disk.qcow2 30G
Formatting 'disk.qcow2', fmt=qcow2 size=32212254720 cluster_size=65536 lazy_refcounts=off refcount_bits=16
생성된 디스크 정보를 확인해본다.
# qemu-img info disk.qcow2
image: disk.qcow2
file format: qcow2
virtual size: 30 GiB (32212254720 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
virtio와 windows 이미지를
다운받은 후 부팅한다.
virtio(Virtual I/O)는 Guest와 Host간 성능을 향상시키기 위한 인터페이스이다.
# qemu-system-x86_64 -enable-kvm -cpu host -smp 2 -m 2G -drive file=disk.qcow2,format=qcow2 -drive file=windows.iso,media=cdrom -boot order=d -drive file=virtio-win-0.1.225.iso,media=cdrom -net user,hostfwd=tcp::3389-:3389 -net nic -vga std -vnc 0.0.0.0:0
VNC를 통해 접속해본다.

Guest OS를 설치 후 RDP를 오픈한다.
포트포워딩(hostfwd)을 설정하였기 때문에 접속할 수 있다.
# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 9491/qemu-system-x8
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 849/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 914/sshd: /usr/sbin
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 9491/qemu-system-x8
tcp6 0 0 :::22 :::* LISTEN 914/sshd: /usr/sbin
cdrom에 virtio를 넣었으니 설치해 볼 수 있다.

가상 머신의 부팅 정보가 디스크에 기록되었기 때문에 cdrom은 필요가 없어졌다.
디스크의 정보를 확인해보면 사이즈가 증가함을 알 수 있다.
# qemu-img info disk.qcow2
image: disk.qcow2
file format: qcow2
virtual size: 30 GiB (32212254720 bytes)
disk size: 10.4 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
디스크를 통해 부팅한다.
# qemu-system-x86_64 -enable-kvm -cpu host -smp 2 -m 2G -drive file=disk.qcow2,format=qcow2 -boot order=c -net user,hostfwd=tcp::3389-:3389 -net nic -vga std -vnc 0.0.0.0:0 -nodefaults