详细介绍:Windows10安装配置wsl+Ubuntu20.04环境

1. 安装wsl+ubuntu20.04

1.1 安装wsl

wsl --install

1.2 升级wsl

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

#查看所有可用的发行版
wsl --list --online
#安装ubuntu20.04
wsl --install -d Ubuntu-20.04

1.4 wsl 从系统盘迁移到D盘

由于wsl安装在系统C盘占系统内存,需要将WSL移植到内存空间充足的D盘。

(1) 首先查看一下虚拟机状态。

wsl -l -v

如果是running状态,先停止。

wsl --shutdown

(2) 备份ubuntu20.04到D盘

wsl --export Ubuntu-20.04 D:\Program\WSL\Ubuntu20.04\Ubuntu.tar

(3) 注销原 wsl 虚拟机

wsl --unregister Ubuntu-20.04

(4) 将ubuntu20.04备份压缩包安装到D盘

# 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系统用户。

# <发行版名称版本号> 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服务

sudo apt update
sudo apt install samba

(2) 创建一个文件夹用来做共享,并赋予其777权限

# 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,在文件末尾填入下面内容后保存退出。

[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用户设置密码

sun@DESKTOP-SL4VE95:~$ sudo smbpasswd -a sun
[sudo] password for sun:
New SMB password:
Retype new SMB password:

(5) 重启samba服务

sudo systemctl restart smbd.service
sudo systemctl enable smbd.service

注意这里可能会碰到下面错误,提示系统不是用的systemd作为初始化进程(PID 1)。

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作为初始进程。

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磁盘分区。
在这里插入图片描述

posted @ 2025-11-28 10:14  gccbuaa  阅读(152)  评论(0)    收藏  举报