赞
踩
在安装Linux子系统之前,需要开启Windows功能,开启步骤如下:
注:桥接网络可以使得Linux子系统与windows在同一个网段中,从而使得局域网站中的其他电脑可以直接访问Linux子系统中的服务。
完成后重启电脑
打开Microsoft store
搜索Windows Subsystem for Linux点击获取(Windows Subsystem for Linux允许开发人员直接在Windows上运行GNU/Linux环境(包括大多数命令行工具、实用程序和应用程序),无需修改,无需传统虚拟机或双引导设置的开销。)
安装完成后继续搜索Linux,选择自己需要的Linux发行版安装
等待成功安装后,在开始->所有程序中就能看到对应的Linux子系统了,初次运行需要输入用户名和密码。
桥接网络需要安装的为wsl2,默认情况下新安装的一般都为wsl2,可通过在cmd或PowerShell中输入命令wsl -l -v来检查当前wsl的版本
若当前版本为wsl1,则需要先更新wsl
wsl --update
wsl --version
WSL version: 0.70.0.0
Kernel version: 5.15.68.1
WSLg version: 1.0.45
MSRDC version: 1.2.3575
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.675
wsl --set-version <distro name> 2
命令将 <distro name>
替换为要更新的 Linux 发行版的名称。 例如,wsl --set-version Ubuntu-20.04 2
会将 Ubuntu 20.04 发行版设置为使用 WSL 2。wsl --shutdown
运行 Hyper-V 管理器
cd ~
New-Item .wslconfig
.\.wslconfig
Get-VMSwitch -SwitchType External | Select Name, SwitchType, NetAdapterInterfaceDescription, AllowManagementOS
Get-VMSwitch -SwitchType External | Select Name, SwitchType, NetAdapterInterfaceDescription, AllowManagementOS
Name SwitchType NetAdapterInterfaceDescription AllowManagementOS
---- ---------- ------------------------------ -----------------
WSL_external External Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW) True
.wslconfig
[wsl2]
networkingMode=bridged
vmSwitch=WSL_external
注意,.wslconfig文件的名称一定不能错误,否则可能导致配置不生效
当然还可以在配置文件中指定分配的cpu核数和内存大小等,详细信息请见官方文档
WSL 中的高级设置配置 | Microsoft Learn
wsl
即可启动,若系统安装了多个发行版,则需要指定发行版的名称,如wsl -d Ubuntu
ifconfig
检查IP地址是否和Windows在同一网网段中ping xx.xx.xx.xx
其中xx.xx.xx.xx为上述命令显示的ip地址,例如192.168.1.6,检查是否能够正常连接exit
wsl --shutdown
wsl
ifconfig
/etc/init.wsl
文件sudo vim /etc/init.wsl #执行命令创建并打开文件
#输入以下内容
#! /bin/sh
/etc/init.d/ssh $1
#保存并退出
在文件中,我们启动了ssh服务,如果需要启动其他服务也可以添加到文件中,一行启动一个服务
赋予文件可执行权限sudo chmod +x /etc/init.wsl
使用sudo /etc/init.wsl [start|stop|restart]
来验证是否能正常执行,例如
sudo /etc/init.wsl start #启动服务
sudo /etc/init.wsl stop #停止服务
sudo /etc/init.wsl restart #重启服务
在Windows中设置开机启动,开始-运行,输入shell:startup
在打开的文件夹中新建vsb文件,如wsl.vbs
,输入以下内容
Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d xxx -u root /etc/init.wsl start", vbhide
#注意,xxx需要替换为你安装的wsl发行版名称,如Ubuntu-20.04
保存,重启电脑,不出意外ssh服务已经启动起来了
你需要Windows 11版本 22000 或更高版本,或者运行 WSL 的 Microsoft Store 版本。 若要检查 WSL 和 Windows 版本,请使用 命令:wsl.exe --version
标识磁盘 - 要列出 Windows 中的可用磁盘,使用PowerShell请运行:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
磁盘路径位于“DeviceID”列下。 通常采用 \\.\PHYSICALDRIVE*
格式。
装载磁盘 - 使用 PowerShell,可以使用上面发现的磁盘路径装载磁盘,请运行:
wsl --mount <DiskPath>
#DiskPath为第一步标识出来的磁盘路径,例如wsl --mount \\.\PHYSICALDRIVE0
标识磁盘 - 要列出 Windows 中的可用磁盘,请运行:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
磁盘路径列在“DeviceID”之后,通常采用 \\.\PHYSICALDRIVE*
格式。
列出并选择要在 WSL 2 中装载的分区 - 确定磁盘后,运行:
wsl --mount <DiskPath> --bare
这将使磁盘在 WSL 2 中可用。 (在我们的示例中,<DiskPath>
为 \\.\PHYSICALDRIVE*
。
附加后,可以通过在 WSL 2 中运行以下命令来列出分区:
lsblk
这会显示可用的块设备及其分区。
在 Linux 中,块设备被标识为 /dev/<Device><Partition>
。 例如,/dev/sdb3 是磁盘 sdb 的分区号 3。
装载所选分区
wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
#DiskPath 为磁盘标识 PartitionNumber 为分区号 Filesystem为磁盘类型
#例如 wsl --mount \\.\PHYSICALDRIVE0 --partition 1 --type ext4
其他挂载方式请查看官方文档
关于在 WSL 2 中安装 Linux 磁盘的入门 | Microsoft Learn
挂载磁盘需要管理员权限,因此不能像自动启动服务一样,在启动菜单shell:startup
中添加脚本来挂载,但是可以使用Windows任务计划程序来完成
wsl-mont.bat
放在任意位置,但需要保证不被删除,填入以下内容wsl --mount \\.\PHYSICALDRIVE0 --partition 1 --type ext4
#这里以挂载分区磁盘举例
重启电脑,进入wsl发行版,即可查看到挂载的磁盘
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。