Hyper-V์—์„œ Arch Linux ๊ฒŒ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ณ ๊ธ‰ ์„ธ์…˜ ๋ชจ๋“œ ํ™œ์„ฑํ™”

Hyper-V์—์„œ Arch Linux ๊ฒŒ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ณ ๊ธ‰ ์„ธ์…˜ ๋ชจ๋“œ ํ™œ์„ฑํ™”

Hyper-V์—์„œ ์ฆ‰์‹œ Linux ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ฒŒ์ŠคํŠธ Windows ๋จธ์‹ ๋ณด๋‹ค ๋‹ค์†Œ ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” Hyper-V๊ฐ€ ์›๋ž˜ ๋ฐ์Šคํฌํ†ฑ์šฉ์ด ์•„๋‹ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๊ฐ€์„œ ๊ฒŒ์ŠคํŠธ ์ถ”๊ฐ€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ทธ๋ž˜ํ”ฝ ๊ฐ€์†, ํด๋ฆฝ๋ณด๋“œ, ๊ณต์œ  ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ ๊ธฐํƒ€ ์‚ถ์˜ ์ฆ๊ฑฐ์›€์„ VirtualBox์—์„œ ์–ป์„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

Hyper-V ์ž์ฒด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ํ†ตํ•ฉ ์„œ๋น„์Šค - ๋”ฐ๋ผ์„œ ๊ฒŒ์ŠคํŠธ๋Š” ํ˜ธ์ŠคํŠธ์˜ VSS(์„€๋„ ๋ณต์‚ฌ๋ณธ ์„œ๋น„์Šค)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฒŒ์ŠคํŠธ๋Š” ์ข…๋ฃŒ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฒŒ์ŠคํŠธ๋Š” ๊ฐ€์ƒํ™” ํ˜ธ์ŠคํŠธ์™€ ์‹œ์Šคํ…œ ์‹œ๊ฐ„์„ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๊ณ , ํ˜ธ์ŠคํŠธ์—์„œ ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ํŒŒ์ผ์„ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(Copy-VMFile PowerShell์—์„œ). ๋ฌผ๋ก  Windows๋ฅผ ํฌํ•จํ•œ ์ผ๋ถ€ ๊ฒŒ์ŠคํŠธ ์šด์˜ ์ฒด์ œ์˜ ๊ฒฝ์šฐ Virtual Machine Connection ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(vmconnect.exe) RDP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ž‘๋™ํ•˜๋Š” ํ–ฅ์ƒ๋œ ์„ธ์…˜ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋””์Šคํฌ ์žฅ์น˜ ๋ฐ ํ”„๋ฆฐํ„ฐ๋ฅผ ๊ฐ€์ƒ ๋จธ์‹ ์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  ๊ณต์œ  ํด๋ฆฝ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ๊ธ‰ ์„ธ์…˜ ๋ชจ๋“œ๋Š” ์„ค์น˜ ์งํ›„ Hyper-V์˜ Windows์—์„œ ๋ฐ”๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Linux์˜ ๊ฒŒ์ŠคํŠธ์—์„œ๋Š” vsock(ํ•˜์ดํผ๋ฐ”์ด์ €์™€ ํ†ต์‹ ํ•˜๋„๋ก ์„ค๊ณ„๋œ Linux์˜ ํŠน์ˆ˜ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ ๊ณต๊ฐ„)์„ ์ง€์›ํ•˜๋Š” RDP ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Ubuntu์˜ ๊ฒฝ์šฐ Windows ๋ฐ์Šคํฌํ†ฑ ์—๋””์…˜์˜ Hyper-V์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” VMCreate ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” vsock๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋Š” RDP ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ํŠน๋ณ„ํžˆ ์ค€๋น„๋œ ๊ฐ€์ƒ ๋จธ์‹  ํ…œํ”Œ๋ฆฟ์ด ์žˆ์Šต๋‹ˆ๋‹ค. XRDP ์ด๋ฏธ ์‚ฌ์ „ ์„ค์น˜๋œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋ฐฐํฌํŒ์—์„œ๋Š” ์ ์  ๋” ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ž‘์„ฑ์ž ์ด ๊ฒŒ์‹œ๋ฌผ Fedora์—์„œ ESM์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ Arch Linux ๊ฐ€์ƒ ๋จธ์‹ ์— ๋Œ€ํ•ด ๊ณ ๊ธ‰ ์„ธ์…˜ ๋ชจ๋“œ๋„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

