Thumper: Putting Blastwave on ZFS

Since the root file system is a meagre 11GB, I figured I’d try and use my ZFS pool for installing Blastwave which is a system built on top of Solaris’ own packaging mechanism with access to lots of extra software that I can’t live without. Like sudo for example, at least until I figure out how the Solaris native RBAC mechanism works! So, I did something along the lines of:

zfs create zpool1/software
zfs create zpool1/software/blastwave
zfs set mountpoint=/opt/csw zpool1/software/blastwave
pkgadd -d http://www.blastwave.org/pkg_get.pkg

But I noticed that, at installation time, I was getting errors:

pkgadd: ERROR: unable to create package object </opt/csw/bin>.
    pathname does not exist
    pathname does not exist
    unable to fix attributes
/opt/csw/bin

Looking at it now, in the cold light of morning, the answer might have been obvious. However, it took me a while last night to figure it out. Eventually, I compared the options the filesystems were mounted with, thinking that it might be missing a setuid/exec flag and noticed that it was missing the xattr flag. Hmm. “xattr” and “unable to fix attribtues” sound like they might be a match, eh?

Digging around in the ZFS Administration Guide (I’ve got a PDF here, it’s page 19 if you’re following along at home), it appears that the xattr property on ZFS filesystems — which enables extended attributes on a per-filesystem basis — was introduced in Nevada build 56 and doesn’t appear to be available in Solaris 10 U3. I am inferring from this information that ZFS in Solaris 10 U3 doesn’t actually support extended attributes.

Two questions I have at this stage:

  • Am I correct in my inference?
  • Does it matter, or can I just ignore those errors?

Update I’ve researched the matter more thoroughly and it turns out I’d jumped to completely the wrong conclusion. Read the next round of investigation at: Thumper: Debugging and not jumping to conclusions.

3 thoughts on “Thumper: Putting Blastwave on ZFS

  1. Oh, and I doubt that xattr is your problem. Very few programs use extended attributes, and I’m pretty sure that the package system isn’t one of them. Normally when it’s talking about attributes it means permissions and mtime.

    I’d be more concerned about the “pathname does not exist” messages. You may like to throw truss (or dtrace) at it to see what pathname it’s complaining about.

  2. Boyd: Thanks for the RBAC intro. That’s about enough to throw away sudo for now.

    As for the ‘pathname does not exist’, I shall continue to poke at it and see what’s going wrong when I boot the noise-meister up today. I’d, umm, forgotten about using truss and hadn’t considered trying dtrace. This could be a good excuse to learn how it works!