目录
- [1. 安装wsl+ubuntu20.04](#1. 安装wsl+ubuntu20.04)
-
- [1.1 安装wsl](#1.1 安装wsl)
- [1.2 升级wsl](#1.2 升级wsl)
- [1.3 安装ubuntu20.04](#1.3 安装ubuntu20.04)
- [1.4 wsl 从系统盘迁移到D盘](#1.4 wsl 从系统盘迁移到D盘)
- [1.5 重启电脑](#1.5 重启电脑)
- [2. 本机Windows访问Ubuntu20.04文件系统](#2. 本机Windows访问Ubuntu20.04文件系统)
-
- [2.1 资源管理器直接访问](#2.1 资源管理器直接访问)
- [2.2 localhost地址访问](#2.2 localhost地址访问)
- [2.3 samba共享文件夹(慎用)](#2.3 samba共享文件夹(慎用))
- [3 Ubuntu20.04访问本机Windows文件系统](#3 Ubuntu20.04访问本机Windows文件系统)
1. 安装wsl+ubuntu20.04
1.1 安装wsl
shell
wsl --install
1.2 升级wsl
shell
C:\Users\10620>wsl --update
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。
C:\Users\10620>wsl --version
WSL 版本: 2.6.1.0
内核版本: 6.6.87.2-1
WSLg 版本: 1.0.66
MSRDC 版本: 1.2.6353
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows: 10.0.19045.6093
1.3 安装ubuntu20.04
shell
#查看所有可用的发行版
wsl --list --online
#安装ubuntu20.04
wsl --install -d Ubuntu-20.04
1.4 wsl 从系统盘迁移到D盘
由于wsl安装在系统C盘占系统内存,需要将WSL移植到内存空间充足的D盘。
(1) 首先查看一下虚拟机状态。
shell
wsl -l -v
如果是running状态,先停止。
shell
wsl --shutdown
(2) 备份ubuntu20.04到D盘
shell
wsl --export Ubuntu-20.04 D:\Program\WSL\Ubuntu20.04\Ubuntu.tar
(3) 注销原 wsl 虚拟机
shell
wsl --unregister Ubuntu-20.04
(4) 将ubuntu20.04备份压缩包安装到D盘
shell
# wsl --import <发行版名称> <安装位置> <系统压缩包> [选项]
wsl --import Ubuntu-20.04 D:\Program\WSL\Ubuntu20.04 D:\Program\WSL\UbuntuUbuntu20.04\Ubuntu.tar
(5) 配置默认用户名
<发行版名称版本号>就是Ubuntu+版本号组合,比如Ubuntu-20.04就是Ubuntu2004。下面配置一个名为sun的ubuntu系统用户。
shell
# <发行版名称版本号> config --default-user <用户名>
Ubuntu2004 config --default-user sun
(6) 登录验证
配置完成后,在windows的cmd窗口执行下面命令登录ubuntu,登录上后就直接进入了sun用户的家目录。

1.5 重启电脑
最好做一下这步,我安装完wsl+ubuntu系统后,发现我编译windows拷贝到ubuntu的代码不生效。重启之后再试验就好了。
2. 本机Windows访问Ubuntu20.04文件系统
2.1 资源管理器直接访问

2.2 localhost地址访问
在文件资源管理器或者win+r中输入地址:\wsl.localhost\Ubuntu-20.04\xxx

2.3 samba共享文件夹(慎用)
在ubuntu中配置一个共享文件夹,让windows通过ip来访问,这个方法我没有试验成功,在重启samba服务的时候一直失败。
(1) 安装samba服务
shell
sudo apt update
sudo apt install samba
(2) 创建一个文件夹用来做共享,并赋予其777权限
shell
# mkdir <文件夹>
sun@DESKTOP-SL4VE95:~$ mkdir code && chmod 777 code
sun@DESKTOP-SL4VE95:~$ ls -l
total 0
drwxrwxrwx 1 sun sun 4096 Oct 22 00:00 code
(3) 修改samba配置文件
编辑文件/etc/samba/smb.conf,在文件末尾填入下面内容后保存退出。
shell
[sun] #samba user
comment = Samba server's share
path = /home/sun/code
available = yes
writeable = yes
security = share
browseable = yes
public = yes
valid user = sun
admin users = sun
create mask = 0644
force create mask = 0644
directory mask = 0755
sun\]:这是共享的名称,你可以在网络上访问该共享时使用。 comment:这是关于共享的描述或注释,显示给用户看。 path:这是共享的实际路径。 public:这表示该共享是否为公共共享,即是否允许匿名用户访问。 writable:表示是否允许用户在共享中创建、编辑和删除文件。 available:表示该共享是否可用。 browseable:表示该共享是否在网络上可以浏览。 valid users:当前 Ubuntu 系统的用户名。 admin users:提升权限
(4) 给samba用户设置密码
shell
sun@DESKTOP-SL4VE95:~$ sudo smbpasswd -a sun
[sudo] password for sun:
New SMB password:
Retype new SMB password:
(5) 重启samba服务
shell
sudo systemctl restart smbd.service
sudo systemctl enable smbd.service
注意这里可能会碰到下面错误,提示系统不是用的systemd作为初始化进程(PID 1)。
shell
sun@DESKTOP-SL4VE95:~$ sudo systemctl restart smbd.service
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
这个时候我们先用ps命令看一下是不是这么回事,可以看到1号进程是init,而不是systemd。这个是和ubuntu版本有关系的,ubuntu20.04没有用systemd作为初始进程。
shell
sun@DESKTOP-SL4VE95:~$ ps -A
PID TTY TIME CMD
1 ? 00:00:00 init
8 tty1 00:00:00 init
9 tty1 00:00:00 bash
112 tty1 00:00:00 ps
3 Ubuntu20.04访问本机Windows文件系统
在Ubuntu的文件路径/mnt/下默认映射了Windows磁盘分区。
