Sie sind nicht angemeldet.

1

12.02.2015, 21:46

dev/shm im LXC-Container

Hallo,

bin vor kurzem von Vserver auf Lxc umgestiegen, das bisher eine System ist neu aufgesetzt. Seit Update vor kurzem auf app-emulation/lxc startet der Container nicht. Die Fehlermeldung ist

Quellcode

1
2
3
4
5
6
7
lxc-start: conf.c: mount_entry: 1705 No such file or directory - failed to mount 'shm' on '/var/lib/lxc/rootfs/dev/shm'
lxc-start: conf.c: lxc_setup: 3815 failed to setup the mount entries for 'ame'
lxc-start: start.c: do_start: 699 failed to setup the container
lxc-start: sync.c: __sync_wait: 51 invalid sequence number 1. expected 2
lxc-start: start.c: __lxc_start: 1157 failed to spawn 'ame'
lxc-start: lxc_start.c: main: 344 The container failed to start.
lxc-start: lxc_start.c: main: 348 Additional information can be obtained by setting the --logfile and --logpriority options.


Wenn ich aus der Konfiguration die dev/shm mount Zeile aus der Konfiguration rausnehme, startet der Kontainer. Allerdings fehlt mir dann das /dev/shm. Das Verzeichnis ist innerhalb des Containers gar nicht da, also nicht sichtbar.

Quellcode

1
2
3
4
5
# ls www/dev/
console  fd  full  initctl  kmsg  net  null  ptmx  pts  random  shm  stderr  stdin  stdout  tty  tty0  tty1  urandom  zero

# lxc-attach -n www -- ls /dev
console  fd  full  initctl  null  ptmx	pts  random  stderr  stdin  stdout  tty  tty1  urandom	zero


Wie bekomme ich mein /dev/shm wieder zurück? Oder gibt es Gründe wieso es nicht mehr da ist?
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

2

13.02.2015, 00:46

Hallo bell
Nur ein blinder Schuss ins Blaue.
Ich denke /dev/shm sollte normal von udev beim booten des Kernels mit angelegt werden (sofern nicht schon vorhanden).
Fehlt dir eventuell CONFIG_DEVTMPFS_MOUNT Support im Kernel? (Den solltest du setzen sofern kein initrd genutzt wird welches das schon erledigt).

3

13.02.2015, 06:10

Hallo Josef, Lxc ist ähnlich wie vserver oder chroot. Es ist ein weiteres eingeschränktes Userland auf dem selben Kernel. Auf dem Host ist das /dev/shm da. Im LXC-Container läuft kein Udev. Das /dev Verzeichnis wird statisch durch die lxc-Utils verwaltet. Wenn ich das Verzeichnis anlege, habe ich keine Berechtigung ein tmpfs drauf zu mounten. Ich hatte testweise das /dev als devtmpfs im Container mounten lassen, keine gute Idee. Das Herunterfahren des Containers hatte mir den Host runtergefahren. Das /dev/shm lässt sich aus der lxc.conf nicht mounten da das Verzeichnis nicht sichtbar ist und somit zu "No such file or directory".

Meine Vermutung ist dass da wieder mal eine Änderung noch nicht vollständig umgesetzt ist. Hatte gelesen dass /dev/shm nach /run/shm wandert und /dev/shm nur ein Symlink sein soll.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

4

09.05.2015, 21:31

Hab heute die Lösung gefunden indem ich meine Config mit der /usr/share/lxc/config/gentoo.common.conf verglichen habe. Der Trick war

lxc.mount.entry = none dev/shm tmpfs rw,nosuid,nodev,create=dir :cursing:
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.