382
Help us understand the problem. What are the problem?

posted at

updated at

Windows 10でLinuxを使う(WSL2)

Windows 10のWindows Subsystem for Linux 2(WSL2)を使うと、Windows 10上で、超お手軽にLinuxで遊ぶことができる。

How to Install

必要条件

  • Windows 10 version 2004 以降
  • Windows 10 version 1903 and 1909
    KB4566116を適用することで、1903, 1909でもWSL2が使えるようになった。(2020/8/20)

使用しているWindowsのバージョンはwinverコマンドで確認できる。

Windows 10 version 2004以降でKB5004296を適用済みの場合(おすすめ)

コマンドプロンプトを管理者モードで開き、下記のコマンドだけでインストール完了。

wsl --install

デフォルトではUbuntuが一緒にインストールされる。別のディストリビューションを使いたい場合は、下記のように-dオプションを使って指定可能。ディストリビューションを追加インストールする場合もこれでOK。

wsl --install -d Debian

Windows 10 version 2004以前 or KB5004296を未適用の場合

"Windows Subsystem for Linux"の有効化

管理者としてpowershellを開き、以下を実行。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

"Virtual Machine Platform"の有効化

管理者としてpowershellを開き、以下を実行。PCを再起動するかどうか問い合わせがあるので、Yを入力する。PCが自動的に再起動する。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all

WSL2用Linuxカーネルのインストール

WSL 2 Linux カーネルの更新ページから、WSL2用Linuxカーネルをダウンロードして、インストールする。

デフォルトをWSL2に設定

Linuxディストリビューションをインストールする際に、デフォルトでWSL2を使うように設定する。
powershellを開き、以下を実行。

wsl --set-default-version 2

Linuxディストリビューションをインストール

  1. Microsoft Storeを起動し、Ubuntu等のディストリビューションを検索
    Ubuntu以外には、DebianやSLES等何種類かある。 なお、特定の版数のUbuntuを入れたい場合は、版数が入ったもの(Ubuntu 20.04 LTS等)を入れたほうがよい。版数無しUbuntuはインストールする時期によって、版数が変わる模様。

image.png
2. 「入手」ボタンをクリックして、Ubuntuをインストール
3. インストール完了後、「起動」をクリックしてUbuntu起動!
image.png
4. 初回起動時にUbuntu用ユーザIDとパスワードを設定して、インストール完了
ここで入力するユーザ名はWindowsのユーザ名とは関係ない。
root権限が必要な場合は、sudoで実行できる。なお、パスワードを忘れた場合は、パスワードを忘れた場合を参照。
image.png

How to use

スタートメニューから起動

インストールしたLinuxディストリビューションは通常のアプリケーションと同様に、スタートメニューから起動可能。作成したユーザでログインした状態で起動する。

Windows Terminalからアクセス

Windows Terminalでは、自動でWSL2のプロファイルが登録されるため、簡単にアクセスできるのでお勧め。Microsoft Storeからインストールできるので、気になる方は試してみては。
image.png

Windows-Linux間のファイル共有

LinuxからのWindows上のファイルへのアクセス

WindowsのCドライブがLinuxの/mnt/cにマウントされている。/mnt/cにアクセスすることで、Windows上のファイルにアクセス可能。

WindowsからLinux上のファイルへのアクセス

\\wsl$\[ディストリビューション名]でLinux上のファイルにアクセス可能。Ubuntuを使っている場合は、\\wsl$\Ubuntuでアクセスする。

時刻ずれ問題

しばらく使っていて気が付いたのだけど、WSL2のUbuntuの時刻が結構な勢いでずれる。どうも、Note PCがスリープから復帰したタイミングで、UbuntuがNote PCと時刻同期できていないみたい。既知の問題のようで、カーネル版数5.10.16.3で修正されている。カーネルのアップデートはWindows Updateで自動的に実施されるが、すぐに試したい場合は下記の手順で更新できる。

  1. Microsoft Updateカタログから、Windows Subsystem for Linux Update - 5.10.16をダウンロードする。
  2. ダウンロードしたcabファイルを展開し、wsl_update_x64.msiを取り出す。
  3. コマンドプロンプトを管理者権限で開き、下記のコマンドを実行して、WSLを停止

     wsl --shutdown
    
  4. wsl_update_x64.msiを実行する

  5. Ubuntuにログインして、カーネル版数を確認する。

     $ uname -r
     5.10.16.3-microsoft-standard-WSL2
    

なお、Windows Updateで配信されるのを待つのであれば、下記のようにログイン時に毎回sudo hwclock -sを実行することで対処することも可能。

  • /etc/sudoersにhwclockコマンドをパスワードなしで実行できるように設定
    sudo visudoコマンドを実行して、/etc/sudoersファイルを下記のように編集
    hwclockのパスは/sbinかもしれません。)
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
%sudo   ALL=(ALL) NOPASSWD: /usr/sbin/hwclock -s  #この行を追加
  • ~/.bashrcにhwclockコマンドを追加
    ホームディレクトリにある.bashrcファイルの最後に下記の行を追加
# sync HW clock
sudo hwclock -s

How to Uninstall

インストールしたLinuxディストリビューションは、通常のアプリケーションと同様にプログラムの追加と削除からアンインストール可能。

wslコマンド

個人的にたまに使う、Windowsのコマンドプロンプトから実行できるwslコマンドの一覧。

オプション 概要
wslの後にLinuxコマンドを書くと、そのコマンドを実行できる。wsl ls
--install Linuxのインストール(初回実行時はwslの有効化もしてくれる)。デフォルトではUbuntuをインストールするが、-dオプションをつけることでディストリビューションを指定可能。
--status Linuxカーネル版数等を確認可能
--list -v インストール済みディストリビューションを表示
--list -o インストール可能ディストリビューションを表示
--update Linuxカーネルのアップデート。--rollbackをつけると以前の版数に戻る。
Winodws 10からWSL Ubuntuのgrepの実行
C:\>winget uninstall | wsl grep Ubuntu
Ubuntu                                          Canonical.Ubuntu

リンク

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
382
Help us understand the problem. What are the problem?