"make installworld" bricht ab...

moksit

Member
Hallo,

ich möchte nach dieser http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails-application.html Anleitung im FreeBSD-Manual Jails aufsetzen.
Installiert ist FreeBSD als Guest mittels "bootonly.iso" auf VMWare 1.0.4 (Sourcen per csup geholt - supfile:
# IMPORTANT: Change the next line to use one of the CVSup mirror sites
# listed at http://www.freebsd.org/doc/handbook/mirrors.html.
*default host=cvsup2.de.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7_0
*default delete use-rel-suffix

# If you seem to be limited by CPU rather than network or disk bandwidth, try
# commenting out the following line. (Normally, today's CPUs are fast enough
# that you want to run compression.)
*default compress

## Main Source Tree.
#
# The easiest way to get the main source tree is to use the "src-all"
# mega-collection. It includes all of the individual "src-*" collections.
src-all

Die nachfolgenden Fehlermeldungen tauchen sowohl bei FreeBSD 6.3 als auch bei 7.0 RC2 auf, unabhängig davon, ob "vmware-guestd6" installiert ist oder nicht, ob single-user-mode oder normal, ob "adjkerntz -i" oder nicht (getestet mittels snapshot-funktion).
Eingestellte Zeitzone ist Deutschland, angezeigte Uhrzeit in der VM stimmt (allerdings nicht mehr nach "adjkerntz -i" - dann geht die eine Stunde nach).

angelegter Ordner für die Jails: "/usr/jails" - manuell angelegter Zielordner ist "/usr/jails/mroot"

"make installworld" bricht immer mit folgender Fehlermeldung ab:

--------------------------------------------------------------
>>> Installing everything
--------------------------------------------------------------
cd /usr/src; make -f Makefile.inc1 install
===> share/info (install)
install -o root -g wheel -m 444 dir-tmpl /usr/jails/mroot/usr/share/info/dir
install:No such file or directory
*** Error code 1

Stop in /usr/src/share/info.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.

Lege ich dann das entsprechende Verzeichnis per Hand an, kommt folgende Fehlermeldung:
cd /usr/src; make -f Makefile.inc1 install
===> share/info (install)
===> lib (install)
===> lib/csu/i386-elf (install)
cc -O2 -fno-strict-aliasing -pipe -I/usr/src/lib/csu/i386-elf/../common -I/usr/src/lib/csu/i386-elf/../../libc/include -Wsystem-headers -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign -c crt1.c
cc:No such file or directory
*** Error code 1

Stop in /usr/src/lib/csu/i386-elf.
*** Error code 1

Stop in /usr/src/lib.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.

Außerdem läßt sich dann der Zielordner (/usr/jails/mroot) nicht mehr löschen, da root keine Berechtigung hat, einen Unterordner namens "empty" zu löschen...?:confused:

rm -rf /usr/jails
rm: /usr/jails/mroot/var/empty: Operation not permitted
rm: /usr/jails/mroot/var: Directory not empty
rm: /usr/jails/mroot: Directory not empty
rm: /usr/jails: Directory not empty

# cd /usr/jails/mroot/var
# ls -la
total 6
drwxr-xr-x 3 root wheel 512 Feb 14 17:25 .
drwxr-xr-x 3 root wheel 512 Feb 14 17:25 ..
dr-xr-xr-x 2 root wheel 512 Feb 14 17:21 empty

Bin dankbar für jeden Tipp...!
 

moksit

Member
:rolleyes:...
Nein - hatte mich schon gewundert, warum das in der Anleitung nicht vorkommt...!
Wird wohl stillschweigend vorausgesetzt, daß man das vorher macht...
 

moksit

Member
Ok, wie nicht anders zu erwarten hat dieser Teil jetzt einwandfrei geklappt...;)
Allerdings hänge ich bei besagter Anleitung jetzt bei Punkt 5 - ich verstehe nicht, was da wohin verlinkt soll...?:confused:
 

