2020年8月28日金曜日

WSL : WSL2 を使用する

目的:

WSL2 を使用できるようにする

概要:

Windows10 バージョン 1909 でも WSL2 が使用できるようになった為、WSL2 に更新にする。
 更新は以下を実施し、WSL2 が使用できることを確認した。
  1. 累積的更新プログラム「KB4566116 」を適用
  2. "仮想マシン プラットフォーム" のオプション コンポーネントを有効にする
  3. WSL2の有効化
  4. ディストリビューションの更新 (Debian を更新)
  5. wsltty を最新版に更新 
  6. GUI 設定 (DISPLAY 変更, VcXsrv 設定変更)

更新手順:

  1. 累積的更新プログラム「KB4566116 」を適用
    「設定」-「更新とセキュリティ」から アップデートを行う。
     
  2. "仮想マシン プラットフォーム" のオプション コンポーネントを有効にする
    1. powershellを管理者権限で起動
      スタートメニューから 「Windows powershell」-「Windows powershell」を右クリックし、「管理者として実行する」を左クリック
    2. "仮想マシン プラットフォーム" のオプション コンポーネントを有効にする
      powershell で次のコマンドを実行
      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    3. PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
      
      展開イメージのサービスと管理ツール
      バージョン: 10.0.18362.900
      
      イメージのバージョン: 10.0.18363.1049
      
      機能を有効にしています
      [==========================100.0%==========================]
      操作は正常に完了しました。
      
    4. PC を再起動
      再起動すると、Windows の機能の更新が行われる
       
  3. WSL2の有効化
    WSL2をデフォルトへ設定
    powershell で次のコマンドを実行
    wsl --set-default-version 2
    PS C:\WINDOWS\system32> wsl --set-default-version 2
    WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
      
  4. ディストリビューションの更新
    1. 現在のディストリビューションのバージョンを確認
      powershell で次のコマンドを実行
      wsl --list --verbose
      (更新プログラム適用前は、 --verbose は 使用できない。)
      PS C:\WINDOWS\system32> wsl --list --verbose
        NAME      STATE           VERSION
      * Debian    Stopped         1
        Ubuntu    Stopped         1
      
      debian と ubuntu が あり、共に VERSION 1
    2. ディストリビューションの更新
      ここでは Debian を更新してみる。 powershell で次のコマンドを実行
      wsl --set-version Debian 2
      PS C:\WINDOWS\system32> wsl --set-version Debian 2
      変換中です。この処理には数分かかることがあります...
      WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
      変換が完了しました。
      
    3. 再度バージョンを確認
      wsl --list --verbose
      PS C:\WINDOWS\system32> wsl --list --verbose
        NAME      STATE           VERSION
      * Debian    Stopped         2
        Ubuntu    Stopped         1
      
      debian の VERSION が 2 に変わる。
       
  5. wsltty を最新版に更新
    wsltty を使用している場合、最新版( 現時点で 3.3.0 ) にしないと動作しない。
     
  6. GUI 設定 (DISPLAY , VcXsrv 設定) の変更
    WSL2 では ネットワーク構成が変更されている為、DISPLAY 設定が
    DISPLAY=:0.0
    では エラーが発生する。
    以下の設定に変更する必要がある。
    export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
    また、VcXsrv設定で,
    「Additional parameters for VcXsrv」(設定画面 3画面目) に -ac を入力する。
以上で、Debian が WSL2 が使用できるようになった。

尚、Ubuntu は 更新していないため、従来の WSL で起動した。

その他:

(2020/08/30 追記)

ネットワークドライブアクセス不可

現象:
 ネットワークドライブ 2つの内、1つへのアクセスができなくなった。
 アクセスできなくなったのは NAS( SMB1.0)。
 Raspbery pi のディスク ( SMB 2 ?) は アクセスできている。
対応:
  1.  WSL2 に cifs-utils をインストール
    sudo apt install cifs-utils
  2.  /etc/fstab を修正
    NAS の マウントの設定を以下の様にして  drvfs から cifs に 変更
    //サーバー名/共有名 /mnt/<マウント先ディレクトリ名> cifs vers=1.0,username=<ユーザ名>,password=<パスワード>,iocharset=utf8,rw,uid=1000,gid=1000,defaults 0 0
  3. ディストリビューションの再起動
    パワーシェル から WSL 終了コマンドを入力 後、起動し、起動時にマウントされることを確認する。
    wsl -t <ディストリビューション名>
これで、Debian は アクセス可能になった。
但し、WSL1 にすると、cifs での アクセスはできなくなる。
Ubuntu も同様にしたが、起動時に マウントができていない。
sudo mount -a
ではマウントできる。対応調査中

0 件のコメント:

コメントを投稿