리눅스 커널 내부구조 부록 #A, Xen 가상화 사용법 (Ubuntu, Windows 10 설치)

 앞 장의 글을 읽고 설치를 따라했다면 grub 부트로더가 Xen 으로 부팅을 잡아준다. 위와 같은 화면이 나오면 부트로더가 제대로 Xen 을 잡아줬다는 뜻이다. 필자는 맨 위의 Fedora, with Xen 4.15.2 and Linux 5.16.16-200.fc35.x86_64 로 부팅했다.

1. 명령어 테스트

컴퓨터가 실행되면 터미널에 아래의 명령어를 입력하여 Xen 이 제대로 실행되는지 확인한다:

sudo xl info
sudo xl list

 마지막에 xl list 명령어 입력 시 Domain-0 가 출력 되었다면 성공이다.

2. 가상 머신에 사용할 하드 디스크 생성

Ubuntu 20.04.4 LTSWindows 10 (64-bit)System requirement 를 확인하고 이를 만족하는 하드디스크를 생성한다:

- Ubuntu 20.04.4 LTS System requirements

- Windows 10 (64-bit) System requirements


 아래의 명령어를 입력하여 가상 머신을 위한 하드디스크를 생성한다:

# Ubuntu 용
sudo dd if=/dev/zero of=./disk1 bs=1GiB count=32

# Windows 용
sudo dd if=/dev/zero of=./disk2 bs=1GiB count=32

 위 명령어를 실행하게 되면 32 GiB 의 크기를 가지는 파일 두 개가 생성된다.

3. 운영체제 설치를 위한 이미지 파일 다운로드

 필자는 Fedora XenUbuntu 20.04.4 LTSWindows 10 (64-bit) 설치해보려 한다. 공식 홈페이지에서 Ubuntu 20.04.4 LTS 이미지 파일을 다운로드 받았다. Windows 10iso 파일 역시 공식 홈페이지에서 다운로드 받았다.

4. 가상 머신 설정 파일 작성

 가상머신이 어떤 이미지 파일을 사용하는지, 어떤 하드디스크를 쓰는지, 네트워크 장치는 무엇인지, CPU 의 개수는 얼마나 되는지와 같은 세부 사항을 Xen 에게 고지해야 한다. 이를 알릴 설정파일을 작성하려 한다. 더 자세한 사항은 manpage 를 참조하길 바란다.

 아래는 필자가 작성한 설정 파일이다:

- Ubuntu-20.04.4_LTS.cfg

name = 'Ubuntu 20.04.4 LTS'

vif = [ 'mac=aa:00:00:50:02:f0, bridge=virbr0' ]
disk = [ 'file:/home/mythos/virtual_machine/disks/disk1,hda,w', 'file:/home/mythos/virtual_machine/images/ubuntu-20.04.4-desktop-amd64.iso,hdc:cdrom,r' ]
boot = 'dca'

kernel = '/usr/lib/xen/boot/hvmloader'
device_model = '/usr/lib64/xen/bin/qemu-dm'
builder = 'hvm'

memory = 4096
vcpus = 4
acpi = 1
apic = 1
vnc = 1
vncconsole = 1
sdl = 1
stdvga = 1
serial = 'pty'

on_poweroff = 'destroy'
on_reboot   = 'destroy'
on_crash    = 'destroy'

- `Windows10_64bit.cfg

name = 'Windows 10 (64-bit)'

vif = [ 'mac=aa:00:00:50:02:f0, bridge=virbr0' ]
disk = [ 'file:/home/mythos/virtual_machine/disks/disk2,hda,w', 'file:/home/mythos/Win11_Korean_x64v1.iso,hdc:cdrom,r' ]
boot = 'dca'

kernel = '/usr/lib/xen/boot/hvmloader'
device_model = '/usr/lib64/xen/bin/qemu-dm'
builder = 'hvm'

memory = 4096
vcpus = 4
acpi = 1
apic = 1
vnc = 1
vncconsole = 1
sdl = 1
stdvga = 1
serial = 'pty'

on_poweroff = 'destroy'
on_reboot   = 'destroy'
on_crash    = 'destroy'

 가상머신의 이름과 iso 이미지 파일의 경로, 그리고 선택한 하드디스크 파일만 제외하고 모두 똑같다.

5. 가상 머신 실행하기

 필자는 가상머신 동작을 위해 다음과 같이 디렉터리를 구성했다:

 같은 공간에 몰아 넣어도 되고 위와 같이 분리해서 관리해도 된다.

sudo xl create confs/ubuntu.cfg

이제 아래의 명령어를 입력하여 Ubuntu 를 실행한다. 정상적으로 실행됐다면 vncviewer 에 붙여서 실행 결과를 확인한다:

sudo xl vncviewer "<가상머신명>"

6. Guest OS 설치 과정