ํ†ตํ•ฉ ์„œ๋น„์Šค ์„ค์น˜

์—ฌ๊ธฐ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์†Œ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. hyperv ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ์—์„œ:

% sudo pacman -S hyperv

VSS ์„œ๋น„์Šค ํ™œ์„ฑํ™”, ๊ตํ™˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ ํŒŒ์ผ:

% for i in {vss,fcopy,kvp}; do sudo systemctl enable hv_${i}_daemon.service; done

XRDP ์„ค์น˜

์ €์žฅ์†Œ ๋ฆฌ๋ˆ…์Šค-vm-๋„๊ตฌ on GitHub๋Š” Arch Linux ๋ฐ Ubuntu์šฉ XRDP ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Git์ด ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ˆ˜๋™ ๋นŒ๋“œ๋ฅผ ์œ„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ๊ธฐํƒ€ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•จ๊ป˜ ์„ค์น˜ํ•œ ๋‹ค์Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.

% sudo pacman -S git base-devel
% git clone https://github.com/microsoft/linux-vm-tools.git
% cd linux-vm-tools/arch

์ด ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ์„ค์น˜๋˜๋Š” XRDP์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค makepkg.sh์ €์žฅ์†Œ์—์„œ ์ œ์•ˆ๋œ ๊ฒƒ์€ 0.9.11์ด๋ฉฐ, ํŒŒ์‹ฑ์ด ๊นจ์ง„ ๊ณณ vsock://-addresses์ด๋ฏ€๋กœ Git์—์„œ XRDP๋ฅผ ์„ค์น˜ํ•˜๊ณ  AUR์—์„œ Xorg ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. AUR์—์„œ ์ œ๊ณต๋˜๋Š” XRDP์šฉ ํŒจ์น˜๋„ ์•ฝ๊ฐ„ ๊ตฌ์‹์ด๋ฏ€๋กœ PKGBUILD์™€ ํŒจ์น˜๋ฅผ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

AUR์—์„œ PKGBUILD๋กœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค(์ผ๋ฐ˜์ ์œผ๋กœ ์ด ์ ˆ์ฐจ๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ์™€ ํ•จ๊ป˜ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ์ž๋™ํ™”๋ฉ๋‹ˆ๋‹ค. ์˜ˆ, ๊ทธ๋Ÿฌ๋‚˜ ์ž‘์„ฑ์ž๋Š” ๊นจ๋—ํ•œ ์‹œ์Šคํ…œ์—์„œ ์ด ์ „์ฒด ์ ˆ์ฐจ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.)

% git clone https://aur.archlinux.org/xrdp-devel-git.git
% git clone https://aur.archlinux.org/xorgxrdp-devel-git.git

๋จผ์ € XRDP ์ž์ฒด๋ฅผ ์„ค์น˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์—ด์–ด๋ณด์ž PKGBUILD ๋ชจ๋“  ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ.

๋นŒ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Git์—์„œ XRDP๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ PKGBUILD๋Š” ๋นŒ๋“œ์— vsock ์ง€์›์„ ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ง์ ‘ ํ™œ์„ฑํ™”ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 build() {
   cd $pkgname
   ./configure --prefix=/usr 
               --sysconfdir=/etc 
               --localstatedir=/var 
               --sbindir=/usr/bin 
               --with-systemdsystemdunitdir=/usr/lib/systemd/system 
               --enable-jpeg 
               --enable-tjpeg 
               --enable-fuse 
               --enable-opus 
               --enable-rfxcodec 
               --enable-mp3lame 
-              --enable-pixman
+              --enable-pixman 
+              --enable-vsock
   make V=0
 }

