Windows 10 2004 安装配置 WSL2 Ubuntu 20.04并安装Docker(解决VMware冲突问题)

1. 安装说明

Windows 10 2004 及以上版本才开始支持WSL2 ,之前的版本只能使用 WSL1,两者的差距还是比较大的,比如说WSL2 可以安装 Docker,而 WSL1 不可以,WSL2 的性能比 WSL1 的性能要强很多,建议升级系统使用 WSL2

image-20200719175316184
请慎重考虑

  • WSL2 底层还是使用 Hyper-V ,如果你的电脑安装了VMware 且版本小于 15.5.5 的,会导致VMware无法使用, 解决方法见文章末尾!!
  • 如果你的电脑安装使用一些安卓模拟器 ,会发现WSL和安卓模拟器冲突,轻则安卓模拟器无法运行,重则电脑蓝屏(预览版绿屏)!!!(推荐使用BlueStacks模拟器,暂时发现唯一兼容Hyper-V的,见文章末尾)

2. 开启 WSL

开启方式有两种,效果其实都是一样的,选择其中一种即可。

方式一
  1. 在搜索框搜索 启用或关闭 Windows 功能,点击进入

image-20200719180028181

  1. 勾选 适用于Linux的Windows子系统虚拟机平台 两项,点击确定,安装完成重启电脑

image-20200719180243484

方式二

打开 PowerShell 以管理员方式运行,运行如下命令,打开 虚拟机平台功能

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

再运行下面命令,打开 适用于Linux的Windows子系统 功能

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

注:同样需要重启电脑才能完成安装

3. 安装 WSL2 独立内核

也是两种方式,在线安装和离线安装,自由选择

方式一:在线安装

PowerShell 运行如下命令进行安装

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
方式二:离线下载安装

点击 链接 到下载页面,页面如下,点击红框链接即可下载,下载完成后直接运行程序,一路Next,最后Finish即可image-20200719180924217

4. 替换WSL2 内核

打开 PowerShell 或者CMD,运行下面命令

wsl --set-default-version 2

5. 安装Linux系统

安装Linux也是有两种方式,各有利弊,根据自己的情况选择!

方式一:微软商店安装

  • 无脑简单
  • 安装到C盘,可以迁移,但是很费劲,C盘比较充裕的可以考虑

方式二:下载安装包进行离线安装

  • 比商店安装稍稍复杂
  • 可以安装到任意盘
方式一:微软商店下载

打开微软商店,搜索 Linux

image-20200719181738454

一般选择Ubuntu的比较多

image-20200719181835867

选择对应的版本安装即可,安装完成在开始菜单中可以看到安装的程序

在这里插入图片描述

点击即可进入

image-20200719182508418

至此,Ubuntu安装成功

方式二:离线下载安装

点击 下载链接

image-20200719182818533

下载自己需要的版本

下载完成后将文件拷贝到自己要安装的目录中去(最好不要带中文),将下载文件的后缀名改为 .zip

解压文件,点击 exe 程序即可安装ubuntu

image-20200719183052774

安装程序会要求你创建 Unix 的用户名和两次密码,自己输入后回车即可完成安装

至此,使用离线安装的方式也完成

6. 替换Ubuntu的安装源

切换到 /etc/apt 目录下

cd /etc/apt

备份稍后改动的文件

sudo cp sources.list sources.list.bak

编辑文件

sudo vi sources.list

源文件大概是这个样子

image-20200719184114477

输入vi命令清空所有文本

ggdG

复制下面的内容,回到ubuntu命令行,按 i 进入插入模式,点击右键粘贴复制内容

# 清华大学源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

按 Esc键退出插入模式,输入 :wq 保存并退出

image-20200719184525972

退出后,运行下面命令

sudo apt-get update && sudo apt-get upgrade

等待更新完成即可!

7. 安装Docker

首先安装需要的依赖

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common

添加信任 Docker 的 GPG 公钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加软件仓库

sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

更新安装源

sudo apt-get update

安装 Docker

sudo apt-get install -y docker-ce

添加当前用户到Docker用户组中

sudo adduser $USER docker

重启电脑

进入Linux子系统后,开启Docker服务

sudo service docker start

测试运行

docker run hello-world

image-20200719185404582

Docker安装成功!!!

附1:解决VMware冲突问题

点击链接下载15.5.6版本的VMware
下载完成后点击安装包选择安装

  • 如果你之前已经安装过,安装程序会自动识别出,无需再次激活,一步一步点到最后选择升级即可
  • 如果你之前没有安装过或者失效的,自行百度,支持正版

升级或安装成功后,VMware即可正常运行!
在这里插入图片描述
在这里插入图片描述

附2:安卓模拟器解决方案

测试过雷电模拟器(无法运行,加载到50%就失败),夜神(蓝屏),其他没有测试
推荐安装 BlueStacks蓝叠模拟器的Hyper-V兼容版本,
下载链接

安装步骤:

  • 在启用或关闭Windows功能中 启用Hyper-V和虚拟机平台功能
  • 右键 以管理员身份运行安装包

附3:VMWare可以启动,启动虚拟机后报错

VMWare使用Hyper-V内核后,如果打开虚拟机出现下错误(一般是虚拟镜像是win系列的系统):
在这里插入图片描述
解决方法
点击编辑虚拟机设置
点击 处理器 右侧 虚拟化引擎位置,将第一个取消掉,保存设置,重新尝试运行虚拟机
在这里插入图片描述
正常开机
在这里插入图片描述

