SquashFS отображают как rootfs в LXC

Это рекомендует использовать PPA. Это легче, чем управление ручной установкой. Не устанавливайте программу из простого архива, если не действительно необходимого.

Если бы Вы предпочитаете устанавливать двоичный файл отдельно (единственное серьезное основание состояло бы в том, если нет никакого PPA с версией, Вы хотите), самый легкий способ сделать это доступным состоит в том, чтобы создать символьную ссылку в /usr/local/bin. Этот каталог для исполняемых файлов, которые предназначаются для любого в системе для выполнения и которые не идут с распределением. Это обычно прежде /usr/bin в PATH, таким образом, если у Вас есть оба /usr/bin/thunderbird и /usr/local/bin/thunderbird и Вы вводите thunderbird, затем тот в /usr/local/bin выполняется.

Не распаковывайте .tar.bz2 в /usr/lib. Вообще говоря, никогда вручную измените файл в /bin, /lib, /sbin или /usr, кроме под /usr/local. Эти места резервируются для диспетчера пакетов. Обычное место для помещения программ, установленных путем распаковки архива, /opt или /usr/local/opt. Необходимо поэтому распаковать архив под opt. Затем создайте символьную ссылку на исполняемый файл:

ln -s /opt/thunderbird-3.1.20/thunderbird /usr/local/bin/thunderbird

Если Вы хотите вызвать Thunderbird от оболочки, которую Вы запустили прежде, чем создать символьную ссылку, Вы, возможно, должны сказать оболочке очищать свой кэш пути с командой hash -r.

5
29.11.2012, 01:09
2 ответа

Можно смонтироваться как rootfs squashfs изображение, но это было бы только для чтения.

mount: warning: /var/lib/lxc/busy2/rootfs/ seems to be mounted read-only.

У Вас должен быть другой слой по squashfs, например, aufs.

Эта масса техники используется в Slax.

Можно повторить это просто вручную. Заставьте истинный lxc сконфигурироваться, чем монтируют Ваше изображение squashfs к rootfs dir aufs слоем.

Из страницы справочника:

# sudo mount -t aufs -o br:/rw_branch:/ro_branch none /aufs

Мой эксперимент с busybox возвращает True:

# mount -o loop -t squashfs /var/busy/busy_rootfs.squashfs /var/busy/squashfs-mnt/
mount: warning: /var/busy/squashfs-mnt/ seems to be mounted read-only.
# mount -t aufs -o br:/var/busy/aufs-root/:/var/busy/squashfs-mnt/ none /var/lib/lxc/busy2/rootfs

# lxc-start --name busy2

udhcpc (v1.20.2) started
Sending discover...
Sending select for 10.0.3.105...
Lease of 10.0.3.105 obtained, lease time 3600

Please press Enter to activate this console.



BusyBox v1.20.2 (Ubuntu 1:1.20.0-8ubuntu1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ # ls
ls
bin      etc      lib      mnt      root     selinux  usr
dev      home     lib64    proc     sbin     tmp      var

/ # touch root.file
touch root.file
/ # ls -latr root.file
ls -latr root.file
-rw-r--r--    1 root     root             0 Aug 23 12:38 root.file

Взгляд от хоста:

# ls -latr /var/busy/aufs-root/
total 24
drwxr-xr-x 3 root root 4096 Aug 23 12:15 var
drwx------ 2 root root 4096 Aug 23 12:25 .wh..wh.plnk
drwx------ 2 root root 4096 Aug 23 12:25 .wh..wh.orph
-r--r--r-- 1 root root    0 Aug 23 12:25 .wh..wh.aufs
drwxr-xr-x 6 root root 4096 Aug 23 12:30 ..
drwxr-xr-x 2 root root 4096 Aug 23 12:38 dev
-rw-r--r-- 1 root root    0 Aug 23 12:38 root.file
drwxr-xr-x 6 root root 4096 Aug 23 12:39 .
0
27.01.2020, 20:43

У меня есть рабочая установка с некоторыми контейнерами squashfs, особенно в целях безопасности

Для запуска просто добавьте

lxc.rootfs = loop:/var/lib/lxc/yourcontainer/rootfs.squashfs

в ваш конфигурационный файл.

Интересно, что я вижу сообщения dmesg вроде

[218687.113742] EXT4-fs (loop0): VFS: Can't find ext4 filesystem
[218687.118615] FAT-fs (loop0): invalid media value (0x00)
[218687.120368] FAT-fs (loop0): Can't find a valid FAT filesystem

... которых я не могу избежать, потому что нет опции lxc.rootfs.type. Но эти сообщения не являются ошибками - все работает, как ожидалось.

Остальное - обычные проблемы с read-only-root: Файлы, в которые система хочет писать (например, resolv.conf и журналы). Возможно, вы захотите связать их симлинком с томом tmpfs.

Я не пробовал монтировать другой squashfs в подпункт этого контейнера, но обычное связывающее монтирование каталога хоста работает как ожидалось.

1
27.01.2020, 20:43

Теги

Похожие вопросы