前の記事で、Windwos10 バージョン2004 をインストールした。この、Windwos10 バージョン2004 からは、WSL2(Windows Subsystem for Linux Version2)が正式に利用できるようになった。
WSL2は、以前のWSLよりも更にLinuxとの互換性を強化したものである。WSLではWindowsAPIの上でLinuxを実行させていたものを、WSL2は完全な仮想環境でLinuxカーネルごと起動させるというものになっている。
ファイルアクセスなど速度向上が期待できる反面、Windows間との連携は多少工夫が必要となるが、Linuxカーネルそのものが動いているので、WSLでは実行できなかったソフトなども実行可能になる。
そこで、WSL2を使い「Ubuntu 20.04 LTS」をインストールして動かしたので備忘録を残す。
WSL2の有効化
まずは、「WSL機能」と「仮想マシンプラットフォーム」が使えるように有効化しておく必要がある。
1)Windowsスタートから、設定 > アプリ を実行
2)「アプリと機能」の「プログラムと機能」を選択
3)「Windowsの機能の有効化または無効化」を選択
4)「Linux 用 Windows サブシステム」と「仮想マシンプラットフォーム」の項目をチェックし [OK] する。
- Dockerなどの利用に備えて「
Hyper-V
」もチェックしておく。
ここで再起動する。
WSL2をデフォルトバージョンに設定
スタートメニュー右クリックで、Powershellを管理者モードで起動し、下記コマンドを実行。
wsl --set-default-version 2
ここで、下記のようなメッセージでる事があるので、URLに記載の指示にしたがって、WSLカーネルをアップデートする。
wsl_update_x64
を実行。
Microsoftストアから「Ubuntu 20.04 LTS」をインストール
Microsoftストアアプリを起動して「Ubuntu」と検索すると、Ubuntuが候補に表示される。
「Ubuntu 20.04 LTS」を選択して、アプリの画面で「入手」をクリックでインストールする。
WSLのバージョン確認
Powershellを起動し下記コマンドで、WSLのバージョンが「2」になっているのを確認。
wsl --list --verbose
Ubuntuを起動
インストールできたら、スタートメニューに「Ubuntu 20.04」が追加されるので実行する。
bashコンソールが起動され、初回時は数分程度かかるので待つ。
続いて、ユーザ名とパスワードを入力し、準備完了。
ここからはUbuntuの世界なので、下記コマンドでパッケージをアップデートしておく。
$ sudo apt update
$ sudo apt upgrade
IPアドレスの確認
ip addr
コマンドで、割り当てられているIPアドレスを確認。
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether aa:80:26:a6:7a:7f brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 66:8d:af:f1:e6:76 brd ff:ff:ff:ff:ff:ff
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:25:5a:97 brd ff:ff:ff:ff:ff:ff
inet 172.19.62.5/20 brd 172.19.63.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe25:5a97/64 scope link
valid_lft forever preferred_lft forever
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
$ ip route
default via 172.19.48.1 dev eth0
172.19.48.0/20 dev eth0 proto kernel scope link src 172.19.62.5
IPアドレスは「172.19.62.5
」となっており、クラスBのプライベートアドレスが割り当てられている。独立した仮想ネットワークが構築されて、NATかルーティングでWindows側と通信するようである。このIPアドレスは、起動する度に変わる模様。
その他の設定
補足
- WindowsからLinuxのファイルへアクセスは、エクスプローラーのアドレスに「
\\wsl$\Ubuntu-20.04
」を入力してアクセスできる。 - Windowsのファイルシステムへのアクセスは「
/mnt/c/
」のパスからアクセスできる。下記のように作業用フォルダ等へリンクしておくと便利。
$ ln -s /mnt/c /Users/<UserName>/work
- WSL2でのネットワークアドレスは、根本はWindowsとは別扱いになっており「イーサーネットアダプター vEthernet(WSL)」という仮想ネットワークインターフェースで扱われる。クラスBのプライベートアドレスが割り当てられてられ、起動する度に変わる。
所感
MacパソコンはUnix互換のコンソールを持っているので、私はMacが重宝している。Windowsパソコンでも、このWSL2のようにLinux環境が手軽に使えるようになるのは、とても歓迎できる。今後更に、WindowsとLinuxの融合が進む事を期待する。
関連記事
参考
- WSL 2 の新機能
- Windows 10 用 Windows Subsystem for Linux のインストール ガイド
- WSL 2 Linux カーネルの更新
- 20H1とともに正式に来るWindows Subsystem for Linux 2の実力を見る
- Windows Subsystem for Linux Installation Guide for Windows 10
- Windows10 WSL2の使い方まとめ [20H1 build 18917~]
- Windows機を購入したので開発環境作り(WSL2)
- WSL2入れてみた
- 完全な互換性と改善されたI/Oパフォーマンス ~Canonical、「Ubuntu」の「WSL 2」対応を発表
- Microsoft、「Windows Terminal 1.0」を発表 ~タブUIの新しいターミナルアプリ
- [速報]WSL 2が正式版に到達。今後はLinuxのGUIアプリへも対応すると。Microsoft Build 2020
- 「WSL 2」が正式リリース! ~「WSL 1」とのメリットは? 「Windows Terminal」にも注目
- WSL新版でLinuxをさらに使いやすく、Windows 10 May 2020 Update
- 「WSL 2」が今後の主流に? LinuxのGUIアプリも動作可能? ~「WSL」のこれからに注目
- 「WSL 2」が「Windows 10 バージョン 1903/1909」でも利用可能に ~Microsoftが旧OSに移植
コメント