Hyper-V เชฎเชพเช‚ Arch Linux เช…เชคเชฟเชฅเชฟเช“ เชฎเชพเชŸเซ‡ เช‰เชจเซเชจเชค เชธเชคเซเชฐ เชฎเซ‹เชกเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซ‹

Hyper-V เชฎเชพเช‚ Arch Linux เช…เชคเชฟเชฅเชฟเช“ เชฎเชพเชŸเซ‡ เช‰เชจเซเชจเชค เชธเชคเซเชฐ เชฎเซ‹เชกเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซ‹

เชฌเซ‰เช•เซเชธเชจเซ€ เชฌเชนเชพเชฐ เชนเชพเชฏเชชเชฐ-เชตเซ€เชฎเชพเช‚ Linux เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช…เชคเชฟเชฅเชฟ เชตเชฟเชจเซเชกเซ‹เช เชฎเชถเซ€เชจเซ‹ เช•เชฐเชคเชพเช‚ เชฅเซ‹เชกเซ‹ เช“เช›เซ‹ เช†เชฐเชพเชฎเชฆเชพเชฏเช• เช›เซ‡. เช†เชจเซเช‚ เช•เชพเชฐเชฃ เช เช›เซ‡ เช•เซ‡ เชนเชพเชฏเชชเชฐ-เชตเซ€ เชฎเซ‚เชณเชฐเซ‚เชชเซ‡ เชกเซ‡เชธเซเช•เชŸเซ‹เชชเชจเชพ เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเชพเชฏเซ‡เชฒ เชจ เชนเชคเซเช‚; เชคเชฎเซ‡ เชซเช•เซเชค เช†เช—เชณ เชตเชงเซ€เชจเซ‡ เช—เซ‡เชธเซเชŸ เชเชกเชฟเชถเชจ เชชเซ‡เช•เซ‡เชœ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€ เช…เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒเชฌเซ‹เช•เซเชธเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡เชฎ เชตเชฐเซเช•เซ‡เชฌเชฒ เช—เซเชฐเชพเชซเชฟเช•เซเชธ เชเช•เซเชธเชฟเชฒเชฐเซ‡เชถเชจ, เช•เซเชฒเชฟเชชเชฌเซ‹เชฐเซเชก, เชถเซ‡เชฐ เช•เชฐเซ‡เชฒเซ€ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เช…เชจเซ‡ เชœเซ€เชตเชจเชจเซ€ เช…เชจเซเชฏ เช–เซเชถเซ€เช“ เชฎเซ‡เชณเชตเซ€ เชถเช•เชคเชพ เชจเชฅเซ€.

