Arch-Linux

在 LXC 中執行基於 systemd 的容器

  • September 16, 2020

我目前正在嘗試在 Ubuntu 12.04 主機上使用 LXC 執行 Arch Linux 容器。Arch Linux 最近遷移到systemd,根據很多地方,它作為 LXC 來賓執行時存在一些問題。然而,這些資源中有許多已經過時了,而且我看到各種其他資源表明可以使用類似lxc.autodevdevtmpfs.

因此,我試圖找出以下內容:

  1. 是否可以在 LXC 容器內執行基於 systemd 的客戶機(截至 2013 年 2 月)?
  2. 有沒有人有一個範例模板/配置文件與 ```mkarchroot`` 一起使用來執行一個?

目前使用 LXC 版本 0.7.5,但如果有必要升級應該不是問題。

回答我自己。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 for i686 還有一個 64 位版本)

我還沒有執行 lxc 來賓,但我從 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 / pacman - 原因

準備更新或安裝新軟體包。

(嚴重)缺少的是容器啟動。我沒有跟上 systemd 的速度,但如果我理解正確,這主要是啟動 dbus 和 systemd 的問題。

引用自:https://serverfault.com/questions/476070