Re: nfsroot erstellen

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Mon, 2 Jul 2007 17:35:37 +0200

On Mon, Jul 02, 2007 at 02:50:40PM +0200, Marian Hettwer wrote:
> Hallo Liste,
>
> ich probiere grade für ein diskless setup mir ein nfsroot zu bauen.
> Laut Handbuch folgendermassen:
> #!/bin/sh
> #
> export DESTDIR=/usr/local/nfsroot
> mkdir -p ${DESTDIR}
> cd /usr/src; make buildworld && make buildkernel
> cd /usr/src/etc; make distribution
>
> Leider scheint es nen Bug im Makefile in /usr/src/etc zu geben, da ein "make distribution" mit dieser Fehlermeldung stehen bleibt:
>
> cd /usr/src/etc; install -o root -g wheel -m 644 amd.map apmd.conf auth.conf crontab csh.cshrc csh.login csh.logout devd.conf devfs.conf dhclient.conf disktab fbtab freebsd-update.conf ftpusers gettytab group hosts hosts.allow hosts.equiv hosts.lpd inetd.conf login.access login.conf mac.conf motd netconfig network.subr networks newsyslog.conf portsnap.conf pf.conf pf.os phones profile protocols rc rc.bsdextended rc.firewall rc.firewall6 rc.initdiskless rc.sendmail rc.shutdown rc.subr remote rpc services shells snmpd.config sysctl.conf syslog.conf usbd.conf etc.i386/ttys /usr/src/etc/../gnu/usr.bin/man/manpath/manpath.config /usr/src/etc/../usr.bin/mail/misc/mail.rc /usr/src/etc/../usr.bin/locate/locate/locate.rc printcap /usr/local/nfsroot/etc; cap_mkdb -l /usr/local/nfsroot/etc/login.conf; install -o root -g wheel -m 755 netstart pccard_ether rc.suspend rc.resume /usr/local/nfsroot/etc; install -o root -g wheel -m 600 master.passwd nsmb.conf opieaccess
> /usr/local/nfsroot/etc; pwd_mkdb -L -i -p -d /usr/local/nfsroot/etc /usr/local/nfsroot/etc/master.passwd
> install: wrong number or types of arguments
> usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
> [-o owner] file1 file2
> install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
> [-o owner] file1 ... fileN directory
> install -d [-v] [-g group] [-m mode] [-o owner] directory ...
> *** Error code 64
>
> Stop in /usr/src/etc.
>
> Mir ist irgendwie nicht erklärbar wo der Fehler sein soll... Syntaktisch sieht ein "install -o root -g wheel -m 644 file1 file2 fileN" vollkommen richtig aus...
>
> Hat da jemand eine Idee?

Make distribution funktioniert nur auf einer aktuellen Welt.
Da dein System offensichtlich älter ist, als die Sourcen, von denen
du aus den make distribution versuchst hast du das Problem.

> Auf zur zweiten Frage: Gibt es eine Möglichkeit sich ein nfsroot schneller zu erstellen als via make world?

Naja - du kannst auch die tgz von einer Install-CD entpacken.

> Es gibt in /usr/share/examples/diskless ein script namens clone_root, was aber scheinbar noch aus FreeBSD 4.x tagen besteht...
> Offensichtlichen Änderungsbedarf in dem Script sehe ich hier:
> SYSDIRS="dev proc root usr var"
> TOCOPY="bin boot compat etc modules sbin stand sys"

Einfach rüberkopieren tut natürlich auch.
Selbstverständlich musst du die Konfiguration entsprechend bereinigen.

> da sollen Verzeichnisse kopiert werden, die in FreeBSD 6 nicht mehr existieren.
> Offensichtlich müsste die Liste anders aussehen. Beispielsweise proc und stand raus, dafür /libexec mit rein.

Bin ich überfragt.
Ich kopiere immer mit cpio:
find -d -x / /usr /var | cpio -pdvm /mein/nfsroot

> Hat vielleicht jemand ein funktionierendes clone_root für FreeBSD 6 im Angebot? :)

Du kannst auch einfach in die Manpage vom cp schauen.
Programme zum kopieren von Verzeichnissbäumen gibt es reichlich.

> Insgesamt erscheint mir nämliche clone_root als deutlich schnellerer Weg um sich ein nfsroot zu basteln.

Findest du nicht, dass ein solches Script den einfachen Vorgang des
kopierens unnötig mystifiziert?

-- 
B.Walter                http://www.bwct.de      http://www.fizon.de
bernd(at)bwct.de           info(at)bwct.de            support(at)fizon.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 02 Jul 2007 - 17:37:56 CEST

search this site