เชนเชพเชฏเชชเชฐ-เชตเซ€ เชชเซ‹เชคเซ‡ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡ เชฌเชนเซเชตเชฟเชง เชเช•เซ€เช•เชฐเชฃ เชธเซ‡เชตเชพเช“ - เชคเซ‡เชฅเซ€, เชฎเชนเซ‡เชฎเชพเชจเซ‹ เชฏเชœเชฎเชพเชจเชจเซ€ เชถเซ‡เชกเซ‹ เช•เซ‹เชชเซ€ เชธเซ‡เชตเชพ (VSS) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เชฎเชนเซ‡เชฎเชพเชจเซ‹ เชถเชŸเชกเชพเช‰เชจ เชธเชฟเช—เซเชจเชฒ เชฎเซ‹เช•เชฒเซ€ เชถเช•เซ‡ เช›เซ‡, เชฎเชนเซ‡เชฎเชพเชจเซ‹ เชตเชฐเซเชšเซเชฏเซเช…เชฒเชพเชˆเชเซ‡เชถเชจ เชนเซ‹เชธเซเชŸ เชธเชพเชฅเซ‡ เชธเชฟเชธเซเชŸเชฎ เชธเชฎเชฏเชจเซ‡ เชธเชฟเช‚เช•เซเชฐเชจเชพเช‡เช เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เชนเซ‹เชธเซเชŸเชฎเชพเช‚เชฅเซ€ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชธเชพเชฅเซ‡ เชซเชพเช‡เชฒเซ‹เชจเซ€ เช†เชชเชฒเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ (Copy-VMFile PowerShell เชฎเชพเช‚). เช•เซ‡เชŸเชฒเซ€เช• เช…เชคเชฟเชฅเชฟ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเซ‹ เชฎเชพเชŸเซ‡, เช…เชฒเชฌเชคเซเชค, เชตเชฟเชจเซเชกเซ‹เช เชธเชนเชฟเชค, เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช•เชจเซ‡เช•เซเชถเชจ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ (vmconnect.exe) เช‰เชจเซเชจเชค เชธเชคเซเชฐ เชฎเซ‹เชก เช‰เชชเชฒเชฌเซเชง เช›เซ‡, เชœเซ‡ RDP เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชฆเซเชตเชพเชฐเชพ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชจเซ‡ เชกเชฟเชธเซเช• เช‰เชชเช•เชฐเชฃเซ‹ เช…เชจเซ‡ เชชเซเชฐเชฟเชจเซเชŸเชฐเซ‹เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชชเชฐ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชตเชพ เชคเซ‡เชฎเชœ เชถเซ‡เชฐ เช•เชฐเซ‡เชฒ เช•เซเชฒเชฟเชชเชฌเซ‹เชฐเซเชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เช‰เชจเซเชจเชค เชธเชคเซเชฐ เชฎเซ‹เชก เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชชเช›เซ€ เชคเชฐเชค เชœ Hyper-V เชฎเชพเช‚ Windows เชชเชฐ เชฌเซ‹เช•เซเชธเชจเซ€ เชฌเชนเชพเชฐ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. Linux เชชเชฐ เชฎเชนเซ‡เชฎเชพเชจเซ‹ เชธเชพเชฅเซ‡, เชคเชฎเชพเชฐเซ‡ RDP เชธเชฐเซเชตเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ vsock เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡ (Linux เชฎเชพเช‚ เชเช• เช–เชพเชธ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชจเซ‡เชŸเชตเชฐเซเช• เชเชกเซเชฐเซ‡เชธ เชธเซเชชเซ‡เชธ เชœเซ‡ เชนเชพเช‡เชชเชฐเชตเชพเช‡เชเชฐ เชธเชพเชฅเซ‡ เชตเชพเชคเชšเซ€เชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เช›เซ‡). เชœเซ‹ เช‰เชฌเซเชจเซเชŸเซ เชฎเชพเชŸเซ‡, เชตเชฟเชจเซเชกเซ‹เชเชจเซ€ เชกเซ‡เชธเซเช•เชŸเซ‹เชช เช†เชตเซƒเชคเซเชคเชฟเช“ เชชเชฐ เชนเชพเชฏเชชเชฐ-เชตเซ€ เชธเชพเชฅเซ‡ เช†เชตเชคเซ€ VMCreate เชเชชเซเชฒเซ€เช•เซ‡เชถเชจเชฎเชพเช‚ เชเช• เช–เชพเชธ เชคเซˆเชฏเชพเชฐ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชเช• RDP เชธเชฐเซเชตเชฐ vsock เชธเชพเชฅเซ‡ เชšเชพเชฒเซ‡ เช›เซ‡. เชเช•เซเชธเช†เชฐเชกเซ€เชชเซ€ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชชเซเชฐเซ€-เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒ เช›เซ‡, เชชเช›เซ€ เช…เชจเซเชฏ เชตเชฟเชคเชฐเชฃเซ‹ เชธเชพเชฅเซ‡ เชคเซ‡ เช“เช›เซเช‚ เช…เชจเซ‡ เช“เช›เซเช‚ เชธเซเชชเชทเซเชŸ เช›เซ‡ - เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชฒเซ‡เช–เช• เช† เชชเซ‹เชธเซเชŸ เชคเซ‡ Fedora เชฎเชพเช‚ ESM เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เช…เชนเซ€เช‚ เช…เชฎเซ‡ เช†เชฐเซเช• เชฒเชฟเชจเช•เซเชธ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฎเชพเชŸเซ‡ เช‰เชจเซเชจเชค เชธเชคเซเชฐ เชฎเซ‹เชกเชจเซ‡ เชชเชฃ เชธเช•เซเชทเชฎ เช•เชฐเซ€เช เช›เซ€เช.

เชเช•เซ€เช•เชฐเชฃ เชธเซ‡เชตเชพเช“ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เช…เชนเซ€เช‚ เชฌเชงเซเช‚ เชตเชงเซ เช•เซ‡ เช“เช›เซเช‚ เชธเชฐเชณ เช›เซ‡, เช…เชฎเชพเชฐเซ‡ เชซเช•เซเชค เชชเซ‡เช•เซ‡เชœ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ hyperv เชธเชฎเซเชฆเชพเชฏ เชญเช‚เชกเชพเชฐเชฎเชพเช‚เชฅเซ€:

% sudo pacman -S hyperv

