みねっちょのマイコン関係ブログ

組込開発系フリーソフトやハードの情報発信ブログ

WSL 上 ArchLinux の post install を行う

サイト内 Google 検索:


最終更新:2021-06-04
【こちらの別記事】で WSL にインストール済の ArchLinux の post install 処理の手順を紹介します。sudo 可能なユーザの追加、カーネルの削除とアップデートの禁止処理、およびリポジトリおよびパッケージのアップデートを行います。操作は、新しい Windows Terminal (The new Windows Terminal) 上の PowerShell から WSL を起動して行います。

目次:



ユーザの追加:

インストール直後は、ユーザは root だけの状態なので、一般ユーザを追加します。必ずしも Windows と同じユーザ名である必要は有りませんが、同じであった方が便利な事も有るかも知れません。

ArchLinux には useradd という便利なパッケージが予めインストールされていますので、これを使用します。

WSL での ArchLinux の起動:

新しいウィンドウズ ターミナル (The new Windows Terminal) で PowerShell を開き、次のコマンドを打つと ArchLinux が起動します。引数に指定する ArchLinux は、インストール時に付与したディストリビューション名となります。尚、途中で vim エディタを使用しますので、必ず vt100 互換のターミナル エミュレータから実行してください。

wsl -d ArchLinux


ホームディレクトリの作成とユーザ名とグループの追加:

useradd -m コマンドだけで一連の操作が行えます。最後の ls コマンドで、ユーザのホームディレクトリが作成された事を確認しておきます。

cd
useradd -m username
ls /home

このコマンド1つで、少なくとも次の処理が行われます。 詳細は man useradd コマンドで確認可能です。尚、一旦作成したユーザを削除するコマンドは userdel です。

  • /etc/passwd ファイルへのユーザの追加 (シャドウ パスワード ファイルを含む)
    vipw コマンドによる編集と同等
  • /etc/group ファイルへのグループ ( -G で指定しないとユーザ名と同じ) の追加
    vigr コマンドによる編集と同等
  • /home 下へのホームディレクトリの作成と所有者変更 (-m オプションによる)
    cd /home ; chown username username ; chgrp username username と同等)
  • ホームディレクトリへの /etc/skel ディレクトリからのファイルのコピー
    (.bashrc、.bash_logout、.bash_profiloe、.screenrc、.zshrc)


ユーザーパスワードの変更:

次のコマンドで、ユーザーのパスワードを変更します。このパスワードは、シャドーファイル (/etc/shadow) に暗号化して記載されます。

passwd username

sudoersファイルの編集:

visudo コマンドにて、/etc/sudoers ファイルを編集します。このファイルの下の方に、次の部分があります。

##
## User privilege specification
##
root ALL=(ALL) ALL

## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL

この内、# %wheel ALL=(ALL) ALL の部分のコメント を外します。sudo コマンド実行時にパスワードを使用したくない方は、2つ目の # %wheel ALL=(ALL) NOPASSWD: ALL のコメントを外します。3つ目は ubuntu で使用されているやり方ですが、このグループ名は ArchLinux にはデフォルトでは存在しないので今回は使用しません。

編集には visudo コマンドを使用して /etc/sudoers ファイルにロックを掛けながら行います。

編集は、/wheel でサーチし、h もしくは キー で移動するか、^ キーで行頭までジャンプして x を2回打って2文字消去し、: w q で終了します。尚、編集結果を捨てて終了したい場合は、: q ! です。

編集結果が正しい事を次のコマンドで確認しておきます。

visudo -c

正しく編集出来て居れば、parsed ok と表示されます。



ユーザーの wheel グループへの追加:

次のコマンドで、ユーザを wheel グループに追加します。grep コマンドで正しく追加された事を確認しておきます。

usermod -a -G wheel username
grep wheel /etc/group

WSL 起動時のデフォルト ユーザの変更:

デフォルト ユーザの設定を行って居ない状態で WSL を起動すると、root で起動してしまいます。これは問題なので、/etc/wsl.conf を作成して次の様に記述します。どの様な問題が発生するかと、設定の詳細は【こちらの別記事】を参照してください。

[user]
default=username

正しく設定された事の確認:

次のコマンドで、ユーザが正しく sudo 出来る様になった事を確認しておきます。

su --login username
whoami
sudo su
whoami
exit
exit


リポジトリのアップデート:

/etc/pacman.d/mirrorlist ファイルに記載されたリポジトリの内、日本の https: サーバー以外をコメントにしておきます。

次のコマンドで、gpg キーをアップデートします。

pacman-key --init
pacman-key --populate archlinux

カーネルの削除とアップデートの禁止:

WSL と WSL2 では、Linux カーネルは専用の物が使用されます。従って ArchLinux の標準リポジトリに有るカーネルは使用出来ません。インストールしても無視され、ディスク容量の無駄となります。 まずは、現在使用している使用しているカーネルを確認します。

uname -svr

次の様なメッセージが出力され、WSL2 専用のカーネルが使用されている事が確認出来る筈です。

Linux 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020

WSL2 専用のカーネルが使用されている事が確認出来たら、pacman コマンドを使用して ArchLinux の標準カーネルを非インストールにマークします。もしインストールしていれば削除確認のメッセージが表示されますので y と入力します。インストールしていなければ error: target not found: とメッセージが出力される筈です。

pacman -R linux-firmware broadcom-wl linux linux-lts efibootmgr syslinux

/etc/pacman.conf を書き換えて、カーネルのバージョンアップが行われても無視する様にします。#IgnorePkg と記載されている行を探し、先頭の # を削除します。また、= の後にカーネル関係のパッケージ名を記載します。次の真ん中の行の様に記載します。

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
IgnorePkg   = linux linux-lts linux-firmware broadcom-wl efibootmgr syslinux
#IgnoreGroup =

パッケージのアップデート:

次のコマンドで、個別パッケージをアップデートします。アップデートするかと問われたら、y と答えます。少し時間が掛かります。
終了したら、ログアウトします。

pacman -Syu
exit

尚、同コマンドの2回目以降の実施で、強制的にパッケージ データベースのアップデートを行いたい場合には pacman -Syyuy を2つ記載します。



【WSL 関係の目次へ戻る】    【Linux 関係の目次へ戻る】