首页 > 系统相关 >windows WSL2避坑指南

windows WSL2避坑指南

时间:2023-08-12 11:33:27浏览次数:37  
标签:windows 虚拟机 Ubuntu wsl 避坑 -- ubuntu WSL2

对于不想安装windows/linux双系统的朋友来说,wsl2是不错的选择,但在使用过程中可能会遇到一些问题,以下是本人踩过的坑,记录于此:

一、安装前提

1.1 检测windows版本

windows10 版本必须高于 内部版本 19041 ,检测方法 :ctrl+R,输入winver查看版本(参考下图),如果版本太低,建议先windows update升级到最新

1.2 启用windows相关功能

 

二、安装ubuntu

进入windows应用商店 ,搜索ubuntu,参考下图,一般选LTS的最新版本即可

,

安装过程中如果下载速度慢,可以打开“传递优化”,允许从其它电脑下载 ,类似于开启了P2P下载

安装完后,一定要检查下wsl安装的虚拟机(注:严格讲称为子系统更适合,但“虚拟机”叫习惯了,以下都用虚拟机这个叫法)版本是否为wsl 2

如果仍然是1,最简单的办法是删除掉,重新安装(删除方法参考下图)

当然对于先前已经安装了wsl 1的虚拟机,如果虚拟机里有重要文件,也可以用命令行手动将1升级为2,参考命令为

wsl --set-version Ubuntu-22.04 2

其中Ubuntu-22.04即为wsl -l -v中看到的虚拟机的名称,大家根据实际情况替换

 

三、填坑之旅

3.1 磁盘空间问题

默认是安装在C盘的,随着虚拟机里软件越装越多,很快C盘的空间就吃紧了,而且比较坑的是,就算在虚拟机里把文件给删除了,空间也不会被释放。

解决方案:

  • 先找到Ubuntu虚拟机磁盘文件的路径,建议安装search everything,搜索ext4.vhdx

默认位置类似:C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx

  • powershell下输入
# 先关闭所有虚拟机
wsl --shutdown

# 进入磁盘管理 
diskpart

# 选择虚拟磁盘文件
select vdisk file="刚才search everything里找到的ext4.vhdx文件路径"

# 压缩文件
compact vdisk

# 压缩完成后卸载磁盘
detach vdisk

 

3.2 迁移到其它盘

压缩完后,用着用着,文件还是会继续变大,最好是迁移到其它盘

# 先关闭
wsl --shutdown

# 导出Ubuntu-22.04文件(注:这里的Ubuntu-22.04即wsl -l -v中看到的虚拟机名称)
wsl --export Ubuntu-22.04 e:\WSL2Ubuntu22.04.bak

# 注销原来的虚拟机
wsl --unregister Ubuntu-22.04

# 重新导入(注:e:\wsl目录要存在)
wsl --import Ubuntu-22.04 e:\wsl e:\WSL2Ubuntu22.04.bak --version 2

#设置启动的默认用户(注:这里的XXX即为默认用户名,如果这一步不做,每次都是以root身份启动)
ubuntu2204 config --default-user XXX

重新启动就好了

3.3 windows与ubuntu之间复制文件的坑

WSL2安装完以后,windows主系统中,资源管理器里能看到ubuntu中的文件夹,这可太方便了

powershell命令行中也能直接访问

然后直接把windows主系统中的1个大文件,直接复制到ubuntu中试了下,却发现慢到怀疑人生,比直接从网上下载都慢。

正确姿势:

如果ubuntu中要访问windows主系统中的文件,不用复制1份,直接用 "/mnt/盘符",就能访问

如果嫌windows中的路径太长,可以在ubuntu中创建1个链接

ln -s /mnt/e/document/  /home/jimmy/document

这样就把windows主系统e盘的document目录,映射到/home/jimmy/document下了

 

3.4 内存大小设置

WSL2里跑一些大模型时,会使用较多内存,默认情况下WSL2虚拟机,只分配windows 50%或8G内存(二者中取最小值)

可以 在windows主系统的%userProfile% 目录下,创建1个名为.wslconfig的文件 

文件内容如下:

[wsl2]
processsors=4
memory=20GB
swap=4GB

保存后,wsl --shutdown 关闭,等8秒,然后再重新启动ubuntu,验证是否生效

 

参考文章:

解决删除文件后 WSL2 磁盘空间不释放的问题 

拯救被WSL占满的C盘 

WSL 中的高级设置配置 | Microsoft Learn

