安装WSL 2
安装 WSL 前要在 Turn Windows features on or off 中确保打开以下几项:
![WSL 2安装与配置 图片[1]-WSL 2安装与配置-不念博客](https://www.bunian.cn/wp-content/uploads/2024/02/image-25.png)
开启上述选项后务必将 Windows 系统重启。❞
wsl 的安装步骤如下:
- 在 Windows 中通过以下命令来安装 debian 版本的 wsl:
wsl --install -d debianwsl --install -d debianwsl --install -d debian
- 当 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:
- 输入用户名 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! ...
- 安装完 Debian 后,在 Windows terminal 中可以使用命令
wsl -d debian
启动 Debian。 - 查看 Debian 版本,可以看到目前是 Debian 12 版本。
cat /etc/debian_version# 输出# 12.0cat /etc/debian_version # 输出 # 12.0cat /etc/debian_version # 输出 # 12.0
连接WSL
例如,我的 Windows 系统 ip 为 192.168.5.88
,物理服务器的 ip 为 192.168.5.99
,通过 wsl 连接物理服务器的步骤如下:
- 安装 ssh:
sudo apt install openssh-serversudo apt install openssh-serversudo apt install openssh-server
- 将 Windows 中的密钥复制到
~/.ssh
中。
cp /mnt/c/users/wang/.ssh/wang.pem ~/.sshcp /mnt/c/users/wang/.ssh/wang.pem ~/.sshcp /mnt/c/users/wang/.ssh/wang.pem ~/.ssh
上述步骤必须执行,如果直接用
/mnt/c/...
来作为私钥的路径会报错。❞
- 给密钥修改权限:
chmod 400 ~/.ssh/wang.pemchmod 400 ~/.ssh/wang.pemchmod 400 ~/.ssh/wang.pem
如果不修改权限同样会报错。❞
- 连接物理机:
ssh -i ~/.ssh/wang.pem root@192.168.5.99ssh -i ~/.ssh/wang.pem root@192.168.5.99ssh -i ~/.ssh/wang.pem root@192.168.5.99
- 关机
wsl --shutdownwsl --shutdownwsl --shutdown
- 在 CMD 查询正在运行的 wsl 实例:
wsl --list --runningwsl --list --runningwsl --list --running
导入到其他电脑
我们可以通过导出和导入 WSL 来将其迁移到另一个硬盘或设备。
- 首先需要使用
wsl --export
命令将当前的 WSL 导出到一个 tar 文件中。如果将 Debian 发行版导出到 D 盘上的debian.tar
文件中,可以使用以下命令:
mkdir D:\\backupwsl --export Ubuntu D:\\backup\\debian.tarmkdir D:\\backup wsl --export Ubuntu D:\\backup\\debian.tarmkdir D:\\backup wsl --export Ubuntu D:\\backup\\debian.tar
- 使用
wsl --unregister
命令注销当前的 WSL 发行版。
wsl --unregister Debianwsl --unregister Debianwsl --unregister Debian
- 使用
wsl --import
命令将先前导出的 tar 文件导入到新的硬盘上。
mkdir D:\\wslwsl --import Debian D:\\wsl\\ D:\\backup\\debian.tar --version 2mkdir D:\\wsl wsl --import Debian D:\\wsl\\ D:\\backup\\debian.tar --version 2mkdir D:\\wsl wsl --import Debian D:\\wsl\\ D:\\backup\\debian.tar --version 2
这样就可以在新硬盘上使用 WSL 发行版了。
固定WSL IP
- 查询,得到结果为 ens33。
ip link show# ens331: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:df:d3:07 brd ff:ff:ff:ff:ff:ffaltname enp2s1ip 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 enp2s1ip 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
- 编辑 interfaces 文件。
vim /etc/network/interfacesvim /etc/network/interfacesvim /etc/network/interfaces
- 修改为以下内容。
source /etc/network/interfaces.d/*# The loopback network interfaceauto loiface lo inet loopback# The primary network interface# allow-hotplug ens33# iface ens33 inet dhcpauto ens33iface ens33 inet staticaddress 192.168.119.100netmask 255.255.255.0gateway 192.168.119.2dns-nameservers 159.226.109.3source /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.3source /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
- 重启服务。如果重启不成功则尝试关机。
systemctl restart networkingsystemctl restart networkingsystemctl restart networking
开机启动WSL
使用以下步骤使 WSL 开机自启:
- 在资源管理器地址栏输入以下内容打开自启动文件夹:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
- 新建一个文本文件,命名为
wsl.vbe
。 - 在文本中写入以下内容。注意要更改系统和用户名。
Set ws = CreateObject("Wscript.Shell")ws.run "wsl -d debian -u wang", vbhideSet ws = CreateObject("Wscript.Shell") ws.run "wsl -d debian -u wang", vbhideSet ws = CreateObject("Wscript.Shell") ws.run "wsl -d debian -u wang", vbhide
- 重启即可。
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END