[boot] systemd=true
wsl.exe --shutdown <dist name>
ps aux
手軽にLinux環境を構築したい時に便利?
例:
wsl --export Ubuntu ubuntu.tar
wsl --import Ubuntu c:\wsl\ubuntu ubuntu.tar
記事:
wsl --update wsl --shutdown
記事:
ゲストOSのwsl.confで指定する方法:
vi /etc/wsl.conf -- [boot] command="service docker start" --
その他:
wsl -d Ubuntu -u root service docker start
Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile linux.appx -UseBasicParsing Add-AppxPackage -Path linux.appx rm linux.appx
例: Ubuntu 18.04 LTS. C:\, D:\がある場合
mount rootfs on / type lxfs (rw,noatime) ... C:\ on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,umask=22,fmask=11,metadata,case=off) D:\ on /mnt/d type drvfs (rw,noatime,uid=1000,gid=1000,umask=22,fmask=11,metadata,case=off)
Ubuntu 18.04 LTSで/tmp, /var/tmpが肥大化している事がある。
crond等が動作していないので自動削除はされないようだ。
Ubuntuでは「tmpreaper」、RedHat系だと「tmpwatch」を使う。
sudo apt-get install tmpreaper sudo vim /etc/tmpreaper.conf -- # 自動削除時にwarningを出さないようにコメントアウトする # SHOWWARNING=true # 削除対象ディレクトリ TMPREAPER_DIRS='/tmp/. /var/tmp/.' # 7日アクセスが無いファイルを消す TMPREAPER_TIME='7d' # 実行までの遅延時間。早く実行したい場合は短く TMPREAPER_DELAY='60' -- # /etc/cron.daily/tmpreaper に登録される
sudo /etc/cron.daily/tmpreaper &
cat ~/.bash.d/tmpreaper.sh if [ -x /etc/cron.daily/tmpreaper ]; then sudo /etc/cron.daily/tmpreaper & fi chmod +x ~/.bash.d/tmpreaper.sh
sudo yum-config-manager --add-repo https://download.opensuse.org/repositories/home:/wslutilities/CentOS_7/home:wslutilities.repo sudo yum install wslu
sudo apt install ubuntu-wsl
wslview <file>
export BROWSER=wslview alias open=wslview
症状:
ssh -F ssh-config user01@test.example.com -v ... debug1: Authenticating to test.example.com:22 as 'user01' debug1: SSH2_MSG_KEXINIT sent
原因:
netsh interface ipv4 show interface
解決:
# 現在のMTUを調べる ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ...
sudo ifconfig eth0 mtu 1280
MTUを固定したい場合:
記事:
curl https://sts.ap-northeast-1.amazonaws.com/ curl: (6) Could not resolve host: sts.ap-northeast-1.amazonaws.com
[experimental] dnsTunneling=true
wsl --update # WSLの再起動 wsl --shutdown
[network] generateResolvConf = false
nameserver 8.8.8.8 nameserver 8.8.4.4 search lan
記事:
ip addr 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 16:3e:c5:xx:xx:xx brd ff:ff:ff:ff:ff:ff 3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether f6:ec:77:xx:xx:xx brd ff:ff:ff:ff:ff:ff 4: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:15:5d:xx:xx:xx brd ff:ff:ff:ff:ff:ff 5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000 link/sit 0.0.0.0 brd 0.0.0.0
wsl --shutdown
# Ubuntuの場合 ubuntu config --default-user root
ubuntu config --default-user <user>
sudo passwd
echo ~ /mnt/c/local/home/<user> ssh -V OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017 cat ssh-config Host * ControlMaster auto ControlPersist 60s ControlPath ~/.ssh/%C ssh -F ssh-config <host> muxclient: master hello exchange failed Failed to connect to new control master ssh_exchange_identification: Connection closed by remote host
# 成功する場合: /home/user01/.ssh/ srw------- 1 user01 user01 0 Apr 1 10:25 5a46565d0707b05a9615e8cc0cfbf90447fba019 # 失敗する場合: /mnt/c/local/home/user01/.ssh/ -rwxr--r-- 1 user01 user01 0 Apr 1 10:30 5a46565d0707b05a9615e8cc0cfbf90447fba019
vim ~/.ssh/config -- Host * IdentityFile ~/.ssh/id_rsa ForwardAgent yes ServerAliveInterval 15 ServerAliveCountMax 4 StrictHostKeyChecking no ControlMaster auto ControlPersist 60s ControlPath /home/<user01>/.ssh/%C --
export HOME=/home/<user01>
mount -l rootfs on / type lxfs (rw,noatime) ... C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,umask=22,fmask=11,metadata,case=off)
Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x800703fa Error: 0x800703fa ????????????????????? ??????????????????????? Press any key to continue...
Windows Subsystem for Linux には、ディストリビューションがインストールされていません。 ディストリビューションは Microsoft Store にアクセスしてインストールすることができます: https://aka.ms/wslstore
Restart-Service LxssManager
WSL上のファイルはNTFSの拡張属性で管理されているようで、WindowsアプリはNTFSの拡張属性を考慮しないため、metadataが壊れるようだ。
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_<random>\LocalState\rootfs\home\<user>\
[automount] root = /
sudo bash -c 'cat > /etc/wsl.conf << "EOS" [automount] options = "metadata,umask=22,fmask=11" EOS'
wsl -l -v NAME STATE VERSION * Ubuntu Running 2 wsl -t Ubuntu
Restart-Service LxssManager
mount -l | grep /mnt C: on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,umask=22,fmask=11,metadata)
※2020-08: 色々問題があるのでお勧めはしない。
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_<random>\LocalState\rootfs\home\<user>\
usermod -d <new home> -m <user>
home_path=/mnt/c/local/home/${USER} mkdir -p ${home_path}
rsync -avz /home/${USER}/ ${home_path}/
sudo vipw -- user01:x:1000:1000:,,,:/mnt/c/local/home/user01:/bin/bash -- # アクセスできる事を確認 ls /mnt/c/local/home/user01
pwd /mnt/c/local/home/user01
mv .ssh .ssh.bak ln -s /home/$USER/.ssh .ssh rsync -avz .ssh.bak/ .ssh/
記事:
ls | clip.exe
echo "テスト" | iconv -t cp932 | clip.exe
echo "テスト" | uclip.exe
wslconfig.exe /list
wslconfig.exe /setdefault Ubuntu
デフォルトのcmd.exeではさすがに力不足。