Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
145
Help us understand the problem. What is going on with this article?
@whim0321

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 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コマンドで、インストール済みディストリビューション一覧の参照、アンインストール等ができる。

C:\>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2

リンク

145
Help us understand the problem. What is going on with this article?
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
145
Help us understand the problem. What is going on with this article?