Windows10安装配置wsl+Ubuntu20.04环境

目录

  • [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磁盘分区。

相关推荐
暴躁的菜鸡8 小时前
Ubuntu安装向日葵
linux·运维·ubuntu
Aufidius9 小时前
虚拟机ubuntu存储空间不够如何扩容(扩充根目录)
linux·运维·ubuntu
h***936613 小时前
【MySQL数据库】Ubuntu下的mysql
数据库·mysql·ubuntu
zjj58714 小时前
ubuntu虚拟内存
linux·运维·ubuntu
Q6882388614 小时前
基于Matlab的LMI矩阵理论算法与矩阵不等式研究:待求矩阵在LMI区域内的优化设计与区间观...
ubuntu
北冥有鱼被烹17 小时前
【微知】Ubuntu中如何安装docker?
ubuntu·docker
会飞的土拨鼠呀18 小时前
运维工程师需要具备哪些技能
linux·运维·ubuntu
q***06291 天前
PHP进阶-在Ubuntu上搭建LAMP环境教程
开发语言·ubuntu·php
u***42071 天前
Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat
java·ubuntu·centos
爱学习的小道长1 天前
进程、线程、协程三者的区别和联系
python·ubuntu