将 Linux 子系统的 Debian 替换为 ArchLinux(新版)

FydeOS 上将 Linux 子系统的 Debian 替换为 ArchLinux 的指南,涵盖容器安装、基础设置和依赖安装,以及如何替换默认容器等步骤。本教程改编自比以前我出的更简单以前

准备工作

  • 请确保你已经启动 Linux 子系统,并分配了足够的储存空间。

安装 ArchLinux

  1. 启动 Termina
  • 按下 Ctrl+Alt+T 打开 crosh 终端。
  • 输入 vmc launch termina
  • 这时,终端会显示 (termina) chronos@localhost ~ $ 即代表 termina 启动成功。
  1. 安装 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 设置」中查看账户名称
  1. 设置 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/

基础设置与依赖安装

  1. 设置镜像源
  • 输入下列代码进入镜像列表:
vi /etc/pacman.d/mirrorlist
  • 复制以下镜像源代码并在官方源之前插入,按I键进入编辑模式,Crtl+Shift+V 选择粘贴:
# 清华大学镜像
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

  • 粘贴完毕后,按 esc 键退出输入模式,再按 : 键输入 wq 保存退出
  1. 设置 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 
  1. 取消管理员密码因为我们期望能够在 FydeOS 的终端应用中启动 arch。因此,我们需要取消管理员密码。
  • 输入 visudo
  • 删除注释:找到 #%wheel ALL=(ALL:ALL) NOPASSWD: ALL 并将 # 删除
  • 输入 exit 退出到 termina
  1. 登录到容器
  • 输入下列代码进入 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
  1. 安装 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
4 个赞

有别的安装方法吗?

请问我的设备/usr/bin/run_container.sh这个文件,这个问题应该如何解决呢

image (3)

Yous can add ubuntu as well with this :point_up_2::

你很牛,贵在折腾。