interesting cross-install failure

David Frech lambda at
Tue Oct 26 21:47:39 PDT 2004

I was able to successfully buildworld and buildkernel in /dfly/usr/src.

I ran into interesting difficulties when trying to install from
/dfly/usr/src to /dfly.

For background, as an experiment I was trying to do a "fresh" install (a
sort of bootstrap) via source, on a machine running FreeBSD 4.10. I fdisked
and disklabeled a new disk, mounted it (/dfly and /dfly/usr), cvsupped the
DragonFly source onto it, and built the system & kernel.

Installing gets tricky, in three places. mergemaster, for whatever reason,
refused to DTRT (even using -m) - it kept mysteriously wanting to install
FreeBSD files -  so instead I had to do

  cp -pR /dfly/usr/src/etc /dfly/etc

to get an etc to start with.

Also, when I tried to installkernel, it complained that I was missing parts
of the directory hierarchy - most of it in fact! So I decided to do
installworld first, thinking it would probably create the missing dirs.

Doing that I discovered a subtle issue with the install _program_. It
_implicitly_ refers to the "host" machine's /etc/master.passwd and
/etc/group, and there is no way to override this, and since installworld
uses symbolic rather than numeric uid's and gid's, and since DragonFly
introduces a few new uid's and gid's (compared to FBSD 4.10), install
complains, and installworld fails.

I tried using chroot, but figure out a way to make it work.

My interim simple solution was to add the necessary id's to
/etc/master.passwd and /etc/group. Doing that, the installworld and
installkernel were successful.

I've crufted together an rc.conf and fstab. Maybe it'll boot...

Has anyone ever tried anything like this, and is worth trying to
change/fix? Now that I have DragonFly "bootstrapped" onto this disk I won't
have this trouble in the future; even so, I thought the process was worth


- David

More information about the Kernel mailing list