ํŒจ์น˜์—์„œ arch-config.diff, Arch Linux์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ์˜ ๊ฒฝ๋กœ ์•„๋ž˜์— ์žˆ๋Š” ๋‹จ์œ„ ๋ฐ XRDP ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŽธ์ง‘ํ•˜๋ฉฐ ๋ฌด์—‡๋ณด๋‹ค๋„ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ํŒจ์น˜๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. instfiles/xrdp.sh, ์ž‘์„ฑ ๋‹น์‹œ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. XRDP ๋ฐฐํฌ์—์„œ ํŒจ์น˜๋ฅผ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  [Install]
  WantedBy=multi-user.target
-diff -up src/xrdp-devel-git/instfiles/xrdp.sh.orig src/xrdp-devel-git/instfiles/xrdp.sh
---- src/xrdp-devel-git/instfiles/xrdp.sh.orig  2017-08-30 00:27:28.000000000 -0600
-+++ src/xrdp-devel-git/instfiles/xrdp.sh   2017-08-30 00:28:00.000000000 -0600
-@@ -17,7 +17,7 @@
- # Description: starts xrdp
- ### END INIT INFO
- 
--SBINDIR=/usr/local/sbin
-+SBINDIR=/usr/bin
- LOG=/dev/null
- CFGDIR=/etc/xrdp
- 
 diff -up src/xrdp-devel-git/sesman/startwm.sh.orig src/xrdp-devel-git/sesman/startwm.sh
 --- src/xrdp-devel-git/sesman/startwm.sh.orig  2017-08-30 00:27:30.000000000 -0600

๋ช…๋ น์œผ๋กœ ํŒจํ‚ค์ง€ ๋นŒ๋“œ ๋ฐ ์„ค์น˜ % makepkg --skipchecksums -si (์—ด์‡  --skipchecksums ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์Šค ํŒŒ์ผ์˜ ์ฒดํฌ์„ฌ ํ™•์ธ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.)

๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์ž xorgxrdp-devel-git, ๊ทธ ํ›„์— ์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํžˆ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. % makepkg -si.

๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์ž linux-vm-tools/arch ๊ทธ๋ฆฌ๊ณ  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ install-config.sh, XRDP, PolicyKit ๋ฐ PAM ์„ค์ •์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

% sudo ./install-config.sh

์Šคํฌ๋ฆฝํŠธ ์„ค์น˜ ๋ ˆ๊ฑฐ์‹œ ์„ค์ • use_vsock, ๋ฒ„์ „ 0.9.11๋ถ€ํ„ฐ ๋ฌด์‹œ๋˜์—ˆ์œผ๋ฏ€๋กœ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ์‹œ๋‹ค. /etc/xrdp/xrdp.ini ์ˆ˜๋™์œผ๋กœ:

 ;   port=vsock://<cid>:<port>
-port=3389
+port=vsock://-1:3389

 ; 'port' above should be connected to with vsock instead of tcp
 ; use this only with number alone in port above
 ; prefer use vsock://<cid>:<port> above
-use_vsock=true
+;use_vsock=true

 ; regulate if the listening socket use socket option tcp_nodelay

ํŒŒ์ผ์— ์ถ”๊ฐ€ ~/.xinitrc X ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰๋  ์„ ํ˜ธํ•˜๋Š” ์ฐฝ ๊ด€๋ฆฌ์ž/๋ฐ์Šคํฌํƒ‘ ํ™˜๊ฒฝ ์‹œ์ž‘:

% echo "exec i3" > ~/.xinitrc

๊ฐ€์ƒ ๋จธ์‹ ์„ ๋„์ž. PowerShell์—์„œ ๊ด€๋ฆฌ์ž๋กœ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ VM์— ๋Œ€ํ•œ vsock ์ „์†ก์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

PS Admin > Set-VM -VMName ะะะ—ะ’ะะะ˜ะ•_ะœะะจะ˜ะะซ -EnhancedSessionTransportType HvSocket

๋‹ค์‹œ ๊ฐ€์ƒ๋จธ์‹ ์„ ์ผœ๋ด…์‹œ๋‹ค.

ะŸะพะดะบะปัŽั‡ะตะฝะธะต

