跳至主要内容

(migrated)Windows 10: WSL + Ubuntu



Vmware用烦了,太麻烦,太占用资源,换个轻量点的:WSL + Ubuntu


一、关于WSL

    Windows Subsystem for LinuxWSL)是一个用于在本地运行linux二进制可执行文件(ELF格式)的兼容层。与虚拟机相比,wsl没有虚拟硬件的过程,而是直接在windows上虚拟一个linux内核,模拟linux系统调用,以运行linux执行文件。因此效率要比虚拟机高,但是它使用的是自己实现的init进程而不是发行版的init进程,并且几乎没有实现任何系统服务,因此只适用于软件的开发,而不是作为桌面环境或生产性的服务器。


二、安装WSL

1.  安装“适用于LinuxWindows子系统”

    (搜索)打开“启用或关闭Windows功能选中“适用于LinuxWindows子系统”,点击确认按钮,并根据提示重启电脑。

2.  使用Windows应用商店安装Ubuntu

(搜索)打开“Microsoft Store,在里面的搜索栏输入“Ubuntu,选择需要的版本进行安装。

当前最旧的版本为Ubuntu 18.04.5 LTS,最新的Ubuntu 22.04 LTS

有未标注版本号的Ubuntu,这是可以滚动升级的版本,使用do_release-upgrade命令可以直接滚动升级到最新版Ubuntu

说明:

1) 关于硬盘分区

windows的硬盘分区到加载到Ubuntu/mnt目录下如C盘在/mnt/cE盘在/mnt/e

2) 关于网络

    WSLUbuntu采用桥接模式连接网络ifconfig查看,可以看到另一个内网网段的地址,内外网均可访问。


三、初始使用WSLUbuntu

(搜索)打开“Ubuntu,即可进入Ubuntu界面。

第一次进入时,系统会要求增加一个用户,设置用户名和密码。


四、WindowsUbuntu的互操作

互操作性是指可以在windows中运行linux进程,也可以linux中运行windows进程,并且支持两个不同进程间的输入输出重定向

1.  windows中运行linux进程

windows中使用wsl [command]运行linux命令,需要注意:

linux命令使用当前目录作为工作目录;

对于windows文件,拥有运行WSLwindows用户权限;对于linux文件拥有登录用户权限;

文件路径使用linux格式;

例子(抄的,没太看明白,估计用不着)

C:\temp> wsl ls -la

<- contents of C:\temp ->

C:\temp> wsl sudo apt-get update

[sudo] password for username:

Hit:1 https://archive.ubuntu.com/ubuntu xenial InRelease 

Get:2 https://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]

C:\temp> wsl ls -la | findstr "foo"

-rwxrwxrwx 1 root root 14 Sep 27 14:26 foo.bat

C:\temp> dir | wsl grep foo

09/27/2016 02:26 PM  14 foo.bat

C:\temp> wsl ls -la > out.txt

C:\temp> wsl ls -la /proc/cpuinfo

1 root root 0 Sep 28 11:28 /proc/cpuinfo

C:\temp> wsl ls -la "/mnt/c/Program Files"

<- contents of C:\Program Files ->

2.linux中运行windows命令

    linux中运行windows命令,使用[binary name].exe(后缀不要省略),linux可以直接访问windows命令的原因在于linux共享了windowsPATH环境变量(我猜是linux中唯一的守护进程init做的)。需要注意:

    一般windows命令的工作目录为当前linux的工作目录。如果linux工作目录位于linux文件系统内,则windows的工作目录会改为Base.exe的工作目录(原因见2.4小节)。

    拥有与运行WSL拥有者一致的权限

    需要注意路径,看下面的例子

例子(也是抄的)

$ notepad.exe

$ ipconfig.exe | grep IPv4 | cut -d-f2

172.21.240.1

10.159.21.24

$ ls -la | findstr.exe foo.txt

$ cmd.exe /c dir

<- contents of C:\ ->

$#cmd 原生命名需要通过cmd.exe运行

$ cmd.exe /C dir

<- contents of C:\ ->

$ PING.EXE www.microsoft.com

Pinging e1863.dspb.akamaiedge.net [2600:1409:a:5a2::747] with 32 bytes of data:

Reply from 2600:1409:a:5a2::747time=2ms

$ notepad.exe "C:\temp\foo.txt"

$ notepad.exe C:\\temp\\foo.txt


五、Ubuntu更换国内镜像源并更新软件包

    Ubuntu的官方镜像列表在"Official Archive Mirrors for Ubuntu"里面有大学、组织、公司,由于往往只有大公司可能在全国布置多节点以提高访问速度,所以对比了下几家大公司(ping),最后腾讯云镜像最快,阿里云镜像略慢,华为云镜像不太稳定。

