三 文章首页 实时留言 网络邻居 开往 虫洞
返回

在 fedora 建立一个 Arch 容器 (bwrap)

2024-10-03 23:20:33
分类: Linux 标签: 容器,Fedora,Arch

在尝试 上一篇文章 (建立一个 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 环境啦。

贴一张预览图:


更多相关推荐阅读:https://wiki.archlinuxcn.org/wiki/Bubblewrap