FydeOS 上将 Linux 子系统的 Debian 替换为 ArchLinux 的指南,涵盖容器安装、基础设置和依赖安装,以及如何替换默认容器等步骤。本教程改编自比以前我出的更简单以前
准备工作
- 请确保你已经启动 Linux 子系统,并分配了足够的储存空间。
安装 ArchLinux
- 启动 Termina
- 按下
Ctrl+Alt+T
打开 crosh 终端。 - 输入
vmc launch termina
。 - 这时,终端会显示
(termina) chronos@localhost ~ $
即代表 termina 启动成功。
- 安装 Arch 容器
输入以下代码,安装 ArchLinux 容器
推荐将这一命令重复执行两遍,以应对处理先后问题产生的 bug。
bash /usr/bin/run_container.sh --container_name arch --user 你的用户名 --lxd_image archlinux/current --lxd_remote https://mirrors.tuna.tsinghua.edu.cn/lxc-images/
注意:需要将代码中「你的用户名」替换为你在 FydeOS 系统中使用的用户名,两者必须保持一致。
- 如果是 FydeOS/Google 网络账户,名称是你用于登录的电子邮件地址
- 如果是本地账户,你可以在「FydeOS 设置」中查看账户名称
- 设置 ArchLinux 用户
- 输入以下代码进入 ArchLinux 的 shell
lxc exec arch -- bash
- 输入以下代码来来设置密码,请务必与 FydeOS 用户密码保持一致。
passwd 你的用户名
- 输入以下代码将用户加入 wheel 组
usermod -aG wheel 你的用户名
- 如果添加密码时提示用户不存在,请重新执行以下代码
bash /usr/bin/run_container.sh --container_name arch --user 你的用户名 --lxd_image archlinux/current --lxd_remote https://mirrors.tuna.tsinghua.edu.cn/lxc-images/
基础设置与依赖安装
- 设置镜像源
- 输入下列代码进入镜像列表:
vi /etc/pacman.d/mirrorlist
- 复制以下镜像源代码并在官方源之前插入,按
I
键进入编辑模式,Crtl+Shift+V
选择粘贴:
# 清华大学镜像
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
- 粘贴完毕后,按
esc
键退出输入模式,再按:
键输入wq
保存退出
- 设置 ArchLinuxcn 源
- 在终端中输入以下命令更新 Vim:
pacman -Sy vim
- 在终端中输入以下命令进入编辑模式:
vim /etc/pacman.conf
- 在文件最后输入
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
- 安装依赖
pacman -Syu archlinuxcn-keyring base-devel git gtk3 openssh xdg-utils xkeyboard-config
- 取消管理员密码因为我们期望能够在 FydeOS 的终端应用中启动 arch。因此,我们需要取消管理员密码。
- 输入
visudo
- 删除注释:找到
#%wheel ALL=(ALL:ALL) NOPASSWD: ALL
并将#
删除 - 输入
exit
退出到 termina
- 登录到容器
- 输入下列代码进入 arch
lxc console arch
- 输入用户名与密码
请注意此时 arch 并不会提示输入用户名,并且输入密码不可见。
- 输入下列代码验证网络
ip -4 a show dev eth0
- 输出不为空则证明网络正常。否则,请执行
sudo dhcpcd eth0
sudo pacman -S dhclient
sudo systemctl disable systemd-networkd
sudo systemctl disable systemd-resolved
sudo unlink /etc/resolv.conf
sudo touch /etc/resolv.conf
sudo systemctl enable dhclient@eth0
sudo systemctl start dhclient@eth0
- 安装 cros-container-guest-tools-git
登录成功后需要安装 AUR 上的 cros-container-guest-tools-git。
由于需要从 chromium.googlesource.com 下载文件,因此请自行解决网络问题。注意,Android 或者 FydeOS 里的代理设置不会应用到虚拟机。这里,建议可以使用手机开启代理,并通过热点分享代理网络进行下载或者使用路由器代理。
- 输入下列代码安装相应工具:
pacman -Sy yay
yay -Sy cros-container-guest-tools-git
pacman -S wayland
pacman -S xorg-xwayland
- 输入代码开启对应服务:
sudo systemctl enable cros-sftp
systemctl --user enable sommelier@0.service
systemctl --user enable sommelier@1.service
systemctl --user enable sommelier-x@0.service
systemctl --user enable sommelier-x@1.service
systemctl --user enable cros-garcon.service
systemctl --user start sommelier@0
systemctl --user start sommelier-x@0
systemctl --user start sommelier@1
systemctl --user start sommelier-x@1
替换默认容器
- 按下
Ctrl+A
,然后按下Q
键退出到 termina - 为了更好的本地化运行,我们需要将 arch 改名为 penguin:
lxc stop --force arch
lxc stop --force penguin
lxc rename penguin debian
lxc rename arch penguin
lxc start penguin
- 然后,我们需要重新启动子系统进行更改
lxc console penguin
reboot
- 进入 penguin
lxc console penguin
- 检查是否系统服务均正常运行
systemctl --failed
systemctl --user --failed
- 检查网络
ip -4 a show dev eth0
- 如果返回内容为空,请执行
sudo dhcpcd eth0
sudo pacman -S dhclient
sudo systemctl disable systemd-networkd
sudo systemctl disable systemd-resolved
sudo unlink /etc/resolv.conf
sudo touch /etc/resolv.conf
sudo systemctl enable dhclient@eth0
sudo systemctl start dhclient@eth0
- 完成上述操作后,请重启 FydeOS。
- 如果一切顺利,你已经成功将 Linux 子系统的 Debian 替换为 ArchLinux