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盘是不合理的,有必要把它迁移到其它盘。
https://github.com/DDoSolitary/LxRunOffline/releasesLxRunOffline-vx.x.x-msvc.zip
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/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论