WSL2 (Windows Subsystem for Linux)にUbuntu18.04をインストールしたのでその方法を私が担当する授業用にまとめました。授業にWSLを利用しようと2年前から試していましたが、May 2020 Updateからプレビュー版でない通常のWindows10でWSL2を使えるようになり、授業で使う機が熟したので紹介します。以下のサイトを参考にしました。
- 環 境
- Windows10 (64ビット版、バージョン2004, ビルド19041以上)
- BIOSでIntel Virtualization Technology (Intel VT-x)を有効にする。デフォルトで有効になっている場合は多いので、うまく動作しないときに確認しましょう。
- 準備:Windows10のバージョンアップ
- WSL2を使うためにはWindows10が次の条件を満足する必要がある。
- バージョン2004
- ビルド19041以上
- バージョンの確認方法
- スタート→設定→バージョン情報→Windowsの仕様で確認する。
- 条件を満足していない場合は以下のリンクのWindows 10 May 2020 Update [今すぐアップデート]をクリックする。
- WSL2を使うためにはWindows10が次の条件を満足する必要がある。
- WSL2の有効化
- スタート→Windows PowerShell→Windows PowerShell(右マウスボタンで「管理者として実行する」を選択して)を開き、次のコマンドを実行(コピペしてEnterキーを押す)する。1分ぐらいかかる。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 次のコマンドも実行する。これも1分ぐらいかかる。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 再起動する。
- スタート→Windows PowerShell→Windows PowerShell(右マウスボタンで「管理者として実行する」を選択して)を開き、次のコマンドを実行(コピペしてEnterキーを押す)する。1分ぐらいかかる。
- WSL2の設定
- 管理者権限でPowerShellを開き、次のコマンドを実行する。
wsl --set-default-version 2
- 下図のように「WSL 2を実行するには、カーネルコンポーネントの更新が必要です」と怒られる場合は、以下のリンクの指示に従って「Linux カーネル更新プログラム パッケージ」をインストールする。x64マシン用のカーネル更新プログラムをダウンロード・インストールする。
- 管理者権限でPowerShellを開き、次のコマンドを実行する。
- Ubuntu18.04をストアからインストール
- 次のウインドウになるので右上の「入手」または「インストール」をクリックする。ダウンロードサイズは約221MB。
- 入手が終わると次の画面になるので「起動」をクリックする。
- 次のウインドウになるので数分待つ。私の環境では4分ほどかかった。
- なお、起動した後下記のように表示されてそのまま進まなくなった場合は、このリンクを見て対応して欲しい。Installing, this may take a few minutes…
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 ??????????????????????????????????????
- なお、起動した後下記のように表示されてそのまま進まなくなった場合は、このリンクを見て対応して欲しい。Installing, this may take a few minutes…
- ユーザ名とパスワードを聞かれるので入力する。全角は使えないので半角英数字を使うこと。ユーザ名、パスワードは今後も使うので忘れないこと。次の時間帯の設定にならず、”Installation successful!”と表示された場合は、3つ下のアップデートの作業をする。
- 時間帯の設定。標準では、日本の時間帯ではないので以下のコマンドを端末にコピペする。パスワードを聞かれるので入力する。なお、$はプロンプト(入力できる状態を示す記号)なのでコピペしない。
- アップデート:次のコマンドでアップデートする。この作業はネットワークの速度によるが時間がかかる(私の環境では10分程度かかった)ので、次のX Windowシステムのインストールも並行して行う。
- $
sudo apt update
- $
sudo apt upgrade -y
- $
- X Window システムのインストール。WSLはグラフィカルなインタフェース(GUI)が使えないので、X Windowシステムを別にインストールしなければならない。ここでは、VcXsrv(無償)をインストールする。以下のウェブサイトに行き、下図の赤で囲った[Download]をクリックする。2020年7月3日現在のバージョンは1.20.8.1。
- https://sourceforge.net/projects/vcxsrv/
- ダウンロードしたexeファイルをダブルクリックする。次のウインドウが開くので「Next」をクリックする。
- インストールするフォルダーを聞かれるので、デフォルトのまま「Install」をクリックする。
- セットアップが終わったら「Close」をクリックしてインストールを終了する。
- https://sourceforge.net/projects/vcxsrv/
- Xサーバーの起動
- デスクトップにできたXLaunchアイコンをダブルクリックする。
- Select display settingsのウインドウになるのでデフォルトのまま「次へ(N)」をクリックする。
- Select how to start clientのウインドウになるので、デフオルトのまま「次へ(N)」をクリックする。
- Extra Settingsのウインドウになるので 以下の図のようにClipboard、Primary Selection、Disable access controlにチェックを入れ、Native openglのチェックを外して「次へ」をクリックする。Additional parameters for VcXsrvは入力しなくてもよい。
- Finish configurationウインドウになるので、「Save configuration」をクリックして設定ファイルをデスクトップにconfig.xlaunch保存してから「完了」をクリックする。次回からはデスクトップのconfig.xlaunchアイコンをダブルクリックする。そうすると再度設定する必要はなく設定済みのXが起動する。
- ファイアウォールなどを設定している場合は、次の図のように「Windowsセキュリティの重要な警告」というウインドウが開くので、「アクセスを許可する」をクリックする。
- デスクトップにできたXLaunchアイコンをダブルクリックする。
- Ubuntuの設定
- [スタートメニュー]→[Ubuntu 18.04 LTS]からUbuntuのターミナル(以下、端末とよぶ)を起動する。
- タスクバーにピン留めするかデスクトップにショートカットを作っておくと便利。
- 起動した端末で以下のコマンドを実行し、必要なパッケージをインストールする。なお、$はコマンド入力の合図を示すプロンプトを表しているので入力しない。
- $
sudo apt install -y language-pack-ja
- $
sudo update-locale LANG=ja_JP.UTF-8
- $
sudo apt install -y git gedit emacs vim build-essential pkg-config firefox dbus
- $
- 環境変数の設定
- 自分のパソコン画面にLinuxのウインドウアプリケーションが表示されるように以下のコマンドを実行して環境変数を設定する。
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
- 毎回このコマンドを実行するのは面倒なので、nanoエディタを使って~/.bashrcを開く。
$ nano ~/.bashrc
- 以下の行を.bashrcの最後に追加し保存する。nanoエディタで保存する方法はこのリンクを参照して欲しい。
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
- 追加しただけではすぐ有効にならないので、次のコマンドを実行して設定を反映する。
$ source ~/.bashrc
- 自分のパソコン画面にLinuxのウインドウアプリケーションが表示されるように以下のコマンドを実行して環境変数を設定する。
- 確認
- ウインドウアプリケーションが起動するか確認しましょう。
- Ubuntuで標準のウェブブラウザfirefoxを起動してみましょう。Ubuntu端末を起動して次のコマンドを実行してください。うまくfirefoxのウインドウが開けば成功です。お疲れ様!
- $ firefox &
- エラーがでる場合は次のエラー対処法をご覧ください。
- [スタートメニュー]→[Ubuntu 18.04 LTS]からUbuntuのターミナル(以下、端末とよぶ)を起動する。
- エラーの対処法
- WSLバージョン確認
- Ubuntu18.04のWSLがバージョン2になっているかWindows PowerShellを管理者権限で起動して次のコマンドで確認する。
wsl -l -v
- 以下のように表示されていればOK。
PS C:\WINDOWS\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Running 2
Ubuntu Stopped 1 - Ubuntu-18.04がVERSION 1になっていたら、Windows PowerShellで次のコマンドによりVERSION 2へ変換する。変換に数分かかる。変換が終了したら上のコマンドで確認する。
wsl --set-version Ubuntu-18.04 2
- Ubuntu18.04のWSLがバージョン2になっているかWindows PowerShellを管理者権限で起動して次のコマンドで確認する。
- firefoxなどのアプリが開かない
- デスクトップに作ったXサーバーアプリVcXsrvのショートカットをダブルクリックして起動する。
- ~/.bashrcに以下の行が含まれているか確認してなければ、最後の行の後に追加する。
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
- 端末で次のコマンドを実行する。
- $ source ~/.bashrc
- WSLバージョン確認
終わり
コメント
[1]48
Command ‘firefox’ not found, but can be installed with:
sudo apt install firefox
[1]+ Exit 127 firefox
エラーの対処法を実行したのですが、上記のように表示されため、
「sudo apt install firefox」を実行したのですが、それでも、ウインドウが
開きません。どうすればよいでしょうか。
firefoxがないというエラーです。sudo apt install firefoxを実行したとき何かエラーメッセージが出ましたか。以下のコマンドを実行して次のように表示されるか確認してください。
$ which firefox
/usr/bin/firefox
「~/.bashrcに以下の行が含まれているか確認してなければ追加する。」についてなのですが、「$ nano ~/.bashrc」を実行すると、
一番上の行に「# ~/.bashrc:executed by bash(1) for non-login shells.」とでてくるのですが、この~/.bashrcの後ろに追加するということでしょうか。
お忙しいところ、お手数をおかけしますが、よろしくお願いします。
.bashrcの最後に追加してください。
インストール後に$ firefox &のコマンドを実行したのですがエラーが起き、以下の文章が表示されfirefoxが起動できませんでした
$ Unable to init server: Broadway display type not supported: 172.17.137.241:0.0
Error: cannot open display: 172.17.137.241:0.0
回答よろしくお願いいたします
「環境変数の設定」が正しくされているが、もう一度確認してください。 恐らく、これが原因だと思われます。
自分のパソコン画面にLinuxのウインドウアプリケーションが表示されるように以下のコマンドを実行して環境変数を設定する。
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk ‘{print $2}’):0.0
毎回このコマンドを実行するのは面倒なので、以下を~/.bashrcの一番下の行に追加する。
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk ‘{print $2}’):0.0
回答を基に設定しなおしたのですが同様のエラーにより開くことが出来ませんでした
現状行っている手順として
・$ nano ~/.bashrc を入力
・最下行にexport DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk ‘{print $2}’):0.0を張り付け、保存
・$ source ~/.bashrcを実行
・$ firefox &を実行
操作に間違いがあるのでしょうか
回答よろしくお願いいたします
Installing, this may take a few minutes…
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 ??????????????????????????????????????
Press any key to continue…
のエラーについて,対処法のサイトを参考に操作するなどしましたがエラーが消えません.
仮想化が無効になっているのが原因かと考えており有効化を試していますがうまくいきません.
1. Windowsのバージョンを教えてください。
スタート→設定→バージョン情報
最新版は2004なので、低い場合はバージョンアップをお願いします。
2. BIOSでハードウェア仮想化が有効か確認する。
CPU構成で仮想化(Intel Virtualization Technology、Hyper-Vなど)の設定を有効にします。
それでも直らない場合は、「WslRegisterDistribution failed with error: 0x80370102」
をネットで検索して解決法を探してください。日本語だけだと情報が少ないので英語も読んでください。
Installing, this may take a few minutes…
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 ??????????????????????????????????????
のエラーについてリンク先を参照し操作してみましたがエラーが消えませんでした.
エラー文を検索してみてもうまくいきませんでした.
ハイパーバイザについて調べてみましたがいまいちよくわかりません.
コメントがWSL2: Ubuntu18.04になっていますが、WSL2では動きません。また、Ubuntuのバージョンも20.04です。以下のとおりやり直してください。
https://demura.net/education/pd%e5%ae%9f%e8%b7%b5/19311.html
ウインドアプリケーションが起動しません
もちろんエラーの対処法はすべて行いました
返信お待ちしております。
~/.bashrcに以下の行が含まれているか確認してなければ追加する。
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk ‘{print $2}’):0.0
の部分が’ではなく‘となっておりました。
ありがとうございます。訂正しました。