WSL_03 WSL2 从C盘迁移到D盘_wsl迁移到d盘

标签:windows,虚拟机,Ubuntu,wsl,避坑,--,ubuntu,WSL2
From: https://www.cnblogs.com/yjmyzz/p/wsl2-tutorial-1.html

相关文章

  • MySQL运行错误:‘mysql‘不是内部或外部命令,也不是可运行程序,Windows添加环境变量
    1、Windows电脑安装MySQL5.7,打开cmd出现“'mysql'不是内部或外部命令,也不是可运行的程序或批处理文件。”2、出现以上情况基本断定为没有安装mysql或者是安装了mysql没有配置环境变量,下面进行配置环境变量找到mysql的安装目录,可以windows+r然后输入:services.msc3、找到my......
  • Windows11安装Docker
    一、前提条件:1、Hyper-v2、WSL2 二、下载网址: Docker:AcceleratedContainerApplicationDevelopment DownloadDockerDesktop|Docker 三、执行安装包:选中安装包,右键——以管理员的身份运行  默认两个勾选  关闭并重启电脑。打开桌面快捷键  ......
  • WSL2 Cannot connect to the Docker daemon [已解决]
    如果你已经在网上找了很多方法了,那建议你再试试这个。1,进入WSL2,去除WSL1遗留的环境变量unsetDOCKER_HOST2,设置Docker-Desktop指定运行的wsl2环境,默认是docker-desktop3,再进入wsl看看吧,goodluck......
  • Windows中实现类似tail -f 的命令
    1.说明需要在PowerShell中使用,Shift+鼠标右键,即可出现打开PowerShell窗口的命令,如图:打开之后是这样的2实时查看文件命令类似于Linux中的"tail-f<文件名>"的命令2.1语法结构完整写法get-content[-wait][-encoding字符编码][File]缩写,与完整写法效果是一样的gc[-wait][-en......
  • JAVA 内存详解 (理解 JVM 如何使用 Windows 和 Linux 上的本机内存)
    级别:中级AndrewHall ,软件工程师,IBM2009年5月11日Java™堆耗尽并不是造成 java.lang.OutOfMemoryError 的惟一原因。如果本机内存 耗尽,则会发生普通调试技巧无法解决的 OutOfMemoryError 。本文将讨论本机内存的概念,Java运行时如何使用它,它被耗......
  • Debug Assertion Failed! Program: C:\Windows\SYSTEM32\mfc140ud.dll
    新建C++ MFC项目多文本对话框的模板,运行出错。解决办法:这是由于DockControlBar(&m_wndToolBar);引起的异常。在头文件MainFrm.h中重新定义  CMFCToolBar m_wndToolBar; 类型DockControlBar(&m_wndToolBar)改为DockPane(&m_wndToolBar);再次运行就不会出错了。......
  • Windows环境下重启jar服务bat代码
    问题:在Windows环境下部署java的jar包,若有多个服务同时启动,很难找到相应服务重启。每次都重启全部服务很麻烦。应用场景大多用于部署测试。适用:jar部署,war部署不适用。解决方案:找到相应jar服务关闭并重启。注意:1、正确设置端口,jar服务运行的端口;2、正确设置jar文件地址@echo......
  • windows server对新增硬盘的联机及设置ntfs
    windowsserver对新增硬盘的联机及设置ntfs,记录#获取所有脱机或在线但没有分区的磁盘$disks=Get-Disk|Where-Object{($_.OperationalStatus-eq'Offline'-or$_.OperationalStatus-eq'Online')-and$_.PartitionStyle-eq'Raw'}foreach($diskin$disks){......
  • 一款Windows平台开发管理神器
    今天为大家推荐一款Windows平台开发管理神器--Scoop!她是一款Windows平台的包管理工具,类似于Debin系列的APT,RPM系列的YUM。有了Scoop妈妈再也不用担心重装系统了!安装要求Windows7SP1+/WindowsServer2008+PowerShell5(或更高版本,包括PowerShellCore)和.NETFramework4......
  • Windows 11下安装金蝶云星空超详细图文说明(K3 Cloud 8.1企业版)
    安装目录1、官网下载安装包并安装2、创建管理中心3、创建业务中心4、下载补丁包5、执行特定版本补丁包6、下载bos  金蝶云社区使用指南https://vip.kingdee.com/article/69145827754457344?channel_level=kdclub&utm_campaign=%E7%94%A8%E6%88%B7%E5%BC%95%E5%AF%BC&u......