【初心者】WSL2にDebianのインストールと初期設定
はじめに
この記事はWSL2にDebianをインストールし、Debianの初期設定を行うメモです。
WSLとは
WSLとはLinuxのコマンドラインツール、ユーティリティ、アプリケーションをWindows上で実行する技術です。
公式サイトは下記URLです。
WSLにはWSL1とWSL2というバージョンがあります。基本的にはWSL2がWSL1の上位互換ですが、WSL1を使用したほうがいい場合もあります。詳しくはこちら
WSLを使用するにはWindows10バージョン2004以上(19041以上)またはWindows11である必要があります。下記コマンドでOSのバージョンを確認できます。
# OSのバージョン情報を確認する
> systeminfo
WSLの仕組み
WSL2はHyper-Vというハイバーバイザーでコンピュータを仮想化するためのプログラムを制御します。仮想化には複数の方法がありますが、WSL2はハイパーバイザー型です。
下記はホスト型と呼ばれる仮想化方法です。
ホスト型
ハイパーバイザー型
ホスト型とは対照的にハイパーバイザー型はハードウェアに直接、ゲストOSをインストールします。
ハイパーバイザー型のメリットはハードウェアへのアクセスするのにホストOSを経由しなければならないため、余計なオーバーヘッドがかかりません。
WSL2について、多少理解ができたと思うのでインストールまでの流れを説明します。
step1 Windowsに標準搭載のHyper-Vを有効にします。
step2 ゲストOS(今回は軽いと噂のDebian)をインストールします。
step3 そのゲストOSへログインし、必要パッケージのインストールや初期設定を行います。
Hyper-Vの有効化
PowerShellを管理者権限で開いてください。
# 実行中のWindowsのオプション機能を一覧表示します。
> Get-WindowsOptionalFeature -Online
大量に表示されたと思います。下記のコマンドで見たいオプションのみを抽出します。
# Hyper-Vとつく機能のみ表示します。
> Get-WindowsOptionalFeature -Online | ? FeatureName -Match "Hyper-V"
# 出力結果
FeatureName : Microsoft-Hyper-V-All
State : Enabled
FeatureName : Microsoft-Hyper-V
State : Enabled
FeatureName : Microsoft-Hyper-V-Tools-All
State : Enabled
FeatureName : Microsoft-Hyper-V-Management-PowerShell
State : Enabled
FeatureName : Microsoft-Hyper-V-Hypervisor
State : Disabled
FeatureName : Microsoft-Hyper-V-Services
State : Enabled
FeatureName : Microsoft-Hyper-V-Management-Clients
State : Enabled
Microsoft-Hyper-V-AllがDisbleになっている場合、有効にする必要があります。
# Microsoft-Hyper-V-ALLを有効にする
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
コマンド操作では難しくてできない場合、こちらの方法をお試しください
別の方法
Linuxディストリビューションのインストール
ゲストOSとして利用可能なOSはLinuxカーネルとその他ソフトウェア群を一つにまとめたLinuxディストリビューションと呼ばれるものです。
利用可能なLinuxディストリビューションを表示します。
# オンラインストアから利用可能なLinuxディストリビューションを表示します。
> wsl --list --online
表示されたLinuxディストリビューションを簡単に説明します。
名前 | 説明 |
---|---|
Ubuntu | 代表的な使いやすいLinuxディストリビューション。 |
Debian | Ubuntuに比べコンピュータリソースが低い古参のディストリビューション。 |
Kali-linux | 特殊なパッケージが多く、上級者向けのディストリビューション。 |
OracleLinux | RHELと互換性の高いLinuxディストリビューション。 |
Linuxディストリビューションごとに違いが大きいため、使い方の学習コストが発生します。ディストリビューションを選ぶ際には注意してください。
# 指定したLinuxディストリビューションをインストール
> wsl --install <Distribution Name>
# 指定しない場合、Ubuntuがインストールされます
> wsl --install
インストールが完了すると、usernameとpasswordの設定を要求されます。
passwordは入力した文字が表示されないので正確に入力してください。
再起動を行うことでインストールが完了するものもあります。
私は今回、Debianをインストールしました。
よく使われるWSLのコマンドです。
# インストールされているLinuxディストリビューションを表示
> wsl --list --verbose
# Linuxディストリビューションを起動
> wsl ~
# WSLを更新
> wsl --update
# wslの状態を確認
> wsl --status
# ヘルプコマンド
> wsl --help
# 全ての起動中のLinuxディストリビューションを終了
> wsl --shutdown
# 指定したディストリビューションを終了
> wsl --terminate <Distribution Name>
# ディストリビューションのアンインストール
> wsl --unregister <Distribution Name>
Debianの初期設定
# wslを起動します。
> wsl ~
バージョンの更新
まず、Debianのバージョン確認を行います。
# catコマンドでバージョンが記載されたファイルを取得
$ cat /etc/debian_version
12.0
パッケージ管理を行うaptパッケージを最新状態にします。
# aptをアップデート
$ sudo apt update
ダウンロード済のパッケージを最新版に更新します。
# インストールしているパッケージをアップデート
$ sudo apt upgrade
再度、バージョンの確認を行います。
$ cat /etc/debian_version
12.1
root権限にパスワードを設定
root権限にパスワードを設定しないとセキュリティ上問題があるので、パスワードを設定します。
# rootユーザになる
$ sudo su -
# パスワードの設定
# passwd
New password:
Retype new password:
passwd: password updated successfully
# ログアウトする
# exit
デーモンの設定
DebianではOSが最初に起動するプログラム(デーモン)がinitとなっています。initの欠点を克服するように設計されたsystemdに変更する必要があります。
デーモンの確認を行います。
$ ps -aux
PIDが1となるCOMMANDを確認してください。
/initとなっていると思います。
一応ファイルも確認します。
ls -l /init
こちらも/initとなっていると思います。
systemdをデーモンに登録します。
wsl.confファイルを作成します。
# rootユーザーに切り替える
$ sudo su
# wsl.confを作成する
# vi /etc/wsl.conf
viの使い方は独特です。vimを使う場合はダウンロードが必要です。
下記を入力してください。
[boot]
systemd=true
# rootユーザーからログアウトします
# exit
# wslからもログアウトします
$ exit
# wslを更新します
> wsl --update
再度wslにログインしプロセスを確認します。
$ ps -aux
/sbin/initとなっていると思います。
ファイルも確認します。
$ ls -l /sbin/init
/sbin/init -> /lib/systemd/systemdになっていると思います。
必要なパッケージをインストール
sudo apt install -y rsync bc openssh-client curl emacs-mozc-bin libgl1 libxcb-*
さいごに
他にも、Vimのインストール、localeの設定などありましたが割愛しました。
さらに必要な設定がありましたらコメントください。
最後まで読んでいただきありがとうございました。
Discussion