Rocky Linux 서버 위에 KVM/libvirt 기반 가상화 환경을 만들고,
그 위에 Windows VM을 생성한 뒤, VNC로 설치 화면에 접속하도록 설정을하였다
dnf install -y epel-release
EPEL 저장소 를 시스템에 추가해주는 패키지이다.
필요한 패키지가 기본 저장소에 없을 수도 있고, 패키지 설치의 범위를 넓히고,
후에 의존성 문제를 줄이기 위해서이다.
dnf install -y qemu-kvm libvirt virt-install virt-manager virt-viewer bridge-utils libguestfs-tools
가상화에 필요한 핵심 패키지인 QEMU,KVM 등을 설치한다.
QEMU,KVM에 대한 설명은 https://otopligrm.tistory.com/39여기를 참고
systemctl enable --now libvirtd
libvirtd 서비스를 지금 바로 시작하고, 부팅할때 자동으로 시작되도록 등록한다
여기서 libvirt는 가상 머신을 관리하는 표준 관리 계층이다.
virt-host-validate
서버가KVM 호스트로 정상 동작할 준비가 되었는지 검증하는 명령이다.
예를 들면 CPU가상화 지원을 확인하고(VT-x/AMD-V)
KVM모듈 상태 등 적절한 상태인지 점검을한다.
virsh net-list --all
VM이 붙을 가상 네트워크가 있는지확인하고, NAT 네트워크가 살아 있는지 확인한다.
왜냐하면 VM을 만들때 네트워크를 network = default로 붙일 예정이기 때문이다.
default network는 KVM으로 만든 VM들이 인터넷도 나가고
서로도 연결될 수 있게 해주는 기본 NAT 네트워크이다.
virsh net-autostart default
default 네트워크를 서버 부팅 시 자동으로 올라오게 설정한다.
virsh net-start default
default 네트워크를 바로 시작한다.
virt-install --name win10-vdi21 --ram 3072 --vcpus 2 --disk path=/home/kvm_num_1/win10-vdi24.qcow2,size=50 --
os-variant win10 --network network=default --graphics vnc,listen=0.0.0.0,port=5903 --cdrom
명령어 순서대로 이름은 win10-vdi21, RAM은 3GB, CPU는 2코어로 할당하고,
path=/home/kvm_num_1/win10-vdi24.qcow2 = VM의 가상 디스크 파일 위치를 지정.
qcow2는 QEMU의 디스크 포맷 중 하나이다.
그다음 다시 순서대로 가상 디스크의 용량은 50GB,
os는 윈도우 10 계열 예정이고, libvirt의 default 네트워크에 이 VM을 연결한다.
--graphics vnc,listen=0.0.0.0,port=5903 = VM의 그래픽을 VNC방식으로 제공하며,
서버의 모든 네트워크(0.0.0.0)에서 접속을 허용한다. 그리고 설정 포트는 5903
근데 이것은 모든 ip주소에서 들어오는 vnc 접속을 받겠다는 것이라서 보안상 조심해야한다.
접속 ip를 제한하거나, 방화벽 제한 등이 필요하다고 생각한다.
firewall-cmd --permanent --add-port=5903/tcp
위에서 설정한 5903 포트를 서버 방화벽에서 영구적으로 허용을한다.
VNC는 일반적으로 TCP기반이라서 TCP를 사용한다.
firewall-cmd --reload
방금 추가한 방화벽 규칙을 지금 실행하고 있는 방화벽에 다시 한번 적용을한다.
firewall-cmd --list-all
5903/TCP가 열렸는지 확인을하기 위해 현재 방화벽 설정을 보여준다.
virsh edit win10-vdi21
편집기를 열어 <boot dev='cdrom'/>을 추가해준다.
그 이유는 처음 부팅할때 ISO파일이 있는 CDROM 장치로 먼저 부팅을하기 위해서이다.
virsh destroy win10-vdi21
방금 설정을 수정하였기 때문에 수정한 설정을 적용하기 위해서 VM을 끈다.
virsh start win10-vdi21
win-vdi21을 이제 다시 시작한다
'리눅스 공부' 카테고리의 다른 글
| KVM과 QEMU (1) | 2026.04.11 |
|---|---|
| 리눅스 프로그램 설치 방법과 빌드 개념 정리 (0) | 2026.04.09 |
| systemctl과 service의 차이, 그리고 systemd까지 한 번에 이해하기 (0) | 2026.04.02 |
| Vi 편집기 주요 명령어 정리 (0) | 2026.04.01 |
| Rocky Linux의 Mirror Server에 대하여 (0) | 2026.03.31 |