์‹œ์Šคํ…œ์ด ์‹œ์ž‘๋œ ํ›„ XRDP ์„œ๋น„์Šค๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์ฆ‰์‹œ vmconnect ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ด๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ๋ฉ”๋‰ด ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ด€์ธก -> ํ–ฅ์ƒ๋œ ์„ธ์…˜. ์ด ํ•ญ๋ชฉ์„ ์„ ํƒํ•˜๋ฉด ํ™”๋ฉด ํ•ด์ƒ๋„๋ฅผ ์„ค์ •ํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ํƒญ์—์„œ ์ง€์—ญ ์ž์› ์—ด๋ฆฌ๋Š” ๋Œ€ํ™” ์ƒ์ž์—์„œ RDP ์„ธ์…˜ ๋‚ด์—์„œ ์ „๋‹ฌ๋˜๋Š” ์žฅ์น˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Hyper-V์—์„œ Arch Linux ๊ฒŒ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ณ ๊ธ‰ ์„ธ์…˜ ๋ชจ๋“œ ํ™œ์„ฑํ™”
Hyper-V์—์„œ Arch Linux ๊ฒŒ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ณ ๊ธ‰ ์„ธ์…˜ ๋ชจ๋“œ ํ™œ์„ฑํ™”

์—ฐ๊ฒฐํ•ฉ์‹œ๋‹ค. XRDP ๋กœ๊ทธ์ธ ์ฐฝ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Hyper-V์—์„œ Arch Linux ๊ฒŒ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ณ ๊ธ‰ ์„ธ์…˜ ๋ชจ๋“œ ํ™œ์„ฑํ™”

์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.

์‚ฌ์šฉ

์ด๋Ÿฌํ•œ ์กฐ์ž‘์˜ ์ด์ ์€ ๋ˆˆ์— ๋•๋‹ˆ๋‹ค. RDP ์„ธ์…˜์€ ๊ณ ๊ธ‰ ์„ธ์…˜ ์—†์ด ๊ฐ€์ƒ ๋””์Šคํ”Œ๋ ˆ์ด๋กœ ์ž‘์—…ํ•  ๋•Œ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋น ๋ฅด๊ฒŒ ๋ฐ˜์‘ํ•ฉ๋‹ˆ๋‹ค. RDP๋ฅผ ํ†ตํ•ด VM ๋‚ด๋ถ€๋กœ ์ „๋‹ฌ๋œ ๋””์Šคํฌ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ${HOME}/shared-drives:

Hyper-V์—์„œ Arch Linux ๊ฒŒ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ณ ๊ธ‰ ์„ธ์…˜ ๋ชจ๋“œ ํ™œ์„ฑํ™”

ํด๋ฆฝ๋ณด๋“œ๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€์— ํ”„๋ฆฐํ„ฐ๋ฅผ ๋˜์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ง€์›๋˜์ง€ ์•Š์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋””์Šคํฌ ํฌ์›Œ๋”ฉ ์ค‘๋‹จ. ์†Œ๋ฆฌ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์ง€๋งŒ ์ž‘์„ฑ์ž๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Alt + Tab๊ณผ ๊ฐ™์€ ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค๋ฅผ ์บก์ฒ˜ํ•˜๋ ค๋ฉด vmconnect๋ฅผ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ํ™•์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์ด์œ ๋กœ vmconnect ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋Œ€์‹  Windows์— ๋‚ด์žฅ๋œ RDP ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋˜๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ ์ด ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. /etc/xrdp/xrdp.ini port ์— tcp://:3389. ๊ฐ€์ƒ ๋จธ์‹ ์ด ๊ธฐ๋ณธ ์Šค์œ„์น˜์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  DHCP๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์„ค์ •์„ ์ˆ˜์‹ ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ํ˜ธ์ŠคํŠธ์—์„œ ๊ฐ€์ƒ ๋จธ์‹ ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ะฝะฐะทะฒะฐะฝะธะต_ะผะฐัˆะธะฝั‹.mshome.net. ๊ณ ๊ธ‰ ๋ชจ๋“œ๋ฅผ ๊บผ์•ผ vmconnect ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ TTY์— ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋œ ์†Œ์Šค:

  1. Hyper-V ์•„์น˜ ์œ„ํ‚ค
  2. GitHub์˜ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ: 1, 2

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€