文章

Windows10通过应用商店安装Ubuntu

本文主要介绍 Windows10 下部署 Ubuntu 的一种方法——借助 Microsoft Store 部署。由于科研需要,一些程序和数据需要在 linux 环境下进行操作,在不安装双系统和部署虚拟机的前提下,尝试本方法进行 Ubuntu 的安装。


1. 环境配置

首先,启用开发者模式:菜单栏打开设置——点击更新和安全——启用开发人员模式(时间会有点长)

其次,更改系统功能:必须先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发版。

以管理员身份打开 PowerShell 并运行

1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

或者通过控制面板进行界面配置(需要重启)

alt text

2. 下载和安装

打开 Microsoft Store,并选择你偏好的 Linux 分发版。

选择好版本后,选择「获取」,然后点击「安装」。如果多次点击并无反应,可以等待一定时间后返回到Microsoft Store首页,再次前往该分发版的 Linux 应用页面,该应用可能已经在后台安装完毕。

alt text

alt text

点击「启动」,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。然后,需要为新的 Linux 分发版创建用户帐户和密码。(注意,linux 系统中,输入密码时默认时不显示任何内容的)

alt text

提示 Installation successful! 表明系统安装完毕。

通过 Windows Store 安装的 Linux 子系统,其存放路径位于

1
C:\Users\[YourUserName]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs

其中 [YourUserName] 是个人的电脑用户名,CanonicalGroupLimited.XXX 是相应的子系统版本。通过上述路径可以方便的进行文件管理。

3. 注意事项

  • WslRegisterDistribution 失败并出现错误 0x8007019e
    • 未启用“适用于 Linux 的 Windows 子系统”可选组件:
    • 打开“控制面板” -> “程序和功能” -> “打开或关闭 Windows 功能”-> 选中“适用于 Linux 的 Windows 子系统”,或使用本文开头所述的 PowerShell cmdlet。
  • 安装失败,出现错误 0x80070003 或错误 0x80370102
    • 请确保在计算机的 BIOS 内已启用虚拟化。 有关如何执行此操作的说明因计算机而异,并且很可能在 CPU 相关选项下。
  • 尝试升级时出错:Invalid command line option: wsl --set-version Ubuntu 2
    • 请确保已启用适用于 Linux 的 Windows 子系统,并且你使用的是 Windows 内部版本 19041 或更高版本。 若要启用 WSL,请在 PowerShell 提示符下以具有管理员权限的身份运行此命令:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux。 可在此处找到完整的 WSL 安装说明。
  • 由于虚拟磁盘系统的某个限制,无法完成所请求的操作。虚拟硬盘文件必须是解压缩的且未加密的,并且不能是稀疏的。
  • 无法将词语“wsl”识别为 cmdlet、函数、脚本文件或可运行程序的名称。

4. 基本操作

对 linux 子系统的操作可基于 windows subsystem for linux (wsl) 来进行。

Windows键+R,输入 cmd 回车,打开命令行窗口。输入wsl -l,可以看到我系统里装的 linux 系统发行版本。输入wsl --version 可以看到版本信息和命令行参数一览。

4.1. 备份、删除和还原

备份子系统非常简单,但一定要先停止子系统之后再备份

1
wsl --export Ubuntu-20.04 c:\XXX\Ubuntu-18.04-20200726.tar

待完成即可。备份成功后,子系统会被打包成命令中指定名称的tar文件。

删除子系统也是一个命令即可:

1
wsl --unregister Ubuntu-12.04

还原子系统。 删除了没关系,刚才做了备份,也是一个命令还原:

1
wsl --import Ubuntu-20.04 c:\AAA c:\XXX\Ubuntu-20.04-20200726.tar

这里注意指定还原的路径。成功后,子系统又回来了,可以用wsl -l确认一下。

4.2. 切换数据源

在 Ubuntu 下我们可以通过 apt-get 命令 很方便的安装 / 卸载软件,切换数据源为国内的镜像站点速度会变快。编辑数据源配置文件

1
vi /etc/apt/sources.list

继续按enter键进入真正的vi编辑页面

科普: vi编辑器一共有三种模式: 命令模式(command mode) 插入模式(Insert mode) 底行模式(last line mode) 命令模式下我们只能控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode等;插入模式下可以做文字输入,按「ESC」键可回到命令行模式;底行模式下,可以将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。

当我们进入vi编辑器的时候默认是命令行模式,这时如果想编辑内容,就输入 i 命令就可以了。现在我们要把镜像源改为阿里的,所以插入如下内容:

1
2
3
4
5
6
7
8
9
10
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

接着按「ESC」退会命令行模式,输入命令:

1
: wq!

保存退出就好了。接着输入命令

1
sudo apt-get update

然后输入密码,回车,更新配置就可以了,飞速!

如果命令行修改文件不习惯(linux下就是这样),可在windows下直接找到文件,用记事本打开后修改保存。文件路径在比如

1
C:\Users\[YourUserName]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\apt

4.3. Windows访问Linux文件

通过Windows Store 安装的 Linux 子系统位于

1
C:\Users\[YourUserName]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs

也可以运行子系统后,输入

1
explorer.exe .

在资源管理器种打开相应的文件夹。

4.4. Linux访问Windows文件

在bash种输入以下命令,即为windows系统下

1
cd /mnt

接着就是不断的cd进入到你所需的目录下。比如我们进入系统后 dir 或者 ls 一下就可以看到目前 Windows 系统的三个盘符(因人而异)。cd 就可以逐级进入文件夹。

image-20200726135034927

4.5. 解压tar文件

在 Linux 系统种,通过 tar 命令解压 tar 压缩包。

image-20200726141328495

5. 参考文献

[1] Microsoft. 适用于 Linux 的 Windows 子系统安装指南 (Windows 10).

本文由作者按照 CC BY 4.0 进行授权