Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Sep 2011 08:55:17 +0930
From:      "Daniel O'Connor" <doconnor@gsoft.com.au>
To:        Craig Rodrigues <rodrigc@crodrigues.org>
Cc:        freebsd-current Current <freebsd-current@freebsd.org>
Subject:   Re: Custom installer woes (can't mount / RW)
Message-ID:  <853AC658-9F23-4DC1-9004-CFF6AAD108F7@gsoft.com.au>
In-Reply-To: <CAG=rPVe4RfFpHgTzGEL_-NhT9yGivpuvXdQZ2z-kFnpbmO3_vQ@mail.gmail.com>
References:  <B1A112E0-2DC5-42D0-9C57-C703339D0385@gsoft.com.au> <CAG=rPVe4RfFpHgTzGEL_-NhT9yGivpuvXdQZ2z-kFnpbmO3_vQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 01/09/2011, at 18:17, Craig Rodrigues wrote:
> Does it make a difference if you change this line in your script:
>=20
> echo '/dev/gpt/swap	/		swap	sw	0	0' =
>>${TMPDIR}/mnt/etc/fstab
>=20
> to:
>=20
> echo '/dev/gpt/swap	none		swap	sw	0	0' =
>>${TMPDIR}/mnt/etc/fstab
>=20
> Mounting of the root file system "/" is a very interesting thing.

Ahh $CURSE, that is it! I changed it to none and now it works properly!

> During early bootup, when loader(8) runs, it has to read the root file
> system to find and load the kernel,
> but it also reads /etc/fstab (if it is there)  and sets some
> environment variables, having to do with mounting the
> root file system.  This logic is in src/sys/boot/common/boot.c in the
> getrootmount() function.  The environment
> variables which are set are "vfs.root.mountfrom", and
> "vfs.root.mountfrom.options".
>=20
> After your install script runs, you should break into the loader
> before the kernel loads, and look at the value of those two
> environment variables.

Interestingly mountfrom is correct, I also tried setting it in the =
loader to /dev/da0p2 but no change.

> If there is something else wrong, you need to look into the logic
> in src/sys/kern/vfs_mount.c in the vfs_mountroot() function.

I wonder if there is something in this - perhaps the loader using the =
first match and mount is using the last.

> BTW, once you solve your issue, do you have time to review the
> following document which I am in the middle
> of submitting to the FreeBSD Documentation Project:
>=20
> "PXE Booting with an NFS root file system"
> =
http://people.freebsd.org/~rodrigc/doc/doc/en_US.ISO8859-1/books/handbook/=
network-pxe-nfs.html
>=20
> It's not 100% related to your current issue, but I have used PXE
> Booting + NFS root, to write custom installers for
> FreeBSD.


I had a read and it seems OK, although I didn't actually try it.

You may wish to elaborate on step 14. For example, some ports will fail =
to build (and probably install) unless /dev is setup correctly.

I do the following to create the chroot for port builds..

sudo mount -t devfs devfs /tmp/${RELNAME}-ports/dev
sudo mkdir /tmp/${RELNAME}-ports/usr/ports
sudo mount -t nullfs -o ro /usr/ports /tmp/${RELNAME}-ports/usr/ports
sudo mount -t nullfs -o ro /usr/src /tmp/${RELNAME}-ports/usr/src


--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C









Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?853AC658-9F23-4DC1-9004-CFF6AAD108F7>