WSL 2安装与配置

安装WSL 2

安装 WSL 前要在 Turn Windows features on or off 中确保打开以下几项:

图片[1]-WSL 2安装与配置-不念博客

开启上述选项后务必将 Windows 系统重启。❞

wsl 的安装步骤如下:

  1. 在 Windows 中通过以下命令来安装 debian 版本的 wsl:
wsl --install -d debian
wsl --install -d debian
wsl --install -d debian
  1. 当 debian 下载完成后,会自动弹出窗口,显示以下内容:
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
Enter new UNIX username:
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
Enter new UNIX username:
Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. Enter new UNIX username:
  1. 输入用户名 wang 和密码。出现内容为:
Installation successful!
Windows Subsystem for Linux is now available in the Microsoft Store!
...
Installation successful!
Windows Subsystem for Linux is now available in the Microsoft Store!
...
Installation successful! Windows Subsystem for Linux is now available in the Microsoft Store! ...
  1. 安装完 Debian 后,在 Windows terminal 中可以使用命令 wsl -d debian 启动 Debian。
  2. 查看 Debian 版本,可以看到目前是 Debian 12 版本。
cat /etc/debian_version
# 输出
# 12.0
cat /etc/debian_version
# 输出
# 12.0
cat /etc/debian_version # 输出 # 12.0

连接WSL

例如,我的 Windows 系统 ip 为 192.168.5.88,物理服务器的 ip 为 192.168.5.99,通过 wsl 连接物理服务器的步骤如下:

  1. 安装 ssh:
sudo apt install openssh-server
sudo apt install openssh-server
sudo apt install openssh-server
  1. 将 Windows 中的密钥复制到 ~/.ssh 中。
cp /mnt/c/users/wang/.ssh/wang.pem ~/.ssh
cp /mnt/c/users/wang/.ssh/wang.pem ~/.ssh
cp /mnt/c/users/wang/.ssh/wang.pem ~/.ssh

上述步骤必须执行,如果直接用 /mnt/c/... 来作为私钥的路径会报错。❞

  1. 给密钥修改权限:
chmod 400 ~/.ssh/wang.pem
chmod 400 ~/.ssh/wang.pem
chmod 400 ~/.ssh/wang.pem

如果不修改权限同样会报错。❞

  1. 连接物理机:
ssh -i ~/.ssh/wang.pem root@192.168.5.99
ssh -i ~/.ssh/wang.pem root@192.168.5.99
ssh -i ~/.ssh/wang.pem root@192.168.5.99
  1. 关机
wsl --shutdown
wsl --shutdown
wsl --shutdown
  1. 在 CMD 查询正在运行的 wsl 实例:
wsl --list --running
wsl --list --running
wsl --list --running

导入到其他电脑

我们可以通过导出和导入 WSL 来将其迁移到另一个硬盘或设备。

  1. 首先需要使用 wsl --export 命令将当前的 WSL 导出到一个 tar 文件中。如果将 Debian 发行版导出到 D 盘上的 debian.tar 文件中,可以使用以下命令:
mkdir D:\\backup
wsl --export Ubuntu D:\\backup\\debian.tar
mkdir D:\\backup
wsl --export Ubuntu D:\\backup\\debian.tar
mkdir D:\\backup wsl --export Ubuntu D:\\backup\\debian.tar
  1. 使用 wsl --unregister 命令注销当前的 WSL 发行版。
wsl --unregister Debian
wsl --unregister Debian
wsl --unregister Debian
  1. 使用 wsl --import 命令将先前导出的 tar 文件导入到新的硬盘上。
mkdir D:\\wsl
wsl --import Debian D:\\wsl\\ D:\\backup\\debian.tar --version 2
mkdir D:\\wsl
wsl --import Debian D:\\wsl\\ D:\\backup\\debian.tar --version 2
mkdir D:\\wsl wsl --import Debian D:\\wsl\\ D:\\backup\\debian.tar --version 2

这样就可以在新硬盘上使用 WSL 发行版了。

固定WSL IP

  1. 查询,得到结果为 ens33。
ip link show
# ens33
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:df:d3:07 brd ff:ff:ff:ff:ff:ff
altname enp2s1
ip link show
# ens33
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:df:d3:07 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
ip link show # ens33 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:df:d3:07 brd ff:ff:ff:ff:ff:ff altname enp2s1
  1. 编辑 interfaces 文件。
vim /etc/network/interfaces
vim /etc/network/interfaces
vim /etc/network/interfaces
  1. 修改为以下内容。
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# allow-hotplug ens33
# iface ens33 inet dhcp
auto ens33
iface ens33 inet static
address 192.168.119.100
netmask 255.255.255.0
gateway 192.168.119.2
dns-nameservers 159.226.109.3
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# allow-hotplug ens33
# iface ens33 inet dhcp
auto ens33
iface ens33 inet static
address 192.168.119.100
netmask 255.255.255.0
gateway 192.168.119.2
dns-nameservers 159.226.109.3
source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface # allow-hotplug ens33 # iface ens33 inet dhcp auto ens33 iface ens33 inet static address 192.168.119.100 netmask 255.255.255.0 gateway 192.168.119.2 dns-nameservers 159.226.109.3
  1. 重启服务。如果重启不成功则尝试关机。
systemctl restart networking
systemctl restart networking
systemctl restart networking

开机启动WSL

使用以下步骤使 WSL 开机自启:

  1. 在资源管理器地址栏输入以下内容打开自启动文件夹:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
  1. 新建一个文本文件,命名为 wsl.vbe
  2. 在文本中写入以下内容。注意要更改系统和用户名。
Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d debian -u wang", vbhide
Set ws = CreateObject("Wscript.Shell") 
ws.run "wsl -d debian -u wang", vbhide
Set ws = CreateObject("Wscript.Shell") ws.run "wsl -d debian -u wang", vbhide
  1. 重启即可。
© 版权声明
THE END