用 LxRunOffline 安装 Arch Linux

前段时间重装系统之后我就一直在 WSL 内开发。Ubuntu 因为我不喜欢所以直接放弃(???),所以就一直在用 openSUSE。然而现在越用越感觉 zypper 的下载源坑爹……于是在 GitHub 上一阵搜索之后,我终于找到了这个神器:LxRunOffline。于是我毅然卸载了 openSUSE,开始尝试安装 Arch Linux……

2018-07-25 修改,原文见 GitHub

准备工作

  1. 本文假设你已经有一些 Arch Linux 使用经验;
  2. 你需要一个 64 位的 Windows 10 1803 版本系统;
  3. 启用适用于 Linux 的 Windows 子系统功能;(不开这个还想用 WSL?)
  4. 下载 LxRunOffline,解压到任意位置;
  5. 清华大学镜像站 下载 archlinux-bootstrap-<日期>-x86_64.tar.gz

安装 rootfs

在 LxRunOffline 目录下打开 CMD 或 PowerShell,输入

1> .\LxRunOffline.exe install -n <用于向 Windows 注册的系统名> -f <到 rootfs 文件的路径> -d <安装到的目录> -r root.x86_64

LxRunOffline 可能会要求重启,那么重启之后再次输入上述命令。LxRunOffline 会把系统安装到指定的目录。正常安装完成后 LxRunOffline 不会有任何输出(真是遵循 UNIX 哲学)。然后输入:

1> .\LxRunOffline.exe set-default -n <之前输入的系统名>

把刚刚安装的 Arch 设为默认,就可以输入 wsl 启动 Arch 了。

安装系统

首先删除 /etc/resolv.conf,退出 WSL 再重新进入使 Windows 自动生成这个文件。然后 cat /etc/pacman.d/mirrorlist 选择一个镜像服务器,echo 'Server = <你选择的镜像服务器> >> /etc/pacman.d/mirrorlist'。(因为这时 Arch Linux 内还没有安装任何编辑器。)

然后安装基础软件:

1# pacman-key --init
2# pacman-key --populate archlinux
3# pacman -Syyu base base-devel

执行第三个命令时,Pacman 会询问需要安装哪些包,此时应选择不安装 base 组内的 linux 包和 base-devel 组内的 fakeroot 包。前者是因为 WSL 中 Linux 内核由 Windows 提供,所以不需要安装;后者的原因见

这里建议

1rm /etc/pacman.d/mirrorlist
2mv /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist

然后再用 vi 或者 nano 重新编辑 /etc/pacman.d/mirrorlist

然后设置语言和时间:使用 vi 或 nano 编辑 /etc/locale.gen,取消注释需要使用的语言(一般是 en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8),输入 locale-gen 生成语言文件。输入 ln -sf /usr/share/zoneinfo/<区域>/<子区域> /etc/localtime 来设置时区,如我的是:

1# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

接下来设置用户:

1# useradd -m -G wheel -s /bin/bash <用户名>
2# passwd root
3# passwd <用户名>

输入 visudo,按需要设置 sudo 权限。按 这里 的说明添加 archlinuxcn 软件源,安装 fakeroot-tcp 包。

接下来输入 id -u <用户名> 查看 UID,然后退出 Bash,输入

1> .\LxRunOffline.exe config-uid -n <之前输入的系统名> -v <UID>

设置默认用户。此时建议打开任务管理器检查是否有未关闭的 WSL 进程。把 WSL 进程全部停止,然后打开 Bash,系统就会默认以你的用户登录了。

Enjoy~

到这里为止,Arch Linux 就安装完成了。(撒花🎉~)此时系统内还有一些无用的用于安装系统的软件,强迫症可以输入以下命令卸载它们:

1$ sudo pacman -R arch-install-scripts