moksit

Member
Und welchen von den vielen dort auftauchenden Punkten meint er?

Den hier:

5. Now, symlink the read-write file system to the read-only file system. Please make sure that the symlinks are created in the correct s/ locations. Real directories or the creation of directories in the wrong locations will cause the installation to fail.

# cd /home/j/mroot
# mkdir s
# ln -s s/etc etc
# ln -s s/home home
# ln -s s/root root
# ln -s ../s/usr-local usr/local
# ln -s ../s/usr-X11R6 usr/X11R6
# ln -s ../../s/distfiles usr/ports/distfiles
# ln -s s/tmp tmp
# ln -s s/var var

Wenn ich das Konzept richtig verstanden habe, bestehen die Jails aus einem RO und einem RW-Teil.
Der RO-Teil der Jail(s) (hier: "/home/j/mroot") wird unter dem Zielverzeichnis "/home/j/jailname" gemountet, der RW-Teil ("/home/js/jailname"), der mit den Files aus "/home/j/skel" bestückt ist, nach "/home/j/jailname/s".
Da vorher (Schritt 3 - s. Link zu Anleitung) einige Files/Ordner aus "/home/j/mroot" nach "/home/j/skel" verschoben wurden, ergibt das zusammen in der jail wieder eine komplette Verzeichnisstruktur, die wohl allerdings auch noch mittels zu erstellender Links verbunden werden muß (Da wie eben ausgeführt die Mountpoints unterschiedlich sind bzw. sein müssen - RO/RW).
Deshalb werden wohl in besagtem Schritt 5 im RO-Teil Links auf die im RW-Teil befindlichen bzw. gemounteten Ordner/Dateien gesetzt.
Was mich jetzt hier irritiert ist, das die Links laut Anleitung wohl teilweise auf ein direkt in "/home/j/mroot" zu erstellenden Verzeichnis "s" verweisen, und teilweise (so lese ich das "..." und ".../...in Schritt 5) auf zu erstellenden "s"-Ordner in den Verzeichnissen "/home/j/jailname"...?
Müßten nicht alle zu erstellenden Links in den "s"-Ordner der jeweiligen Jail verweisen, oder hab ich da was falsch verstanden?

Aber nur so als Tipp, für Jails nehme ich immer "ezjail" aus den Ports

Danke, schau ich mir mal an - hatte mich für dieses Konzept entschieden, da es aufgrund von geteilten Dateien einfach zu verwalten und platzsparend ist...
Also falls jemandem zu diesem Konzept noch was einfällt, wär ich dankbar.
 

Yamagi

Possessed With Psi Powers
Teammitglied
Wenn es platzsparend sein soll, würde ich über das in 6.3 gerade reparierte Unionfs gehen. Ein einziges Jail als untere Ebene, per Nullfs in verschiedene Verzeichnisse eingehängt. Dann über jedes dieser Verzeichnisse ein jailspezifisches Verzeichnis als obere Ebene. Und schon hat man komplette Jails :)
 

moksit

Member
Ok, hab's jetzt mal mit "ezjail" probiert, was soweit auch funktioniert.
Dazu allerdings 3 Fragen:
1. Wird in einer mit "ezjail-admin" erstellten Jail automatisch keine "rc.conf" bzw. "resolv.conf" angelegt - ist zumindest bei mir nicht der Fall...?
Soll bzw. kann man die dann nachträglich (händisch) in die Jail einfügen (um z. B. Dienste zu starten)?
2. "ping" ist aus der jail nicht erlaubt - muß ich da was mit "sysctl" im Host anpassen? Wie sieht es mit anderen Diensten (z.B. Mail) aus?
3. Kann ich eine Netzwerkkarte in einem IP-Bereich ausschließlich der Jail, nicht aber dem Host zuteilen (Host in Subnetz "A", Jail in Subnetz "B")?

DuG
 
Oben