Macだけじゃない!WindowsでLinuxを使おう+複数環境の構築

Windows Subsystem for Linux
Sponsored Link

WSL2とは

WSL2はWindows Subsystem for Linuxの略称であるWSLのバージョン2という意味です。
WSLはWindows上でLinuxを動かすことのできるWindowsの機能です。

Windows 10、Windows 11で無償で利用できます。

今回は導入の簡単なUbuntuを利用する方法です。
ちなみにUbuntu以外にもDebian, kali-linux, OracleLinux, SUSE, openSUSEなどがこの手順で利用できます。

ざっくりとした流れ

手順のざっくりとした流れです。

順序 内容
1 利用可能なディストリビューションを確認する
2 Ubuntuを構成する
3 確認
4 バックアップを取得する(エクスポート)
5 複数環境を作成する(インポート)

手順

利用可能なディストリビューションを確認する

利用可能なディストリビューションを確認して、利用するディストリビューションを選びます。

  1. WSLのオンラインリストを確認します
    > wsl --list --online
    インストールできる有効なディストリビューションの一覧を次に示します。
    'wsl.exe --install <Distro>' を使用してインストールします。
    
    NAME                                   FRIENDLY NAME
    Ubuntu                                 Ubuntu
    Debian                                 Debian GNU/Linux
    kali-linux                             Kali Linux Rolling
    Ubuntu-18.04                           Ubuntu 18.04 LTS
    Ubuntu-20.04                           Ubuntu 20.04 LTS
    Ubuntu-22.04                           Ubuntu 22.04 LTS
    OracleLinux_7_9                        Oracle Linux 7.9
    OracleLinux_8_7                        Oracle Linux 8.7
    OracleLinux_9_1                        Oracle Linux 9.1
    SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
    openSUSE-Leap-15.4                     openSUSE Leap 15.4
    openSUSE-Tumbleweed                    openSUSE Tumbleweed
    

この場合、Ubuntu, Debian, kali-linux, OracleLinux, SUSE-Linux-Enterprise-Server, openSUSEが使えます。
Ubuntuはバージョンの指定もできますね。

Ubuntuを構成する

それではインストールします。
今回はUbuntuの最新版LTS(Long Term Support)である22.04をインストールします。

  1. インストールコマンドを実行します

    > wsl --install Ubuntu-22.04
    インストール中: Ubuntu 22.04 LTS
    Ubuntu 22.04 LTS がインストールされました。
    Ubuntu 22.04 LTS を起動しています...
    
  2. ユーザー名やパスワードを設定します

    インストールの流れでユーザー名、パスワードが設定できます。

    Installing, this may take a few minutes...
    Please create a default UNIX user account. The username does not need to match your Windows username.
    For more information visit: https://aka.ms/wslusers
    
    Enter new UNIX username: UserName
    
    New password:<作成したユーザーのパスワード>
    Retype new password:<作成したユーザーのパスワード>
    
    passwd: password updated successfully
    Installation successful!
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
    
    Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)
    
    * Documentation:  https://help.ubuntu.com
    * Management:     https://landscape.canonical.com
    * Support:        https://ubuntu.com/advantage
    
    
    This message is shown once a day. To disable it please create the
    /home/UserName/.hushlogin file.
    UserName@hostname:~$
    

    これでUbuntuを利用できる準備ができました。

確認

正しくインストールされているかを確認します。

PowerShellに戻って(exit)、リストを確認しましょう。

> wsl -l --verbose
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  RHEL9           Stopped         2
  Ubuntu-22.04    Running         2

一番下にUbuntu-22.04がいますね。

現在は規定になっていないので、利用する場合はwslコマンドの「-d」オプションで指定します。

> wsl -d Ubuntu-22.04
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
$

ちなみに規定にするためにはwslコマンドの「–set-default」オプションで変更できます。

> wsl --set-default Ubuntu-22.04
この操作を正しく終了しました。
> wsl -l --verbose
  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2
  RHEL9           Stopped         2
  Ubuntu          Stopped         2

バックアップを取得する(エクスポート)

同じバージョンのディストリビューションを複数使ったりすることや、変更を元に戻したくなった時のためにエクスポートしておきます。

  1. イメージデータを格納するフォルダーに移動します

    > cd <イメージデータを格納するフォルダ>
    
  2. エクスポートします

    > wsl --export Ubuntu-22.04 ./Ubuntu-22.04.tar
    エクスポートが進行中です。これには数分かかる場合があります。
    この操作を正しく終了しました。
    

    これで、Ubuntu-22.04.tarファイルが作成されているはずです。

複数環境を作成する(インポート)

もちろん一つの環境だけで使えますが、いろいろやっていてごちゃごちゃになったり、戻したいときにいろいろ初期状態になるのはめんどうですよね。
今回は取得したエクスポートデータをもとに、環境を増やします。

  1. イメージデータを格納したフォルダーに移動します

    > cd <イメージデータを格納するフォルダ>
    
  2. インポートします

    > wsl --import <WSL上の表示名> <WSL格納フォルダ名> .\Ubuntu-22.04.tar --version 2
    インポート中です。この処理には数分かかることがあります。
    この操作を正しく終了しました。
    
  3. 確認

     > wsl --list --verbose
      NAME                  STATE           VERSION
    * Ubuntu-22.04          Stopped         2
      RHEL9                 Stopped         2
      Ubuntu                Stopped         2
      <WSL上の表示名>    Stopped         2
    
  4. インポートしたディストリビューションを起動します

    > WSL -d <WSL上の表示名>
    
    Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)
    
    * Documentation:  https://help.ubuntu.com
    * Management:     https://landscape.canonical.com
    * Support:        https://ubuntu.com/advantage
    
    Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
    
    
    This message is shown once a day. To disable it please create the
    /root/.hushlogin file.
    
    root@hostname:/#
    
  5. 使用するユーザーでログインできるように変更します
    インポートするとログイン時に「root」ユーザーになるように変更されてしまいます。
    これを作成したユーザーでログインするように変更しておきます。

    # cat /etc/passwd
    ...
    <ユーザー名>:x:1000:1000:,,,:/home/<ユーザー名>:/bin/bash
    

    ユーザーがいることを確認したら。

    # vi /etc/wsl.conf
    
    [user]
    default=<ユーザー名>
    
  6. 確認します
    一度WSLを終了してから再度ログインします。

    # exit
    
    > wsl --terminate <WSL上の表示名>
    この操作を正しく終了しました。
    > wsl -d <WSL上の表示名>
    
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
    
    <ユーザー名>@hostname:/$
    

    これで完了です。
    いろいろな確認をしたい場合は一つのディストリビューションでも複数の環境を持っていると便利です。

コメント

  1. […] まずはWSL上にRHELを用意する必要がありますが、これはMacだけじゃない!WindowsでLinuxを使おう+複数環境の構築を参照してください。 その他WSL関連はWSLタグに記事があるので、覗いてみてください。 […]

  2. […] Macだけじゃない!WindowsでLinuxを使おう+複数環境の構築 DockerとDocker ComposeをWSLのUbuntu22.04上で使う […]