title: ArchLinux On Win10
date: 2017-04-03 23:04:25
tags: [Windows,ArchLinux,分享]


折腾起因

  • 清明期间无聊,又把电脑升级到Win10和Ubuntu双系统,这次为什么没有是Arch+Win10呢,因为Ubuntu出17.04了,常新一下,估计这一段时间我会使用Ubuntu代替Arch工作(原Arch之前备份了)。
  • Win10还是要玩子系统的,默认子系统是Ubuntu,我钟爱于Arch,所以这次把子系统换成Arch玩玩,Github也有相关的项目(在文章最后我给分享给大家),本文也相对参考了,蘭陵N散記.所以 关键词:分享

WSL介绍

  • Windows Subsystem for Linux是一个为在Windows 10上能够原生运行Linux 二进制可执行文件(ELF 格式)的兼容层。 WSL提供了一个微软开发的Linux兼容内核接口(不包含Linux代码)。它包含用户模式和内核模式组件,主要是由如下组成:

    • 用户模式会话管理器服务,处理Linux实例的生命周期;
    • Pico(可编程输入输出)提供驱动程序(lxss.sys,lxcore.sys),通过转换的Linux系统调用模拟Linux内核;
    • 承载未经修改的用户模式Linux的Pico进程,例如/bin/bash。
  • 在用户模式Linux程序和Windows内核组件之间,通过将未修改Linux程序放入Pico进程,我们让Linux系统调用被引导至Windows内核。lxss.sys和lxcore.sys驱动转换Linux系统调用进入NT API并模拟Linux内核。
    Bash on Ubuntu on Windows就是WSL的具体应用。它是由微软与Canonical公司合作开发,目标是使纯正的 Ubuntu 14.04镜像能下载和解压到用户的本地计算机,并且镜像内的工具和实用工具能在此子系统上原生运行。在最近的14959更新中,Ubuntu已是默认为16.04。

Bash on Ubuntu on Windows

  • 作为一名ArchLinux忠实爱好者(唉,原作者跟我一样呀),自然想在WSL上运行ArchLinux。参考了一些网上的资料,我已把Win10升级到14955,首先还是先得安装Bash on Ubuntu on Windows:

    • 开启开发人员模式:设置-更新与恢复-针对开发人员-开发人员模式
    • 开启WSL子系统:控制面板-程序和功能-启用或关闭 Windows 功能-适用于 Linux 的 Windows 子系统(beta)
    • 安装Bash on Ubuntu on Windows: 命令提示符(cmd)-输入bash-按提示完成安装
  • 由于需要下载Ubuntu需要从应用商店下载,在天朝的网络,可能会比较慢,甚至会连接不上,我就折腾好久。并且它居然没有断点续传,好几次下载到70%多,就断开了,真让人受不了。
    由于后续把Ubuntu替换成Archlinux,需要使用到Archlinux的roofs。squashfs-tools工具是用于解压sfs文件的,所以先把Ubuntu的更新源替换成国内的,比如mirrors.163.com/ubuntu或mirrors.aliyun.com/ubuntu。
$ sudo apt-get update
$ sudo apt-get install squashfs-tools

Arch On Win10

  • 首先从http://mirrors.aliyun.com/archlinux/iso/latest/下载最新的ArchISO。
    从ArchISO中提取出/arch/x86_64/airoot.sfs文件放在Bash on Ubuntu on Windows 能读取的目录下。WSL系统会把Windows的磁盘挂载到/mnt目录下,如D盘则是/mnt/d。
    在Ubuntu中把airoot.sfs解压,建议在当前Ubuntu的用户Home目录下执行:
$ sudo unsquashfs airoot.sfs
  • 然后把Bash窗口关掉,通过Windows的文件资源管理器进行到C:\Users<用户名>\AppData\Local\Lxss文件夹。由于AppData与Lxss都是隐藏目录,可以在地址栏上直接输入路径就可以直接进入,否则需要在文件夹选项 中把“隐藏受保护的操作系统文件”选项取消才能看到。
  • 其中的rootfs文件夹就是Linux中的/,先把原有的rootfs修改其它名称备份,还把之前airoot.sfs解压的squashfs-root直接剪切到Lxss,重命名为rootfs。注意,squashfs-root不能在Windows下拷贝到Lxss\rootfs,由于在WSL与Windows对文件读写操作还是有区别,Windows下拷贝可能存在丢失文件。
    先在命令提示符(cmd)用lxrun /setdefaultuser root 把默认的用户换成root。再输入bash进入Linux。
    这个我们就把Ubuntu替换成Archlinux。我们就可以像使用Archlinux一样来在WSL中使用Archlinux。比如创建新的用户,设置locale,替换Archlinux的更新源。不过由于我最早是在14396版本中使用WSL,还是在使用过程遇到了几个问题:
    无法chroot,解决办法:
    升级到14936或以后的Insider Preview版本。
    Archlinux无法更新或安装新的软件,由于keyringVerifying失败,解决办法:
# pacman-key --init
# pacman-key --populate

locale-gen失败(找不到UTF-8的charmaps文件),解决办法:

# cd /usr/share/i18n/charmaps
# tar zxvf UTF-8.gz
# locale-gen

