Jails und sysctl - Fehler?

xcvb

Well-Known Member
Hallo,

kurz vorweg: FreeBSD 9-STABLE

Ich hab mir gestern das STABLE übersetzt und installiert. Anschließend eine Jail aufgesetzt in der ich postgres92-server instlliert habe. Leider schlug ein "service postgresql initdb" immer fehl (could not create shared memory segment: Function not implemented).

In der /etc/rc.conf vom Host hatte ich "jail_sysvipc_allow="YES" gesetzt und auch in der etc/sysctl.conf ein "security.jail.sysvipc_allowed=1".

Nun sehe ich, das dieser Wert gar nicht mit in die Jail übernommen wird. Ein anderer Wert wie z. B. "security.bsd.unprivileged_read_msgbuf=0" jedoch schon.

Dann bin ich hingegangen und habe erst mal das Jail runtergefahren und mit folgender /etc/jail.conf neu gestartet "jail -c db":
Code:
db {
path = /usr/jails/db;
mount.devfs;
devfs.ruleset = 4;
allow.sysvipc;
host.hostname = "db.example.com";
ip4.addr = 192.168.1.90;
interface = em0;
exec.start = "/bin/sh /etc/rc"
exec.stop = "/bin/sh /etc/rc.shutdown"
}

Mit dieser Methode wird dann auch das Tuneable richtig gesetzt und ich kann erfolgreich mein PostgreSQL initialisieren.

Habe ich jetzt Pech weil ich STABLE installiert habe, oder sollte ich evtl. einen PR schreiben?
 
Zuletzt bearbeitet:
Hi,

Die Direktive heißt "jail_sysvipc_allow" (nicht "jail_sysvipc_enable"), siehe auch http://www.freebsd.org/cgi/man.cgi?query=rc.conf

Falls das von dir hier kein Vertipper ist, wird's wohl daran liegen ;)

So läuft's bei mir (9.1-RC2), sollte deinem also sehr Nahe kommen.

Gruß
oxy
 
Zuletzt bearbeitet:
Oops, das war ein Vertipper hier beim posten. Habe es oben jetzt angepasst. Im Hostsystem war es allerdings richtig gesetzt.

Hat jemand hier ein aktuelles STABLE in dem er das nachvollziehen kann?
 
Hallo,

kurz vorweg: FreeBSD 9-STABLE

Ich hab mir gestern das STABLE übersetzt und installiert. Anschließend eine Jail aufgesetzt in der ich postgres92-server instlliert habe.

Das war wohl der springenden Punkt :)
Interresant wäre noch , welche revisionsnummer dein 9-STABLE hat.
Die sysctls sind erheblich feiner eingestellt worden, so daß sysvipc, das bisher als Host sysctl gesetzt werden musste, nur noch in einem, einigen oder allen Jails gesetzt wird/werden und erscheint.
Die alten, bis dato gültigen sysctls sind aber immer noch vorhanden, weil garantiert bei einigen ein Update zwar im Host, aber nicht in den Jails gemacht wird.
Und die alten sysctls greifen noch in den alten Jails.
Der Unterschied wird erst dann klar, wenn jemand, so wie du, tatsächlich Host und Jails neu gebaut hat.

Unter einem "Alten" Host versteh ich ales ungefähr vor deiner Revision, unter "Neuem" Host 9-Stable ab da, oder AFAIK auf jeden(?) Fall 9.1-Release.

Alter Host & Alte Jails => Alte Syntax
Neuer Host & Alte Jails => Alte Syntax
Neuer Host & Neue Jails => Neue Syntax

Nach neuer Syntax können in 1.) /etc/sysctl.conf und 2.) rc.conf/rc.conf.local oder wo auch immer es stehen mag die folgenden Einträge ersatzlos weg
Code:
1.)  security.jail.sysvipc_allowed=1
2.)  jail_sysvipc_allow="YES"

Der neue Eintrag gilt entweder 1.) für alle, oder 2.) für einzelne Jails, dann in deren jeweiligen Konfigurationsblock
Code:
1.) jail_parameters="allow.sysvipc=1"  
2.) jail_name_parameters="allow.sysvipc=1"

Nach (was ich nicht benutze) jail.conf-Syntax sollte das in obige allow.sysvipc, so hoffe ich, dann in der Form allow.sysvipc=1 funktionieren.

Ergebnis:
Host : security.jail.sysvipc_allowed: 0
Jail : security.jail.sysvipc_allowed: 1

und pg will auch wieder.

Jugend forscht & hth
 
Hallo metro.

Was du geschrieben hast, kann ich so bestätigen. Gute Arbeit :)
Ich habe hier ein STABLE svn r243657 vom 28.11.2012
 
Zurück
Oben