KfreeBSD Jail unter FreeBSD 9.1-RC1

minimike

Berufsrevolutionär
Hi

Ich versuche wie unter FreeBSD 8x auf der 9.1-RC1 zwei Debian KfreeBSD Jails an den Start zu bekommen.

Code:
jail_enable="YES"
jail_list="tweetingduck"
jail_sysvipc_allowed="YES"
jail_tweetingduck_rootdir="/var/jails/tweetingduck"
jail_tweetingduck_hostname="tweetingduck"
jail_tweetingduck_ip="192.168.0.202"
jail_tweetingduck_exec_start="/etc/init.d/rc 3"
jail_tweetingduck_flags="-l -u root"
jail_tweetingduck_devfs_enable="YES"
jail_tweetingduck_devfs_ruleset="devfsrules_jail"
jail_tweetingduck_exec_prestart0="mount -t linprocfs linprocfs /var/jails/tweetingduck/proc"
jail_tweetingduck_exec_prestart1="mount -t linsysfs linsysfs /var/jails/tweetingduck/sys"
jail_tweetingduck_exec_prestart2="mount -t tmpfs tmpfs /var/jails/tweetingduck/lib/init/rw"

Das ist noch nicht ganz fertig. Jedoch verschluckt er sich unter der 9.1 hierbei
Code:
jail_tweetingduck_flags="-l -u root"

Hmm wie könnte ich das Lösen?
 
Zuletzt bearbeitet:
Selbes Problem unter Current, mit:
Code:
jail_tweetingduck_flags="-l -u root"

startet die Jail nicht. Nach entfernen der Zeile läuft die Jail aber wie sie soll. Die Jail startet sowieso als root in einem "clean environment". Ich benutze hier daher nur noch exec_start und exec_stop (um kDebian auch korrekt herunterzufahren):

Code:
jail_tweetingduck_exec_start="/etc/init.d/rc 3"
jail_tweetingduck_exec_stop="/etc/init.d/rc 0"

Noch ein Hinweis: Statt die prestart mounts:

Code:
jail_tweetingduck_exec_prestart0="mount -t linprocfs linprocfs /var/jails/tweetingduck/proc"
jail_tweetingduck_exec_prestart1="mount -t linsysfs linsysfs /var/jails/tweetingduck/sys"
jail_tweetingduck_exec_prestart2="mount -t tmpfs tmpfs /var/jails/tweetingduck/lib/init/rw"

verwende ich eine fstab für die kDebian Jail:

Code:
jail_tweetingduck_fstab=/etc/fstab.debain

mit entsprechenden fstab einträgen in /etc/fstab.debian. Das hat den Vorteil, dass bei starten der Jail gemountet und beim stoppen die Verzeichnisse wieder ausgehängt werden. (/etc/fstab.debian dann in etwa wie folgt)

Code:
inprocfs linprocfs /var/jails/tweetingduck/proc rw 0 0
linsysfs linsysfs /var/jails/tweetingduck/sys rw 0 0
tmpfs tmpfs /var/jails/tweetingduck/lib/init/rw rw 0 0
 
Hallo hessijens

Erst mal vielen Dank für deine Antwort. Leider geht es immer noch schief

in der rc.conf

Code:
jail_enable="YES"
jail_list="tweetingduck"
jail_sysvipc_allowed="YES"
jail_tweetingduck_rootdir="/var/jails/tweetingduck"
jail_tweetingduck_hostname="tweetingduck"
jail_tweetingduck_ip="192.168.0.202"
jail_tweetingduck_devfs_enable="YES"
jail_tweetingduck_exec_start="/etc/init.d/rc 3"
jail_tweetingduck_exec_stop="/etc/init.d/rc 0"
jail_tweetingduck_fstab="/etc/jails/tweetingduck.fstab"

und das bekomme ich als Ausgabe

Code:
mightychicken# service jail start
Configuring jails:.
Starting jails: cannot start jail "tweetingduck": 
jail: getpwnam root: No such file or directory
jail: /etc/init.d/rc 3: failed

Fehlt mir da noch etwas?
 
Stimmt, jetzt erinnere ich mich auch an den Fehler. Er kommt daher, da nun beim starten der Jail root gegen die /etc/pwddb und /etc/spwd.db geprüft wird. Da debian aber statt einer master.password und (s)pwddb nur einen shadow Datei vorhält fehlt die Datei. " No such file or directory" - recht hat er. Lösung war eine /etc/jails/tweetingduck/(s)pwddb zu erzeugen. Lieder weiß ich nicht mehr ob ich dazu die Debian /etc/shadow oder die /etc/master.password von freebsd Basissystem genommen habe.

Funktioniert:
Code:
/usr/sbin/pwd_mkdb -d /var/jails/tweetingduck/etc -p /var/jails/tweetingduck/etc/shadow

Ansonsten:
Code:
/usr/sbin/pwd_mkdb -d /var/jails/tweetingduck/etc -p /etc/master.passwd

Eventuell sogar nur für root.:
Code:
/usr/sbin/pwd_mkdb -u root -d /var/jails/tweetingduck/etc -p /etc/master.passwd

Ich glaube ich habe damals die /etc/master.passwd von allen überflüssigen Einträgen befreit und diese als /var/jails/tweetingduck/etc/maser.passwd zur Erstellung verwendet, was letzter Befehl auch tun sollte.
 
Zuletzt bearbeitet:
Sorry ich hatte die Tage zu viel zu tun

Hmm hast du eine Idee warum das System mit der Config nicht startet?

Code:
jail_list="tweetingduck"
jail_sysvipc_allowed="YES"
jail_tweetingduck_rootdir="/var/jails/tweetingduck"
jail_tweetingduck_hostname="tweetingduck"
jail_tweetingduck_ip="192.168.0.202"
jail_tweetingduck_devfs_enable="YES"
jail_tweetingduck_exec_start="/etc/init.d/rc 3"
jail_tweetingduck_exec_stop="/etc/init.d/rc 0"
jail_tweetingduck_mount_enable="YES"
jail_tweetingduck_fstab="/etc/jails/tweetingduck.fstab"

Code:
mightychicken# less /etc/jails/tweetingduck.fstab 
linprocfs linprocfs /var/jails/tweetingduck/proc rw 0 0
linsysfs linsysfs /var/jails/tweetingduck/sys rw 0 0
tmpfs tmpfs /var/jails/tweetingduck/lib/init/rw rw 0 0
 
Zurück
Oben