在尝试 https://blog.glumi.cn/bwrap-debian (建立一个 Debian 隔离容器)可行之后,有天需要用到 Arch 的一些环境,决定再次尝试建立一个 Arch 的容器以方便使用。
Arch 官方提供了一种 Bootstrap 镜像(这里是阿里云的下载节点,架构为 x86_64)
下载完成后将它解压,即可得到一个 Arch 的基础 rootfs.
在安装 bwrap
(bubblewrap) 的前提下
sudo dnf install bubblewrap
编写一个启动脚本
#!/bin/bash
CHROOT_DIR="/path/to/arch"
uid="1000"
gid="1000"
bwrap \
--dev-bind $CHROOT_DIR / \
--proc /proc \
--dev /dev \
--dev-bind-try /dev/snd/midiC3D0 /dev/snd/midiC3D0 \
--dev-bind /dev/snd /dev/snd \
--dev-bind-try /dev/shm /dev/shm \
--dev-bind-try /etc/resolv.conf /etc/resolv.conf \
--dev-bind-try /dev/dri /dev/dri \
--dev-bind /tmp /tmp \
--dev-bind-try /run/user/$uid/pulse /run/user/$uid/pulse \
--setenv DISPLAY :0 \
--dev-bind-try /media /media \
--dev-bind /run /run \
--dev-bind /sys /sys \
--dev-bind /tmp/.X11-unix /tmp/.X11-unix \
--chdir / \
--hostname ArchBox \
--cap-add CAP_SYS_ADMIN \
--unshare-uts \
-- /bin/bash
这里 /path/to/arch
为 arch rootfs 的路径。其他的参数具体作用可了解上一篇文章。点击前往
最后用同样的方法,在 sudo [shell文件路径]
提权执行后即可进入该容器。它的作用就和使用 arch-chroot 差不多。
首先进去后先编辑 /etc/pacman.d/mirrorlist
设置一下 pacman 软件源节点。只需要挑选其中并去掉 # 注释保存即可。
然后我们运行一下以下代码,以初始化 pacman 的 keyring
pacman-key --init
pacman-key --populate archlinux
接下来就能愉快的在 fedora 使用 Arch 环境啦。
贴一张预览图: