Windows安装WSL Ubuntu子系统二三事儿。。。

简介

WSL是Windows10推出一个重大功能之一,它把多个Linux发行版(如ubuntu、Debian)都做成了应用商店下的APP,也就是说可以把Linux系统当作Windows的APP来使用,此功能就称为WSL,即Windows子系统。

WSL依赖于Windows的虚拟系统Hyper-v,实际上WSL就运行于虚拟机之中。此虚拟机不同于VM或VBOX,它是一个全局虚拟机,在此虚拟机上的OS可以直接运行于Windows上,像APP一样和OS直接交互;而VM或VBOX则需要运行各自的虚拟环境,然后OS运行于它们的环境之中,相比WSL,它们是一个局部的虚拟机。

WSL出了两个版本,第一个版本称为WSL,第二个版本称为WSL2,也是目前最新的版本。

安装

早期的时候,安装WSL需要按照微软的教程手动一步一步搭建,但现在只需一条指令便可完成安装,省了不少事儿!

安装命令:

wsl --install

该命令需要在PowerShell下执行,默认安装最新版本Ubuntu。

注意,由于要用到虚拟机,确保BIOS有开启虚拟技术!

如果需要安装其它的,可用如下命令查看支持的版本:

wsl --list --online

然后再按照提示安装,如安装Ubuntu-18.04:

wsl --install -d Ubuntu-18.04

首次安装需要初始化环境,命令执行完后电脑需要重启一次。重启后按Windows键即可看到ubuntu "APP"显示在菜单上了,点击即可打开安装,过程中会提示设置用户名和密码。完成后会生成一个VHDX虚拟磁盘文件,ubuntu系统便存储于此。

 系统迁移

默认情况下,WSL是把系统安装在C盘的,随着子系统内安装的软件越来越多,占用的空间会越来越大,所以装在c盘是不合理的,有必要把它迁移到其它盘。

我们可以使用LxRunOffline工具来迁移WSL到其它磁盘分区。

LxRunOffline的下载链接:https://github.com/DDoSolitary/LxRunOffline/releases。在Win10 PowerShell运行需要下载LxRunOffline-vx.x.x-msvc.zip版本,解压到任意目录即可使用。

迁移过程如下:

1.获取子系统发行版名称,执行:

PS C:\Users\xxx\Desktop> .\LxRunOffline.exe list
Ubuntu-20.04

2.执行迁移命令,如迁移到D:\Ubuntu-20.04

.\LxRunOffline.exe m -n Ubuntu-20.04 -d D:\Ubuntu-20.04

等待执行完成即可,如果VHDX磁盘文件比较大,花费的时间会比较久。

若出现以下错误,使用此版本:https://ddosolitary-builds.sourceforge.io/LxRunOffline/LxRunOffline-v3.5.0-11-gfdab71a-msvc.zip

$ .\LxRunOffline.exe move -n Ubuntu -d D:\wsl\Ubuntu
[ERROR] Couldn't set the case sensitive attribute of the directory "\\?\C:\Users\username\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\".
Reason: Indicates that the directory trying to be deleted is not empty.

WSL GUI

执行完以上步骤后算安装完毕了,此时的Ubuntu是一个没有任何界面的控制台。

Windows11

Windows11原生支持运行Linux子系统带有界面的软件,如文本编辑器Gedit,文件管理器Nautilus等,安装这些软件后可以直接显示在Windows菜单下,点击即可运行。

安装GEdit:

sudo apt install gedit

安装Nautilus

sudo apt install Nautilus

Nautilus没有自带图标,打开后各种文件夹和文件是没有图标的,需要手动安装:

sudo apt install 'gnome-icon-theme*'

Windows10

目前Windows10 正式推送的版本不支持运行GUI软件,除非更新到最新体验版本(那还不如直接升WIN11??)。

尽管如此,还是有办法体验GUI的。原理是在子系统下安装一个远程服务器 xrdp 和桌面 xfce4 ,然后就可以使用Windows远程访问子系统(可以当作是一个本地的Linux服务器),原理和我们访问网站差不多,这样就可以使用GUI了,教程参考:https://blog.csdn.net/weixin_45579994/article/details/112381567

其它

1.导入WSL VHDX文件

前几天重装系统,忘记把WSL导出来了,只有一个VHDX文件。按照WSL的说明,要导入一个已有的子系统需要先把子系统导出来保存成一个tar压缩文件,然后再把tar文件导入。而我没有导出,那该怎么办呢?

我想到了一个替换法,就是在新系统重新安装Ubuntu,然后把新装生成的VHDX文件替换成我之前装好的VHDX文件。按照我的猜想操作了一遍,结果确实可行(正常安装ubuntu->迁移->替换VHDX)。要注意的是,替换前要使用wsl --shutdown关闭子系统,否则会被占用,导致无法替换。

2.子系统拒绝访问

迁移过的系统可能会出现一个问题,那就是打开的时候会出现拒绝访问的情况,解决方法是使用管理员权限,如果依然出现“拒绝访问”,可在终端执行:

wsl --shutdown

然后再次启动即可!

3.Windows与子系统双向访问

1.Windows访问子系统

子系统运行时会自动被以网络的方式共享出来,可以通过共享路径去访问,地址为:

\\wsl$

2.子系统访问Windows

Windows磁盘分区会自动被挂在到/mnt目录下,每个分区盘符会被当作一个文件夹

4.中文设置

有的系统没有带中文语言包,遇到中文字符便无法显示,需要手动下载,可执行如下命令:

sudo apt install fonts-noto fcitx fcitx-pinyin

执行如下命令,选择zh_CH.UTF-8,即可默认语言为中文

sudo dpkg-reconfigure locales

5.子系统安装到非系统盘

a. 首次安装先执行 wsl --install 完成环境初始化,重启后将ubuntu卸载(按Windows键搜ubuntu,右键即可卸载)。若已经装过,忽略这一步。

b. 打开https://docs.microsoft.com/en-us/windows/wsl/install-manual下载需要安装的子系统。

c. 该APPX文件是一个安装包,也是一个压缩文件,可使用7-zip打开,将 install.tar.gz ubuntuxxx.exe 解压出来,放到要安装的路径,双击exe文件即可安装,VHDX的文件便会在同目录下生成。注意不要直接运行APPX,否则还是会安装到系统盘!

版权声明:
作者:bin
链接:https://ay123.net/notebook/experience/1328/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
Windows安装WSL Ubuntu子系统二三事儿。。。
简介 WSL是Windows10推出一个重大功能之一,它把多个Linux发行版(如ubuntu、Debian)都做成了应用商店下的APP,也就是说可以把Linux系统当作Windows的APP来使……
<<上一篇
下一篇>>
文章目录
关闭
目 录