WSLを使うときにハマるポイントと忘れてる部分を解説
目次
WSLを利用可能にする
Windowsの検索バーから
- 「Windowsの機能の有効化または無効化」
を入力して検索
- 「Windows Subsystem for Linux(Linux 用 Windows サブシステム)」
- 「仮想マシン プラットフォーム」
を有効化する
$ wsl --install d ubuntu
WslRegisterDistribution failed with error: 0x800701bc
もっと文字化けしたエラーが出る場合もある
この段階インストールしようとするとエラーが出る。
なぜならWSLのアップデートが必要だからだ。
WSLのアップデートの方法1
wsl --update
PowerShellからコマンドでWSLのアップデートをしておく。
またこのコマンドだけで従来版WSLから、ストア版WSLに更新できる。
WSLのアップデートの方法2
x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージを入れる
https://learn.microsoft.com/ja-jp/windows/wsl/install-manual
ここから更新プログラムのパッケージをダウンロードしてアップデートすることも可能。
Linux(Ubuntu)のインストール
Ubuntuをインストールします。
- WindowsストアからインストールすればOKです。
- WidnowsストアからUbuntuを検索
- 各パッケージが出るの「Ubuntu」をクリックしてインストール
指定するOSがあるなら、
例えば「Ubuntu 18.04.6 LTS」「Ubuntu 20.0.4.6 LTS」 などを選択してインストール
バージョンの確認
$ wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
ディフォルトバージョンをWSL2に設定する
$ wsl --set-default-version 2
WSLのバージョンをWSL2に設定しておく
Ubuntuの設定
Ubuntuをクリックして起動します。
Ubuntuの起動画面とバージョン確認
$ cat /etc/issue
Ubuntu 22.04.3 LTS \n \l
どちらのコードでも良い
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
Ubuntu Rootパスワード設定
$ sudo passwd root
[sudo] password for yokoyama:
New password:
Retype new password:
passwd: password updated successfully
- New password:
新しい設定するパスワード - Retype new password:
パスワード確認(上記と同じパスワード) - passwd: password updated successfully
成功したメッセージ
Open SSH Serverのインストール
$ sudo apt update
$ sudo apt install openssh-server
これでSSHのインストールが完了です。
SSHが動作しているか確認
$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-12-11 16:17:04 JST; 58s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1206 (sshd)
Tasks: 1 (limit: 18971)
Memory: 1.7M
CGroup: /system.slice/ssh.service
└─1206 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
動作してない場合は以下のコマンドを実行
$ sudo systemctl enable ssh
$ sudo systemctl start ssh
これで動作します。
ファイアーウォールを利用している場合の許可
$ sudo ufw allow ssh
SSHをRootでも接続できる様にする
$ sudo vi /etc/ssh/sshd_config
ファイルに下記を付け足す
PermitRootLogin yes
PasswordAuthentication yes
:wq で保存して終了。
$ sudo /etc/init.d/ssh restart
SSHのリスタートコマンド。
RegisterDistribution failed with error: 0x8007019e Error: 0x8007019e Linux ? Windows ??????????????????のエラーでハマったら
DockerとWslを使っていると、よくこんなエラーに遭遇する。
何回もハマったので、手順を解説。
- wsl –install をやってもエラー
- Ubuntu起動してもError: 0x8007019e Linux ? Windows
- wsl -v やってもエラー
- dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 効果なしだった場合
- dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 効果なしだった場合
- wsl –update 効果なしだった場合
この場合下記手順により起動可能になります。
- 【重要】
- ただし運用中のUbuntuなどは削除されるので注意
- まだUbuntuのフォルダにアクセスできるならバックアップを取ること
- Dockerのデータも必要ならバックアップしておくこと
Error: 0x8007019e Linux の結論
Windowsサブシステム関連をすべて削除し
Windowsサブシステムを再度インストールすることで治る。
Error: 0x8007019e Linuxエラーから復帰の手順
- Linux用Windowsサブシステム
- Windows Subsystem for Linux
- Windows Subsystem for Linux Update
一度これらをすべて削除する
MicrosoftStoreから Windows Subsystem for Linuxをインストールする
インストールが終わったら
wsl --update
Wslのアップデートをしておく。
場合によっては上記の「WSLのアップデートの方法2」で試した
アップデート方法を試すこと。
あとはコマンドかMicrosoftStoreからUbuntuをインストールすれば完了です。