WSLの初期設定と問題対策
1. 初期設定
1.1. ubuntuのユーザ作成
以下のコマンドを入力してユーザを作成します。
adduser <ユーザ名> usermod -aG sudo <ユーザ名>
<ユーザ名>
を作成したいユーザ名にしてください。
実行結果は以下となります。
root@LAPTOP-SSBI3BQM:~# adduser hoge Adding user `hoge' ... Adding new group `hoge' (1000) ... Adding new user `hoge' (1000) with group `hoge' ... Creating home directory `/home/hoge' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for hoge Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y root@LAPTOP-SSBI3BQM:~# usermod -aG sudo hoge root@LAPTOP-SSBI3BQM:~#
1.2. WSLの起動時ログインユーザの指定
以下のコマンドを入力します。hoge
は、起動時にログイン状態にするユーザ名に変更してください。
cat << EOF >> /etc/wsl.conf [user] default=hoge EOF
上記コマンドは、/etc/wsl.conf
というファイルを作って、以下の内容で保存します。
hoge
は、起動時にログイン状態にするユーザ名となります。
[user] default=hoge
WSL の Linux を終了するため、powershell で WSL を終了させます。
PS C:\> wsl --shutdown PS C:\>
2. 問題対策
2.1. resolv.confの問題対応
/etc/resolv.conf
が上書きされ、名前解決ができなくなる問題が発生するときがあります。
その場合、/etc/wsl.conf
に以下を追記します。
- 以下のコマンドで
nano
を立ち上げます。
sudo nano /etc/wsl.conf
- 以下の内容を追記します。
[network] generateResolvConf = false
Ctrl + o
を押下して保存し、Ctrl + x
を押下してnano
を終了します。
- 以下のコマンドで
nano
を立ち上げます。
sudo nano /etc/resolv.conf
- 以下の内容を追記します。
nameserver 8.8.8.8
wslを再起動した場合に、/etc/resolv.conf
が消える場合は、上記処理に追加して以下を行います。
sudo chattr +i /etc/resolv.conf
2.2. WSLを起動しようとした際、以下のエラーで失敗してしまう。
スタブは正しくないデータを受信しました。 Error code: Wsl/Service/0x800706f7 Press any key to continue...
解決策
Windows PowerShell(管理者)
を立ち上げ以下のコマンドを入力します。
netsh winsock reset
以下のメッセージがでますが、再起動してはいけません。
再起動するとWSLの起動がエラーで失敗してしまいます。
Winsock カタログをリセットしました。 リセットを完了するためにコンピューターを再起動する必要があります。