在 LXC 中运行基于 systemd 的容器

Imp*_*ive 5 arch-linux lxc systemd

我目前正在尝试在 Ubuntu 12.04 主机上使用 LXC 运行 Arch Linux 容器。Arch Linux 最近迁移到了systemd,根据很多地方的说法,它作为 LXC 来宾运行时存在一些问题。然而,其中许多来源已经过时了,而且我已经看到各种其他来源表明可以使用 或 之类的东西来运行基于 systemd 的lxc.autodev来宾devtmpfs

因此,我试图找出以下内容:

  1. 是否可以在 LXC 容器内运行基于 systemd 的 guest 虚拟机(截至 2013 年 2 月)?
  2. 有人有一个示例模板/配置文件与“mkarchroot”一起使用来运行吗?

当前使用 LXC 版本 0.7.5,但如果有必要,升级应该不是问题。

小智 1

我自己回答。lxc-archlinux 模板可在https://github.com/dotcloud/lxc/blob/master/templates/lxc-archlinux.in上找到,但它不包括到 systemd 的迁移(截至 2013 年 2 月 15 日)。

archlinux 有可用的 rootfs 部分(例如http://www.gtlib.gatech.edu/pub/archlinux/iso/2013.02.01/arch/i686/root-image.fs.sfs对于 i686 还有一个 64 位版本)

我还没有运行 lxc guest,但我从 ubuntu 12.04 x64 内部获得了一个功能性的 i686 chroot。1/下载并解压缩根映像,将其安装到某个位置。

2/ 作为 root (sudo) cp -ar 将根文件系统复制到您的位置并 chroot 到其中

3/编辑/etc/pacman.conf并更新arch行(默认为auto,它从uname中提取arch,但ubuntu和arch不使用相同的名称)

4/ mount /proc /dev/random 和 /dev/urandom (这是 pacman 和 pacman-key 需要的)

如果没有正确设置包签名,我无法让 pacman 运行

5/ pacman-key --init (这里需要一个好的熵源)

6/ pacman-key --填充 archlinux

7/可选:pacman-key --refresh-keys(需要有效的互联网连接)

8/编辑/etc/pacman.d/mirrorlist以激活与您相关的镜像。

9/ 吃豆人-Syy

准备更新或安装新软件包。

(严重)缺少的是容器启动。我不太了解 systemd,但如果我理解正确的话,这主要是启动 dbus 和 systemd 的问题。