導入
この記事は、ソフトウェア開発者を含む、Windows 10 を実行するコンピューター上で一般的な職場を準備するシステム管理者を対象としています。
Microsoft Store オンライン ストアから入手したソフトウェアをカスタム Windows 10 イメージで使用するために統合できないことに関連する特定の問題があることに注意してください。詳細には立ち入りませんが、この問題が次の事実に関連していることを明確にします。 Microsoft Store からインストールされたプログラムは管理者サービス アカウントと通信し、ユーティリティによるカスタム イメージの作成が完了すると sysprep
このような状況によりエラーが発生します。
この記事で説明する方法では、事前構成された WSL10 サブシステムを使用して Windows 2 OS イメージを準備するとき、および KDE Plasma GUI を使用して事前に準備および構成された Ubuntu 20.04 OS イメージを準備するときに、この問題が回避されます。KDE Plasma GUI には独自のものを含めることができます。カスタム ソフトウェアのセット。
Ubuntu 1 から Ubuntu 2 までの Linux ベースの OS システム用の GUI インターフェイスをセットアップする、WSL サブシステム (つまり、WSL16.04 と比較的新しい WSL20.04) をセットアップするための例やチュートリアルがインターネット上にたくさんありますが、これは主にデスクトップ ベースに関するものです。いわゆる。 「軽量」xfce4 には、ユーザー設定に当然の制限があります。 しかし、Ubuntu 20.04 の KDE Plasma GUI に関する限り、ネット上にはあまり情報がありません。 ただし、WSL2 サブシステムに実装されている Linux システムの現在の統合機能を考慮して、システムの外観とハードウェア設定の両方について、ほぼ無制限の設定セットをエンド ユーザーに提供するのはこのオプションです。
必要なソフトウェアのセットをインストールし、WSL2 を構成する
Windows の現在のバージョンを確認するには、Windows の検索バーに次のコマンドを入力します。 winver
そして次のような結果が得られます:
OS バージョンが 1903 または 1909 (指定された OS バージョンには累積的な更新プログラム KB4566116 がインストールされている必要があります)、または 2004 (ビルド番号が 19041 以上) であることが重要であり、残りの情報は重要ではありません。 バージョン番号がそれより前の場合は、この記事の結果を正しく再現するために Windows の最新バージョンにアップグレードすることをお勧めします。
さらなるアクションの便宜のために、Microsoft Store を使用して無料の Windows Terminal をインストールします (他のソースからダウンロードする可能性もあります)。
同じ Microsoft Store を通じて X Server X410 をインストールします。このソフトウェアは有料ですが、15 日間の無料期間があり、さまざまなテストには十分です。
X410 の無料代替品として
ディスク上の任意の場所に、ファイルを保存するディレクトリを作成します。 例として、ディレクトリを作成してみましょう C:wsl
.
Ubuntu_2004.2020.424.0_x64
より受け入れられるものに変える Ubuntu-20.04
それをディレクトリにコピーします C:wsl
(以下、単に wsl
).
wsl
クロスプラットフォーム サウンド サーバー PulseAudio v.1.1. の設定ファイルも修正しました。
ファイル内 wslpulseaudio-1.1etcpulsedefault.pa
セクション Load audio drivers statically
行を編集します:
load-module module-waveout sink_name=output source_name=input record=0
そしてセクションでは Network access
行を編集します:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
ファイル内 wslpulseaudio-1.1etcpulsedaemon.conf
コメントを解除して行を変更します
exit-idle-time = -1
次に従って WSL2 サブシステムを構成します。
必要に応じて、
Windows ターミナルを起動し、キーを押してコマンド プロンプト モードを選択します。 Ctrl+Shift+2
.
まず最初に、WSL2 動作モードを設定します。このために、次のコマンドを入力します。
wsl --set-default-version 2
Ubuntu 20.04 スタンドアロン ブートローダー ディレクトリに変更します。私の場合、これは次のとおりです。 wslUbuntu-20.04
ファイルを実行します ubuntu2004.exe
。 ユーザー名の入力を求められたら、ユーザー名を入力します engineer
(他の名前を入力できます)、パスワードを入力し、指定したアカウントの入力したパスワードを確認します。
ターミナル プロンプトが表示され、Ubuntu 20.04 カーネルがインストールされます。 WSL2 モード設定が正しいことを確認してみましょう。このために、Windows ターミナルで [Windows PowerShell] タブを選択し、次のコマンドを入力します。
wsl -l -v
実行結果は次のようになります。
Microsoft Defender ファイアウォールを構成します。 パブリック ネットワークに対しては無効にします。
Ubuntu 20.04のセットアップ
Windows ターミナルで、[コマンド プロンプト] タブを再度選択し、Ubuntu 20.04 のアップデートをインストールします。 これを行うには、コマンド ラインで次のように入力します。
sudo apt update && sudo apt upgrade –y
KDE Plasma デスクトップをインストールします。
sudo apt install kubuntu-desktop -y
コンピュータのパフォーマンスとインターネット アクセス チャネルの帯域幅に応じて、インストールには最大 30 分かかります。インストーラのプロンプトが表示されたら、次のことを確認します。 OK
.
ロシア語のローカリゼーションと辞書 Ubuntu 20.04 をインストールします。 これを行うには、コマンド ラインで次のように入力します。
sudo apt install language-pack-ru language-pack-kde-ru -y
sudo apt install libreoffice-l10n-ru libreoffice-help-ru -y
sudo apt install hunspell-ru mueller7-dict -y
sudo update-locale LANG=ru_RU.UTF-8
sudo dpkg-reconfigure locales # примечание: выбираем ru_RU.UTF-8 UTF-8, см. скриншоты ниже.
sudo apt-get install --reinstall locales
KDE Plasma デスクトップの最新バージョンを追加します。
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
独自のコンソール アプリケーションのセットを追加します。たとえば、 mc
и neofetch
:
sudo apt install mc neofetch -y
何が起こったのかを確認し、コマンドラインに入力します neofetch
、スクリーンショットを参照してください:
sudo nano /etc/wsl.conf
開いた空のテキスト エディタ ウィンドウで、テキストをコピーします。
[automount]
enabled = true
root = /mnt
options = «metadata,umask=22,fmask=11»
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
変更内容を保存 (Ctrl+O
)、操作を確認してテキストエディタを終了します(Ctrl+X
).
カスタマイズした Ubuntu-20.04 イメージを作成したディレクトリにエクスポートする wsl
。 これを行うには、Windows ターミナルで再度 [Windows PowerShell] タブを選択し、次のコマンドを入力します。
wsl --export Ubuntu-20.04 c:wslUbuntu-plasma-desktop
作成されたイメージは、構成された Ubuntu 20.04 の起動/再インストールの操作を自動化するのに役立ち、必要に応じて、別のコンピューターに簡単に転送できるようになります。
Windows デスクトップへのバット ファイルとショートカットの準備
Notepad ++ エディタを使用して、bat ファイルを作成します (キリル文字を正しく出力するには、OEM-866 エンコードで必要です)。
ファイル Install-Ubuntu-20.04-plasma-desktop.bat
- すでに構成された WSL20.04 サブシステムと X サーバーを備えたコンピューター上で、作成された Ubuntu 2 イメージの初期インストールを自動化するように設計されています。 ユーザー名とパスワードが例で指定したものと異なる場合は、このバット ファイルに適切な変更を加える必要があります。
@echo off
wsl --set-default-version 2
cls
echo Ожидайте окончания установки дистрибутива Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Дистрибутив Ubuntu-20.04 успешно установлен!
echo Не забудьте сменить учетную запись по умолчанию «root» на существующую учетную запись пользователя,
echo либо используйте предустановленную учетную запись «engineer», пароль: «password».
pause
ファイル Reinstall-Ubuntu-20.04-plasma-desktop.bat
- 準備された Ubuntu 20.04 イメージをコンピューターに再インストールするように設計されています。
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Ожидайте окончания переустановки дистрибутива Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:wsl c:wslUbuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Дистрибутив Ubuntu-20.04 успешно переустановлен!
pause
ファイル Set-default-user.bat
- デフォルトのユーザーを設定します。
@echo off
set /p answer=Введите существующую учетную запись в Ubuntu (engineer):
c:wslUbuntu-20.04ubuntu2004.exe config --default-user %answer%
cls
echo Учетная запись пользователя %answer% в Ubuntu-20.04 установлена по умолчанию!
pause
ファイル Start-Ubuntu-20.04-plasma-desktop.bat
- KDE Plasma デスクトップの実際の起動。
@echo off
echo ===================================== Внимание! ============================================
echo Для корректной работы GUI Ubuntu 20.04 в WSL2 необходимо использовать X Server.
echo Примечание: в случае использования VcXsrv Windows X Server необходимо раскомментировать
echo строки в файле Start-Ubuntu-20.04-plasma-desktop.bat, содержащие "config.xlaunch" и
echo "vcxsrv.exe", и закомментировать все строки, содержащие "x410".
echo ============================================================================================
rem start "" /B "c:wslvcxsrvconfig.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:wslpulseaudio-1.1binpulseaudio.exe" --use-pid-file=false -D > nul
c:wslUbuntu-20.04Ubuntu2004.exe run "if [ -z "$(pidof plasmashell)" ]; then cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export LIBGL_ALWAYS_INDIRECT=1 ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; plasmashell ; pkill '(gpg|ssh)-agent' ; fi;"
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /T /IM x410.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
ファイル Start-Ubuntu-20.04-terminal.bat
- KDE Plasma デスクトップを使用せずにグラフィカル ターミナルを起動します。
@echo off
echo ===================================== Внимание! ============================================
echo Для корректной работы GUI Ubuntu 20.04 в WSL2 необходимо использовать X Server.
echo Примечание: в случае использования VcXsrv Windows X Server необходимо раскомментировать
echo строки в файле Start-Ubuntu-20.04-plasma-desktop.bat, содержащие "config.xlaunch" и
echo "vcxsrv.exe", и закомментировать все строки, содержащие "x410".
echo ============================================================================================
rem start "" /B "c:wslvcxsrvconfig.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:wslpulseaudio-1.1binpulseaudio.exe" --use-pid-file=false -D > nul
c:wslUbuntu-20.04Ubuntu2004.exe run "cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; export LIBGL_ALWAYS_INDIRECT=1 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; konsole ; pkill '(gpg|ssh)-agent' ;"
taskkill.exe /F /T /IM x410.exe > nul
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
カタログでの使いやすさにも配慮 wsl
対応するバットファイルを指すショートカットを準備します。 次に、ディレクトリの内容 wsl
次のようになります。
KDE Plasma デスクトップの起動
すべての準備手順が完了していることを確認し、ショートカットを起動してみます。 Plasma-desktop
。 パスワードの要求が表示されるので、アカウントのパスワードを入力すると...ウィンドウが閉じます。 初めてでも大丈夫です。 もう一度試してみると、見慣れた KDE Plasma タスクバーが表示されます。 タスクバーの外観をカスタマイズします。この例では、使いやすくするために、パネルが画面の右側に移動され、中央に配置されています。 ローカリゼーション設定を確認し、必要に応じてロシア語を追加します。
必要に応じて、インストールされている Linux アプリケーションのショートカットを KDE Plasma タスクバーに表示します。
Ubuntu 20.04 で、設定の変更を適用するためにユーザー アカウントからログアウトする必要がある場合、または OS を再起動する必要がある場合は、Windows ターミナルで次のコマンドを入力します。
wsl -d Ubuntu20.04 --shutdown
ショートカットあり Plasma-desktop
または Konsole
KDE Plasma Ubuntu 20.04 GUI を実行できます。 たとえば、次のようにインストールします Konsole
GIMPグラフィックエディタ:
インストールが完了したら、から実行します Konsole
GIMPグラフィックエディタ:
GIMP は動作するので、それを確認したかったのです。
ここでは、WSL2 の KDE Plasma でさまざまな Linux アプリケーションがどのように動作するかを示します。
カスタマイズされた KDE Plasma タスクバーは画面の右側にあります。 Firefox ウィンドウ内のビデオは音声付きで再生されます。
必要に応じて、次のようにして Ubuntu20.04 へのアクセスを構成できます。 SSH
и RDP
このためには、次のコマンドを使用して適切なサービスをインストールする必要があります。
sudo apt install ssh xrdp -y
注: パスワードアクセスを有効にするには、 SSH
ファイルを編集する必要があります /etc/ssh/sshd_config
、つまりパラメータ PasswordAuthentication no
に設定する必要があります PasswordAuthentication yes
、変更を保存し、Ubuntu20.04を再起動します。
Ubuntu20.04を起動するたびに内部IPアドレスが変わるため、リモートアクセスを設定する前にコマンドを使用して現在のIPアドレスを確認する必要があります。 ip a
:
したがって、この IP アドレスをセッション設定に入力する必要があります。 SSH
и RDP
始める前に。
リモートアクセスはこんな感じ SSH
MobaXterm を使用して:
x410 の代わりに x サーバー vcxsrv を使用する
起動とセットアップ vcxsrv
、適切なチェックボックスを慎重に設定します。
設定した構成をディレクトリに保存する wslvcxsrv
デフォルトの名前で config.xlaunch
.
バットファイルの編集 Start-Ubuntu-20.04-plasma-desktop.bat
и Start-Ubuntu-20.04-terminal.bat
彼らの指示に従って。
ショートカットの起動 Plasma-desktop
そして、これが得られるものです:
KDE Plasma デスクトップは Windows デスクトップを完全に閉じます。Linux と Windows アプリケーションのウィンドウを切り替えるには、よく知られたキーの組み合わせを使用します。 Alt+Tab
、あまり便利ではありません。
さらに、Xサーバーの不快な機能が明らかになった vcxsrv
- 一部のアプリケーション、特に同じ GIMP または LibreOffice Writer を実行するとクラッシュします。 おそらく、開発者が気づいた「バグ」を削除するまで待つ必要がありますが、これは確実ではありません... したがって、許容可能な結果を得るには、X サーバー Microsoft x410 を使用することをお勧めします。
まとめ
それでも、私たちは Microsoft に敬意を表しなければなりません。WSL2 製品は非常に機能することが判明し、経験の浅い私の意見では非常に成功しました。 そして、私の知る限り、開発者は引き続き集中的に「完成」させており、おそらく XNUMX ~ XNUMX 年以内に、このサブシステムは完全な機能を備えた状態で登場するでしょう。
出所: habr.com