操作:

sudo sed -i 's#http://archive.ubuntu.com#https://mirrors.cloud.tencent.com#' /etc/apt/sources.list

sudo sed -i 's#http://security.ubuntu.com#https://mirrors.cloud.tencent.com#' /etc/apt/sources.list

sudo apt update

sudo apt upgrade



参考:

windows上的linux子系统 (WSL)

微软官方文档:介绍了安装、使用

Learn About Windows Console & Windows Subsystem For Linux (WSL):介绍了wsl原理

wsl wiki

Do not change Linux files using Windows apps and tools来自Rich的警告

wsl官方博客集合

Setting Up WSL with Graphics and Audio:对WSL理解的很好

Windows10上安装Ubuntu



评论

此博客中的热门博文

(migrated)联通(数码视讯)Q7电视盒子刷机成功, 但这Q7盒子是真的垃圾!

 一、破解方式       联通(数码视讯)Q7(以下简称Q7)有很多种破解方式:          a. 不拆机破解: 主要通过漏洞是装上可以装App的市场或其他工具          b. TTL破解: 连接TTL线,通过进入底层系统打开adb调试, 再通过其它工具安装App, 如:                        “北京联通盒子-数码视讯Q7-破解"             或者在底层的Linux系统里直接安装App.         c. 使用USB Burn方式刷机: 直接刷成别的系统,如:                   " 【2020年11月】北京联通数码视讯Q7破解教程"                          最后用的是这种方式进行刷机 。          相关的包下载地址:          1) 刷机固件:             链接: https://pan.baidu.com/s/18ukQVyQiScAeQPCReoBr0Q                    提取码:yp6t             里面有个压缩包: 20191218-Q7-4.4.2-root-twrp-...

P3TERX/OpenWrt-Newifi_D2的Actions编译配置文件简单分析

  链接 :  https://github.com/P3TERX/OpenWrt-Newifi_D2 Code 目录结构 : 根目录 : .github/ 目录 : .github /workflows / 目录 : 可能需要修改的文件 : .github /workflows /build-openwrt.yml:    文件及参数设置。 文件中可能修改的部分 : name: Build OpenWrt env:   REPO_URL: https://github.com/coolsnowwolf/lede   #  库地址    #  lean 的 https://github.com/coolsnowwolf/lede.git    # or     #  Lienol 的 https://github.com/Lienol/openwrt )   REPO_BRANCH: master           #  不同分支      #  以 Lienol OpenWrt 源码为例 ,  分支 dev-master  激进; dev-19.07 OpenWrt 官方平稳版; dev-lean-lede    lean 的源码   FEEDS_CONF: feeds.conf.default   CONFIG_FILE: open.config         #  编译配置文件  open.config   DIY_P1_SH: diy-part1.sh   ...

(migrated)联通(数码视讯)Q7盒子再刷Openwrt

说明:     联通(数码视讯)Q7盒子(以下简称Q7)做为一个电视盒子应该是没有什么可取之处, 但还可以做点别的, 比如, 做Openwrt盒子。     恩山论坛 的 flippy大侠 推出了 "55+、55+O S905x3、S922x、贝壳云、我家云、微加云等OP固件" , 是基于 amlogic(晶晨) 的S9xx系列arm SOC的openwrt固件, 现在支持包括基于 amlogic(晶晨)  S922x、S912、S905x、s905x2、S905x3、S905d等多款SOC的盒子。    但是,  flippy大侠 的固件说明中, 并未明确指出对S905L的支持, 而Q7用的SOC是S905L。    查到 维基Amlogic 说明中是这么说的:            Amlogic S905L: 与S905X相似,不同之处在于它支持HDMI 2.0b,但缺少VP9解码,摄像头接口和TS输入。     按这种说法, S905L可能是和S905X差不多, 支持S905X应该就能支持S905L, 那么Q7就应该能用。     推论如此, 然后在网上找到了一个实例,  恩山论坛 的 Len_大侠 在 "联通北京数码Q7,S905L电视盒刷成了openwrt系统路由器" 贴子里, 明确说明他已经成功完成了将Q7刷上了Openwrt, 虽然没有详细说明, 但从帖子里可以看出来大概是怎么做的, 那么, 就跟随 Len_大侠 , 让Q7废物利用吧。     为了简单化(偷懒😁), 选用的是使用 外接存储( U盘或TF卡) 启动 Q7的方式。     Q7自带TF卡槽 , 这倒是为数不多的优点之一。 另:       在 Github 上找了下 flippy大侠 的源码,  感觉应该是这个:  lllrrr/mknop       tuanqing/mknop 这个肯定是分支。 另外,  flippy大侠 还做了 Doc...