Re: Ports bauen im Jail

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Sun, 28 Feb 2010 18:46:12 +0100 (CET)

Marc Santhoff wrote:
> Oliver Fromme:
> > /home kannst Du per NULLFS in das/die Jail(s) reinmounten.
> >
> > # mkdir /jails/marc/home
> > # mount -t nullfs /home /jails/marc/home
> >
> > Analog kannst Du mit anderen Sachen verfahren, die zwischen
> > dem Host-System und einem oder mehreren Jails geshared
> > werden sollen. Man braucht übrigens mit NULLFS-Mounts
> > nicht sparsam zu sein. Selbst wenn man ein paar Tausend
> > hat, kosten das nicht spürbar Resourcen oder Performance.
> >
> > Im prinzip kannst Du das komplette Basissystem per NULLFS-
> > Mounts in das/die Jail(s) abbilden (die können dann sogar
> > read-only sein). Dann brauchst Du für die Jails keinerlei
> > zusätzlichen Plattenplatz bzw. hast nichts unnötig doppelt.
> > Außerdem hat es noch einen weiteren Vorteil: Bei einem
> > »make installworld« werden automatisch auch alle Jails
> > aktualisiert, ohne dass Du einen Finger krumm machen musst.
>
> Leider geht das nicht ganz so wie gewollt. Man kann scheinbar nur "von
> unten nach oben" mounten, auf gleicher Verezichnisebene wird's nix:
>
> # mkdir /jail
> # mkdir /jail/portsjail
> # mount_nullfs -o ro / /jail/portsjail
> mount_nullfs: / (/) and /jail/portsjail are not distinct paths

Das geht nicht, weil Du damit eine Endlosschleife erzeugen
würdest: /jail/portsjail/jail/portsjail/jail/portsjail/...
Daher darf beim NULLFS der Mountpoint kein Unterverzeichnis
des Quellverzeichnisses sein.

Das root-FS direkt in das Jail zu mounten, ergibt in der
Praxis ohnehin keinen Sinn, da Du ja nur einen kleinen
Teil davon überhaupt im Jail benötigst. Die Verzeichnisse
/dev, /boot, /etc, /var (und einige andere) des Host-
Systems haben in den Jails nichts verloren, wie Du ja
auch selbst weiter untern festgestellt hast.

In der Praxis brauchst Du vom root-FS wohl nur /bin, /lib
und /libexec, sonst nichts weiter. In sh-Syntax:

# for i in bin lib libexec ; do
# mkdir -p /jail/portsjail/$i
# mount_nullfs -o ro /$i /jail/portsjail/$i
# done

Analog kannst Du mit den Teilen von /usr/* verfahren, die
Du in den Jails benötigst.

Die Jails sollten ein eigenes /tmp, /var und /etc bekommen.
Für /tmp empfehle ich eine Memory-Disk (es sei denn, RAM
ist sehr knapp bemessen).

> Zudem habe ich /usr/local nicht auf einer separaten Partition, kann es
> also nicht weglassen. Das gleiche Spiel mit /etc, wenn ich / ins Jail
> montieren könnte, wie blende ich /etc vom basissystem aus und benutze
> ein explizit angelegtes und mit Dateien gefülltes /jail/portsjail/etc?

Siehe oben.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"Life is short (You need Python)"
        -- Bruce Eckel, ANSI C++ Comitee member, author
           of "Thinking in C++" and "Thinking in Java"
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 28 Feb 2010 - 18:46:33 CET

search this site