编译Go语言程序失败(估计是系统调用没有实现,没有proc),解决办法:
升级到14959或以后的Insider Preview版本。

WSL 终端

windows下命令提示符(cmd),输入bash可以直接进入WSL,但它的使用体验无法跟Linux中的终端相比。好在网上已有同学先贡献了终端模拟器,都是基于mintty,总算能找回一些在纯Linux中使用终端的感觉。若使用下msys2的同学应该对它比较熟悉。

  • https://github.com/mintty/wsltty
  • https://github.com/goreliu/wsl-terminal

ArchLinux On Win10相关推荐

  1. Win10修复Linux引导

    我遇到的问题 原本我的电脑是通过systemd-boot引导ArchLinux和Win10的,但是由于Win10创意者更新之后,启动管理器被设置为Win10的了,开机直接跳过systemd-boot, ...

  2. win10 linux uef系统,win10 uefi 模式装archlinux

    如果你的win10不是uefi启动模式,请看https://www.phpstu.com/operatingsystem/783 把系统转成 uefi模式(无损不丢失数据) 我用的archlinux是 ...

  3. ArchLinux+Win10安装美化及一些常用(装逼神器)软件安装记

          一直久闻Arch的大名,以简洁轻便出名的Arch也号称是最难安装的Linux发行版,但对于我这种不折腾恩会死星人来说,还是可以折腾一下的.       下面我就详细的介绍一下我的Arch安 ...

  4. ArchLinux(或Linux系统)与Win10双系统修复grub引导

    起因 重装Win10系统 整体思路 使用Ubuntn Live CD修复grub引导,主要应用命令chroot 具体操作 制作 Ubuntn U盘启动盘 可以使用UltraIso软件制作 使用Ultr ...

  5. ArchLinux+Win10双系统安装踩坑指南(2021.08)

    前言 本文不讨论意识形态相关内容,仅记录安装过程中的一些心得,以后查找起来方便. 不讨论意识形态是指,例如 " Manjaro 与 Arch Linux 有什么区别?哪一个更好?" ...

  6. archlinux安裝手记(Win10+Arch、GPT+UEFI、lvm)

    目录 准备工作 工具和必要技能 分区和挂载 分区建立和格式化 分区挂载 基础安装 配置镜像源 连接网络 安装基础系统 建立fstab文件 进入系统 激活lvm2钩子 用户管理 设置时区 主机名 网络配 ...

  7. win10 linux打印机,archlinux安装打印机

    我的想法是把打印机连接在家用服务器上,家里所有的电脑实现共享打印. 先安装cups 查阅wiki,对于常用的打印机型号,都有说明.主要是把相应的型号的各种设置工具,plugin安装好. 启动cups服 ...

  8. linux终端字体大小6,[adminitrative][archlinux][setfont] 设置console的字体大小

    电脑的分辨率高了之后,用命令行进入的时候,完全看不清楚,是否容易导致眼瞎. 第一步便把字体调大就成了很必要的操作. 使用一个命令能马上生效: setfont 使用配置文件 /etc/vconsole. ...

  9. win10更新后无法进入linux,双系统win10更新后无法进入linux

    我的笔记本上安装了win10和archlinux双系统,更新win10 1809后只能进入win10了(跳过grub直接进入win10,就像win10单系统一样) 估计是win10大更之后直接覆盖了g ...

最新文章

  1. MySQL 修改账号的IP限制条件
  2. mysql联合查询数量不一致_Mybatis关联查询,查询出的记录数量与数据库直接查询不一致,如何解决?...
  3. 正则表达式需要转义的字符
  4. 24款非常实用的CSS3工具终极收藏
  5. CSS设计指南(读书笔记 - 背景)
  6. 从拉格朗日乘子法到SVM
  7. mmdetection 使用笔记 01: 安装与简单的推理demo
  8. 苹果cmsv10播放器源码插件
  9. linux编程学习_您需要编程技能才能学习Linux吗?
  10. 基于ansible Role实现批量部署lamp平台
  11. SQL SERVER 2008数据库管理与维护总结
  12. web压力测试的几个指标
  13. 前端json转对象和数组
  14. 如何本地修改dns服务器,如何更新本地DNS?
  15. Visual Studio Code (VS Code)安装教程(配图超详细)
  16. 计算机拨号连接无法建立连接,电信拨号上网连接不上的解决方法
  17. Java 发送消息模版内容换行(包含微信,企业微信)
  18. 5G NR 时频结构
  19. 2022-2027年中国聚丁烯管市场竞争态势及行业投资前景预测报告
  20. [日推荐]『我的时间线』记录你的生活

热门文章

  1. Linux管理员手册
  2. 可变参数函数的一个简单例子
  3. MySQL基础之 标准模式通配符
  4. Oracle的 EXEC SQL CONTEXT学习
  5. 两百行业专家聚首 详解IEC新标准
  6. thinkphp5部署于Linux中nginx多站点解决方案
  7. bzoj 3519: [Zjoi2014] 消棋子 题解
  8. LABJS的使用教程
  9. python学习1(下载、安装)
  10. Apache2 httpd.conf中文版