VSS เชธเซ‡เชตเชพเช“ เชธเช•เซเชทเชฎ เช•เชฐเซ‹, เชตเชฟเชจเชฟเชฎเชฏ เช•เชฐเซ‹ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ เช…เชจเซ‡ เชซเชพเช‡เชฒเซ‹:

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

XRDP เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ

เชญเช‚เชกเชพเชฐ linux-vm-เชŸเซ‚เชฒเซเชธ GitHub เชชเชฐ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เช†เชฐเซเช• เชฒเชฟเชจเช•เซเชธ เช…เชจเซ‡ เช‰เชฌเซเชจเซเชŸเซ เชฎเชพเชŸเซ‡ XRDP เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช…เชจเซ‡ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชฎเซ‡เชจเซเชฏเซเช…เชฒ เชฌเชฟเชฒเซเชกเซเชธ เชฎเชพเชŸเซ‡ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เช…เชจเซ‡ เช…เชจเซเชฏ เชธเซ‰เชซเซเชŸเชตเซ‡เชฐ เชธเชพเชฅเซ‡, เช—เชฟเชŸ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹, เชœเซ‹ เชคเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚ เชจเชฅเซ€, เช…เชจเซ‡ เชชเช›เซ€ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชจเซ‡ เช•เซเชฒเซ‹เชจ เช•เชฐเซ‹:

% 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://-เชธเชฐเชจเชพเชฎเซเช‚, เชคเซ‡เชฅเซ€ เชคเชฎเชพเชฐเซ‡ Gitเชฎเชพเช‚เชฅเซ€ XRDP เช…เชจเซ‡ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ Xorg เชกเซเชฐเชพเช‡เชตเชฐเชจเซ‡ AUR เชฎเชพเช‚เชฅเซ€ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡. AUR เชฎเชพเช‚ เช“เชซเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ XRDP เชฎเชพเชŸเซ‡เชจเซ‹ เชชเซ‡เชš เชชเชฃ เชฅเซ‹เชกเซ‹ เชœเซ‚เชจเซ‹ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเชฎเชพเชฐเซ‡ PKGBUILD เช…เชจเซ‡ เชชเซ‡เชšเชจเซ‡ เชœเชพเชคเซ‡ เชœ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡.

เช…เชฎเซ‡ AUR เชฅเซ€ PKGBUILDs เชธเชพเชฅเซ‡ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชเชจเซ‡ เช•เซเชฒเซ‹เชจ เช•เชฐเซ€เช เช›เซ€เช (เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช† เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ, เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชธเชพเชฅเซ‡, เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชฆเซเชตเชพเชฐเชพ เชธเซเชตเชšเชพเชฒเชฟเชค เชฅเชพเชฏ เช›เซ‡. เชนเชพ, เชชเชฐเช‚เชคเซ เชฒเซ‡เช–เช•เซ‡ เช† เชธเชฎเช—เซเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชธเซเชตเชšเซเช› เชธเชฟเชธเซเชŸเชฎ เชชเชฐ เช•เชฐเซ€ เชนเชคเซ€):

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

เชšเชพเชฒเซ‹ เชชเชนเซ‡เชฒเชพ XRDP เชชเซ‹เชคเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€เช. เชšเชพเชฒเซ‹ เชซเชพเชˆเชฒ เช–เซ‹เชฒเซ€เช PKGBUILD เช•เซ‹เชˆเชชเชฃ เชŸเซ‡เช•เซเชธเซเชŸ เชเชกเชฟเชŸเชฐ.

เชšเชพเชฒเซ‹ เชฌเชฟเชฒเซเชก เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเซเชธเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซ€เช. เช—เชฟเชŸเชฎเชพเช‚เชฅเซ€ 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, เชœเซ‡ เช†เชฐเซเช• เชฒเชฟเชจเช•เซเชธเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชซเชพเช‡เชฒ เชชเชพเชฅ เชนเซ‡เช เชณ เชเช•เชฎเซ‹ เช…เชจเซ‡ 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

เชšเชพเชฒเซ‹ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฌเช‚เชง เช•เชฐเซ€เช. เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐ เชคเชฐเซ€เช•เซ‡ เชชเชพเชตเชฐเชถเซ‡เชฒเชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถเชจเซ‡ เชšเชฒเชพเชตเซ€เชจเซ‡ 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 เชฆเซเชตเชพเชฐเชพ 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. เชนเชพเชฏเชชเชฐ-เชตเซ€ เช†เชฐเซเช• เชตเชฟเช•เซ€
  2. GitHub เชชเชฐ เชฌเช— เชฐเชฟเชชเซ‹เชฐเซเชŸเซเชธ: 1, 2

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