conf/88293: /etc/rc.initdiskless broken

Joerg Pulz Joerg.Pulz at frm2.tum.de
Mon Oct 31 12:30:19 PST 2005


>Number:         88293
>Category:       conf
>Synopsis:       /etc/rc.initdiskless broken
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Oct 31 20:30:17 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Joerg Pulz
>Release:        FreeBSD 6.0-RC1
>Organization:
TU-Munich / ZWE FRM-II
>Environment:
FreeBSD localhost 6.0-RC1 FreeBSD 6.0-RC1 #0: Sun Oct  9 20:32:57 UTC 2005     root at x64.samsco.home:/usr/obj/usr/src/sys/GENERIC i386
>Description:
              Setting up a FreeBSD diskless client with read-only root filesystem
              is not working if one is using /conf/base/etc.cpio.gz as /etc base.

              The first problem is the use of the pax(1) command to extract the
              etc.cpio.gz file into the mfs for /etc. pax(1) is bailing out with
              > pax: Invalid combination of options: -f -p -r -x
              If the "-x cpio" option is removed pax(1) is working correctly and
              is determining the archive type automatically.

              The next problem is related to pax(1) too but only happens with a
              read-only /tmp via NFS. pax(1) tries to create a temporary file to
              store directory times in /tmp. If /tmp comes read-only (together
              with / via NFS) pax(1) is bailing out again. Unfortunately, it is
              not possible to create an mfs based /tmp without hacking
              rc.initdiskless as mounting filesystems from /etc/fstab or creating
              an mfs based /tmp via /etc/rc.d/tmp is done later.

              The same applies to FreeBSD-5.4 and /etc/rc.d/initdiskless.
>How-To-Repeat:
              Follow the instructions for diskless(8) to setup the whole thing.
              Generate an appropriate /conf/base/etc.cpio.gz from your
              distribution /etc dir.
              PXEboot the client and wait for rc.initdiskless to kick in.
>Fix:
              The first problem can be fixed by removing "-x cpio" from the pax(1)
              invocation line in rc.initdiskless.
              The second problem can be fixed by forcing the execution of
              "/etc/rc.d/tmp start" in /etc/rc before rc.initdiskless is started.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list