<think>好的,我现在需要解决用户遇到的WSL2无法附加虚拟磁盘的问题,错误提示是“另一个程序正在使用此文件,进程无法访问”,错误代码是ERROR_SHARING_VIOLATION。首先,我要分析这个错误可能的原因。 用户提到文件路径是D:\WSL2\wsl-ubuntu20.04\ext4.vhdx。这个错误通常意味着该VHDX文件被其他进程锁定,导致WSL2无法访问。可能的原因包括: 1. **WSL实例未完全关闭**:虽然用户可能已经尝试关闭WSL,但有时候后台进程可能仍在运行,导致文件被占用。 2. **第三方软件干扰**:比如杀毒软件、备份工具或文件资源管理器(如打开了包含该文件的文件夹)可能锁定了文件。 3. **Hyper-V或虚拟机管理程序冲突**:其他使用Hyper-V的虚拟机或者Docker等工具可能占用了资源。 4. **文件系统错误**:磁盘错误或文件损坏也可能导致访问问题。 接下来,我需要考虑解决方案。首先,应该确保所有WSL实例完全关闭。用户可能已经运行了wsl --shutdown,但可能需要检查是否有残留进程。然后,检查是否有其他程序正在使用该文件,比如资源监视器或者Process Explorer。如果发现锁定进程,结束它。此外,第三方软件可能需要暂时禁用,特别是杀毒软件或云存储服务。 如果问题仍然存在,可能需要手动卸载VHDX文件,使用diskpart命令。另外,检查Hyper-VDocker的状态,确保它们没有占用该文件。最后,如果文件损坏,可能需要从备份恢复或重新创建实例。 需要提醒用户注意,操作时可能需要管理员权限,且在修改系统设置前建议备份数据。另外,使用diskpart时要小心,避免误操作其他磁盘。可能还需要指导用户如何正确使用资源监视器来查找锁定进程,或者如何临时禁用杀毒软件。 在回答时,结构要清晰,分步骤说明,每个步骤的具体命令操作要准确,同时用中文简洁表达。需要确保用户能够逐步排查问题,避免遗漏可能的解决方法。</think>### 错误原因解析 错误 `ERROR_SHARING_VIOLATION` 表明系统检测到 **目标 VHDX 文件被其他进程锁定**,导致 WSL2 无法挂载。常见原因包括: 1. WSL 实例未彻底关闭,残留进程占用文件。 2. 第三方软件(杀毒、备份工具、资源管理器等)正在访问该文件。 3. Hyper-V 虚拟化层或 Docker Desktop 等依赖 Hyper-V 的程序冲突。 --- ### 逐步解决方案 #### 步骤 1:强制关闭所有 WSL 进程 1. **以管理员身份运行 PowerShell 或 CMD**,执行: ```cmd wsl --shutdown ``` - 此命令会终止所有 WSL 相关进程。 2. **检查 WSL 状态**: ```cmd wsl --list --running ``` - 若输出为空,说明已关闭;若仍有实例运行,重启电脑强制释放锁。 --- #### 步骤 2:排查文件占用进程 1. **使用资源监视器**: - 按下 `Win + R`,输入 `resmon` 回车。 - 在 **“CPU” 标签页 → “关联的句柄” 搜索栏** 输入 `ext4.vhdx`。 - 发现占用进程后,右键结束任务(如 explorer.exe、杀毒软件等)。 2. **通过 PowerShell 查找进程**: ```powershell Get-Process | Where-Object { $_.Path -like "*ext4.vhdx*" } ``` - 若找到进程,记录 PID 后通过 `Stop-Process -Id <PID> -Force` 强制终止。 --- #### 步骤 3:解除 Hyper-V 或虚拟化冲突 1. **关闭 Docker Desktop 或其他虚拟机软件**(如 VMware)。 2. **重启 Hyper-V 服务**: ```cmd net stop vmms net start vmms ``` --- #### 步骤 4:手动卸载 VHDX 文件(高风险操作需谨慎) 1. **以管理员身份运行 CMD**,执行: ```cmd diskpart select vdisk file="D:\WSL2\wsl-ubuntu20.04\ext4.vhdx" detach vdisk exit ``` - 此操作会强制解除文件占用,但可能需重启后生效。 --- #### 步骤 5:临时禁用第三方软件 1. 暂时关闭杀毒软件(如 360、火绒、Defender 实时保护)。 2. 暂停云同步工具(如 OneDrive、Dropbox)。 --- ### 补充说明 - **文件路径权限问题**: 检查 `D:\WSL2` 目录权限,确保当前用户有完全控制权(右键属性 → 安全 → 编辑)。 - **备用方案**: 若问题持续,可尝试将 VHDX 文件复制到其他位置(如 `D:\WSL2-new`),然后修改注册表路径: ```reg HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{分发版ID}\BasePath ``` 修改为新的路径后重启 WSL。 --- ### 操作后验证 1. 尝试启动 WSL: ```cmd wsl -d Ubuntu-20.04 ``` 2. 若仍失败,建议备份数据后重建实例: ```cmd wsl --unregister Ubuntu-20.04 wsl --import Ubuntu-20.04 D:\WSL2\new D:\backup.tar ```
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java.util.Man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值