/root on a separate dataset breaks FreeBSD-base installation

Rodney W. Grimes freebsd-rwg at gndrsh.dnsmgr.net
Sat Apr 11 17:03:39 UTC 2020


> On Sat, 11 Apr 2020 09:42:49 -0700 (PDT)
> "Rodney W. Grimes" <freebsd-rwg at gndrsh.dnsmgr.net> wrote:
> 
> > [ Charset UTF-8 unsupported, converting... ]
> > > I am following https://wiki.freebsd.org/PkgBase
> > > 
> > > This:
> > > 
> > > pkg install -g 'FreeBSD-*'
> > > 
> > > fails with this:
> > > 
> > > [2/800] Extracting FreeBSD-runtime-12.1_3:?? 4%
> > > pkg: Fail to create hardlink: 
> > > /root/.pkgtemp..cshrc.v5sxGCRu3GlP:Cross-device link
> >                  ^^^^^^
> > 
> > 
> > > [2/800] Extracting FreeBSD-runtime-12.1_3: 100%
> > > 
> > > /root is in a different ZFS dataset. It works fine if it's not. Why pkg 
> > > is using /root/.pkgtemp instead of /tmp or /var/tmp? It doesn't matter 
> > > from where I run the command, looks like the path is hardcoded.
> > 
> > The failure is caused by the fact that /.cshrc and /root/.cshrc
> > are hardlinked to each other.  A hardlink can not cross a
> > ZFS dataset or a ufs mount point.
> 
>  Ah right.
> 
> > > 
> > > Can I workaround with some option to pkg?
> > 
> > I doubt that.
> 
>  Someone (tm) should add support for this in pkg.

An option to convert hardlinks to symlinks or duplicate files could be done.  

For the person with this problem there are ways to work around it
by not making /root a seperate dataset, create /toor data set,
set toor login home to /toor, use that for what ever it is that
made you feel you needed to have /root as its own data set.

> > > GrzegorzJ
> > Rod Grimes                                                 rgrimes at freebsd.org
> Emmanuel Vadot <manu at bidouilliste.com> <manu at freebsd.org>
-- 
Rod Grimes                                                 rgrimes at freebsd.org


More information about the freebsd-pkgbase mailing list