First, a little background for context:
However, I see that GELI is deprecated on TrueNAS (though, incidentally, I also see that it's used for the swap space). So, before even setting up a pool with the hard drives I've installed, I've been poking around on the web interface to try to figure out how I would encrypt things instead. While doing so, I noticed that lots of stuff from the built-in "TrueNAS M.2 boot device" was already mounted -- not just boot code -- including stuff that I would greatly prefer to be encrypted (e.g.
So, I spent some time trying to figure out exactly what I would need to keep there, unencrypted, and how to move everything else to "real" drives which I would encrypt. I'm no low-level booting/etc. guru, and I'm pretty lazy to boot, so eventually, I gave up on this, and decided screw it, I'll just use this new machine for stuff that I either don't need encrypted or storage of files that I encrypt at the file level, plus maybe a specific encrypted pool for ad-hoc purposes.
I then proceeded to the next step of setting the machine up: Create ZFS pools for the "real" drives that I had installed. When I did so, I noticed that the first one I created had automatically been labeled as a "System Dataset Pool", and was pleasantly surprised to then discover that a bunch of the things that had been mounted from the "boot pool" were now mounted from my "real" pool instead. This gave me some hope that I might be able to configure encryption how I really want after all, or at least a lot closer to how I really want. However, I still have some questions:
1. At first, I thought everything but the boot stuff was now mounted from the "real" pool. But on closer inspection, I see that there are still other things that are apparently still coming from the boot pool, some of which I would very much like to be encrypted (e.g.
2. Similar question for
3. Ideally, I'd like the machine's root directory to be mounted from the encrypted pool, rather than needing to worry about individual items like
4. In all of this, I am imagining an end goal of startup/encryption that's functionally a lot like the FreeBSD setup I'm used to: When the machine powers on, there's some very minimal system that does very little besides asking for the password to unencrypt the "real" system. Am I on the right track here?
5. In regards to #4, I'm also wondering about where/how I would enter that password. On my FreeBSD boxes, I physically go to the computer, which is hooked up to a monitor and a keyboard, and I type it in there. But I don't have any such stuff for my new TrueNAS box, so I'm wondering... would the built-in web console thing be accessible, and allow me to enter the password to start up the "real" system?
6. Just curious: What's wrong with GELI?
Thanks in advance for any help.
- I recently purchased a TrueNAS Mini XL+, with TrueNAS Core on it.
- I've never used TrueNAS (or FreeNAS) before.
- I've used FreeBSD, though - a lot, and for decades.
- I've long used GELI for encryption.
- I've never used ZFS-level encryption.
- I've used ZFS, though, for years.
However, I see that GELI is deprecated on TrueNAS (though, incidentally, I also see that it's used for the swap space). So, before even setting up a pool with the hard drives I've installed, I've been poking around on the web interface to try to figure out how I would encrypt things instead. While doing so, I noticed that lots of stuff from the built-in "TrueNAS M.2 boot device" was already mounted -- not just boot code -- including stuff that I would greatly prefer to be encrypted (e.g.
/root
and Samba stuff).So, I spent some time trying to figure out exactly what I would need to keep there, unencrypted, and how to move everything else to "real" drives which I would encrypt. I'm no low-level booting/etc. guru, and I'm pretty lazy to boot, so eventually, I gave up on this, and decided screw it, I'll just use this new machine for stuff that I either don't need encrypted or storage of files that I encrypt at the file level, plus maybe a specific encrypted pool for ad-hoc purposes.
I then proceeded to the next step of setting the machine up: Create ZFS pools for the "real" drives that I had installed. When I did so, I noticed that the first one I created had automatically been labeled as a "System Dataset Pool", and was pleasantly surprised to then discover that a bunch of the things that had been mounted from the "boot pool" were now mounted from my "real" pool instead. This gave me some hope that I might be able to configure encryption how I really want after all, or at least a lot closer to how I really want. However, I still have some questions:
1. At first, I thought everything but the boot stuff was now mounted from the "real" pool. But on closer inspection, I see that there are still other things that are apparently still coming from the boot pool, some of which I would very much like to be encrypted (e.g.
/root
, /usr
). Can I get that stuff into the encrypted pool too, somehow? Obviously I could copy it into the encrypted pool, but I'm concerned about how the system might react if I then tried to switch, live, from the original (boot drive's) /usr
or /root
or whatever to the new one. Maybe there's a way to do this through some sort of TrueNAS equivalent of a FreeBSD live image, or something?2. Similar question for
/etc
, which is listed as tmpfs
; not sure where the actual data in there came from?3. Ideally, I'd like the machine's root directory to be mounted from the encrypted pool, rather than needing to worry about individual items like
/usr
or /root
. Anything on the live system that really needs to come from the built-in "boot device" would be the exception from the mounting point of view, not (as it currently seems) the default. Not sure if I'm being clear about this, so, for example: Right now, if I were to mkdir /blah
, it seems to me that directory would be created on the boot device, since (unless I'm misunderstanding something here) the boot device contains what is mounted as /
. But I'd like it to instead be created on the "real" hard drives, such as would happen if /
were mounted from there. Can that be done?4. In all of this, I am imagining an end goal of startup/encryption that's functionally a lot like the FreeBSD setup I'm used to: When the machine powers on, there's some very minimal system that does very little besides asking for the password to unencrypt the "real" system. Am I on the right track here?
5. In regards to #4, I'm also wondering about where/how I would enter that password. On my FreeBSD boxes, I physically go to the computer, which is hooked up to a monitor and a keyboard, and I type it in there. But I don't have any such stuff for my new TrueNAS box, so I'm wondering... would the built-in web console thing be accessible, and allow me to enter the password to start up the "real" system?
6. Just curious: What's wrong with GELI?
Thanks in advance for any help.