SCALE and preexisting home datasets

I’ve built a new system to replace an old system that runs CORE and am starting fresh with SCALE 24.10.2.1 and recreating the CORE configuration manually since there is not yet a stable upgrade path from 13.0-U6.7. I’ve imported datasets from a previous system via zfs replication and setup the users with the same UIDs and GIDs as the old system. I’m now ready to configure each user’s home directory but I’m having problems getting the home shares to show up in SMB clients. I’m using the same SMB clients that connect flawlessly to the old CORE system.

Pool and dataset structure
zpool
– home
-----(all home datasets)
– other dataset 1
– …

What I’ve tried:

  • Set zpool/home as home directory
  • Same but zpool/home/[user] instead
  • Set zpool/home as home directory, and enable Create Home Directory
  • Same but zpool/home/[user] instead
  • Creating a specialized SMB share that is to be used as user homes. This does not appear to be possible, as the advanced option Use As Home Share is greyed out within the SMB share creation interface.

In all cases, attempting to mount from Linux clients the UNC path \\server\home or \\server\home\[user] gives the following mount error no matter which user the SMB client is logging in as:
mount error(2): No such file or directory

In CORE we would create a specialized SMB share to designate a dataset as a home share, then create datasets or directories within it, then assign them as homes for each user. CORE would then automatically serve these as home directories for the users which would work fine as long as the home directories/datasets were within that specialized SMB share. SMB clients would then navigate to \\server\home to access their home share. This documentation page that describes this in 13.0 does not exist for SCALE 24.10:

The failure of the above experiments shows that home directories aren’t working at all for me. I tried the old method that CORE used, as well as the new/current method that SCALE 24.10 uses outlined in this document (which doesn’t explicitly tell you how to handle preexisting home directories so I could be doing something wrong):

In the experiments where I chose Create Home Directory, I saw that if it didn’t exist then it would create it and if it did exist then it would change the permissions of the existing dataset/directory appropriately. That part appears to be working fine, yet the home share is not appearing in the list of available shares when executing on the Linux clients smbclient -U [user] -L [server IP] and attempts to mount a home share anyways fail with the error mentioned above. How to enable the serving of home directories in the first place is a step that I appear to be missing. CORE’s step of configuring a specialized SMB share appears to be missing in SCALE’s documentation and I’m not seeing an equivalent replacement step.

What am I doing wrong? How do I setup user homes in SCALE? I would like to avoid manually creating a SMB share for each home directory/dataset.

The solution is very similar to the behavior that was in CORE 13.0, and is not explicitly documented in SCALE 24.10 documentation.

To create a home directory:

  1. Make sure a dataset exists that contains the user datasets that are to serve as the users’ homes. Let’s call the dataset “home”.

  2. Create a SMB share for that dataset, let’s call the SMB share “home”. Set the Purpose field as Private SMB Datasets and Shares. Enable the share.

  3. On a remote computer, mount the SMB share \[server]\home. If the user doesn’t already have a dataset or directory in home equal to its username, then one will be automatically generated at first SMB login.

Glad you got things working! So I can understand the critique here, are you saying you didn’t manage to find the documentation on setting up Private Datasets, https://www.truenas.com/docs/scale/24.10/scaletutorials/shares/smb/addsmbhomeshare/, or that what is there was inadequate for your needs? Is this a visibility or quality concern?

Note, what you were looking at in the Managing Users article discusses setting up user home directories (for shell access, for example), which isn’t the same thing as the home shares you were looking to replace. A link from there to the other procedure might help though?

I’m also curious what you mean by

There is a stable upgrade path, as documented in https://www.truenas.com/docs/softwarereleases/#upgrade-paths and the migration guide: CORE to SCALE Migrations | TrueNAS Documentation Hub.