メインメニュー
XAMPP アレンジ
道具箱
Linux
-
リポジトリ編
フレームワーク編
公開ソフトウェア
メタ
リンク
- PHP ライブラリ
- PHP 言語
wsl2:ubuntu目次
WSL2 Ubuntu の手動インストール
— y2sunlight 2020-12-12
関連記事
リンク
- WSL ディストリビューション パッケージを手動でダウンロードする — Microsoftドキュメント
- http://cloud-images.ubuntu.com/ — Ubuntu 公式クラウドイメージ
- WSL(2)でOSを手動で無限に追加(インポート)する方法 — 技術的になにか。
本章では、WSLのLinuxディストリビューションを手動でインストールする方法について説明します。
手動インストールの方法
rootfsイメージ
rootfs とは Linuxファイルシステムの
/
そのものに対する概念で、そこに初期起動時の実デバイス(以降、rootfs イメージと呼びます)をマウントします。Linuxを起動するためには、bootfs(boot file system) と rootfs(root file system)が必要になります。bootfs はブートローダーとカーネルが格納されておりブートプロセスが終わるとアンマウントされます。その後、rootfsに /dev, /proc, /bin, /etc, /lib, /usr, /tmp などが含まれたrootfs イメージがマウントされ、プロセスID=1 の初期プロセス(SysV init または Systemd などが有名)が起動されることになります。
WSL2 へ Linuxディストリビューションを追加するためには、この rootfs のイメージが必要となります。通常は、Linux の rootfs を Microsoft Store から入手して自動でインストールするというのが一般的かもしれませんが、ここでは、rootfs を手動でダウンロードして rootfs のイメージをインポート(
wsl –import
)する方法を説明します。
一般的な手順
(1)rootfsイメージのダウントード
WSL用のrootfsイメージを公開しているサイトからそれをダウンロードします。本章では、以下のサイトからダウンロードします。
- Microsoftのサイト
- Ubuntuのサイト
(2)rootfsイメージのインポート
PowerShell または コマンドプロンプトで、次のようにして rootfsイメージのインポートします。
wsl --import <Distro> <InstallLocation> <FileName>
<Distro>
— 任意のディストリビューション名を指定できます。<InstallLocation>
— インストールするフォルダ<FileName>
— インポートするtarファイルのファイル名
以下では、PowerShell を使用して説明します。
手動インストールの例
本章では、次の2つのサイトからUbuntuのrootfsイメージをダウンロードしてインストールします:
どちらの例でも、最終的に以下のディストリビューション名でUbuntuをインストールします:
Ubuntu-20.04-2
Microsoft のサイトから
ダウンロード
以下のサイトにアクセスして、
ubuntu 2004
をダウンロードして下さい。- WSL ディストリビューション パッケージを手動でダウンロードする
— ディストリビューションのダウンロード
直接以下のクリックしてもダウンロードできます。
ダウンロードしたファイル:
Ubuntu_2004.2020.424.0_x64.appx
rootfsイメージの準備
ダウンロードした
Ubuntu_2004.2020.424.0_x64.appx
の拡張子を.zip
に変更して、それを解凍します。AppxMetadata\ Assets\ install.tar\ install.tar.gz AppxSignature.p7x resources.pri [Content_Types].xml AppxBlockMap.xml AppxManifest.xml ubuntu2004.exe
解凍したフォルダの中でインポートで使用するのは、
install.tar.gz
だけです。本章では、install.tar.gz
を以下の場所に名前を変えて設置します。D:\WSL2\Exports\Ubuntu_2004.2020.424.0_x64.tar.gz
rootfsイメージのインポート
wsl –import
コマンドを使って、先に保存した .tar.gz ファイルをインポートします。PS C:\> wsl --import Ubuntu-20.04-2 D:\WSL2\Packages\Ubuntu-20.04-2 D:\WSL2\Exports\Ubuntu_2004.2020.424.0_x64.tar.gz
既に同じ名前のディストリビューションがある場合は上の名前(Ubuntu-20.04-2)を変更して下さい。wsl -l -v
でディストリビューションの一覧を表示し、インポートを確認します。PS C:\> wsl -l -v NAME STATE VERSION * CentOS7.6 Stopped 2 Ubuntu-20.04 Stopped 2 Ubuntu-20.04-2 Stopped 2
新しいディストリビューション
Ubuntu-20.04-2
が追加されているのが分かります。
Ubuntu のサイトから
ダウンロード
以下のサイトにアクセスして、
focal-server-cloudimg-amd64-wsl.rootfs.tar.gz
をダウンロードして下さい。直接以下のクリックしてもダウンロードできます。
ダウンロードしたファイル:
focal-server-cloudimg-amd64-wsl.rootfs.tar.gz
ダウンロードしたファイルはrootfsイメージなのでそのままインポートできます。本章ではこのファイルの名前を変えて、以下のように設置します。
D:\WSL2\Exports\Ubuntu_focal-server-cloudimg-amd64-wsl.rootfs.tar.gz
rootfsイメージのインポート
wsl –import
コマンドを使って、先に保存した .tar.gz ファイルをインポートします。PS C:\> wsl --import Ubuntu-20.04-2 D:\WSL2\Packages\Ubuntu-20.04-2 D:\WSL2\Exports\Ubuntu_focal-server-cloudimg-amd64-wsl.rootfs.tar.gz
既に同じ名前のディストリビューションがある場合は上の名前(Ubuntu-20.04-2)を変更して下さい。wsl -l -v
でディストリビューションの一覧を表示し、インポートを確認します。PC C:\> wsl -l -v NAME STATE VERSION * CentOS7.6 Stopped 2 Ubuntu-20.04 Stopped 2 Ubuntu-20.04-2 Stopped 2
新しいディストリビューション
Ubuntu-20.04-2
が追加されているのが分かります。
起動
先にインポートした
Ubuntu-20.04-2
をwsl -d
コマンドで起動します。PS C:\> wsl -d Ubuntu-20.04-2
この時、Power Shell が bash に切り替わりUbuntuが利用できるようになります。Windowsターミナルをお使いの方は、[プルダウンメニュー]から[Ubuntu-20.04-2]を選択することもできます。
インストール直後の最初の起動では、root ユーザでログインしています。
以下のコマンドでUbuntuのバージョンとユーザ情報を確認してみましょう:
# cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS"
# id uid=0(root) gid=0(root) groups=0(root)
Ubutuの初期設定
この段階では、ユーザは root しか存在しません。以下は全てrootユーザから設定している例になります。
管理者(root)のパスワード設定
rootユーザのパスワードが分からないので、最初に設定しておきます:
# passwd
新しいユーザの追加
ユーザを作成します:
# adduser --shell /bin/bash y2sunlight
作成したユーザにグループを追加します:
# usermod -G adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev y2sunlight
ここで、追加したこれらのグループは、Microsoft Store から Ununtu をインストールした時に、初期ユーザが所属してるグループです。必要に応じて追加・削除して下さい。
ユーザ情報を確認します:
# id y2sunlight uid=1000(y2sunlight) gid=1000(y2sunlight) groups=1000(y2sunlight),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev)
/etc/sudoers
開発用のローカルサーバなので、rootで運用しても良いですが、
sudo
の設定もしておきます。viduso
を実行して/etc/sudoers
のsudo
グループの箇所を書き換え、sudo
でパスワードが不要になるように設定します:$ visudo
- sudoers
# ... # Allow members of group sudo to execute any command - %sudo ALL=(ALL:ALL) ALL + %sudo ALL=(ALL) NOPASSWD:ALL # ...
この設定で
sudo
グループに入っているユーザは、sudo
でパスワードが不要になります。
パッケージの更新
パッケージを最新の状態に更新します:
$ apt update # 最新のパッケージ情報の取得 $ apt upgrade -y # パッケージを最新に更新する
これ以降、Ubuntu には ユーザ
y2sunlight
でログインして操作します。
Windowsの初期設定
PowerShellからの起動
PowerShellから起動するには以下のようにします。
PS C:\> wsl -d Ubuntu-20.04-2 -u y2sunlight
-d
でディストリビューション名を指定してす。-u
でユーザ名を指定してす。
Windowsターミナルをご利用の場合は、[プルダウンメニュー]から[Ubuntu-20.04-2]を選択できます。
Windows ターミナルの設定
Windowsターミナルを起動し、[プルダウンメニュー]から[設定]を選択します。
setting.json
を開き、“name” がインポート時に指定したディストリビューション名( “Ubuntu-20.04-2” ) と同じターミナルを探し、その設定を以下のように変更して下さい。{ "guid": "{048a85e4-0278-5ae1-8add-531a3d3eb4ac}", "hidden": false, "name": "Ubuntu-20.04-2", "source": "Windows.Terminal.Wsl", + "commandline": "wsl.exe -d Ubuntu-20.04-2 -u y2sunlight", + "startingDirectory": "//wsl$/Ubuntu-20.04-2/home/y2sunlight" }
"commandline"
— 起動コマンドを指定します。
ここでは、-d
でディストリビューション名を、-u
でユーザ名を指定してす。"startingDirectory"
— シェル起動時の開始ディレクトリを指定します。
登録解除
インポートした Ubuntu を登録解除(アンインストール)するには、
wsl –unregister
コマンドを使います。PS C:\> wsl --unregister Ubuntu-20.04-2
このコマンドには、実行の確認がないので、注意して下さい。実行されると直ぐに、登録解除され、Ubuntu のイメージは削除されてしまいます。
wsl2/ubuntu.txt · 最終更新: 2020/12/24 09:44 by y2sunlight
コメント