bsdinstall zfsboot: Add an option to edit the ZFS pool creation options

From: Edward Sanford Sutton, III <mirror176_at_hotmail.com>
Date: Tue, 31 Dec 2024 20:13:59 UTC
   Noticed a commit added this to FreeBSD stable. Skimming through the 
commit and screenshots from the differential revision (haven't tested it 
personally yet) I see that it describes it as changing options to the 
ZFS pool but is then followed by changing options for datasets within 
the pool. There is a difference for options that apply to a pool versus 
options that apply to a dataset. I thought reading and writing 
properties is only sometimes interchangeable between pool and dataset 
with ZFS tools doing what is intended instead of what was asked while 
other times you just get an error. Can this be clarified for adjusting 
dataset(s) properties instead of pool properties if that is what is 
being done?
   Example screenshots form discussion while it was worked on normally 
showed compression=lz4 and atime=off which is the default for all but 1 
dataset last I reviewed what the installer is doing. I figure altering 
compression, encryption, (ref)reservation/quota would be more likely to 
be adjusted and away from defaults when adjustments are made by users.
   Setting options that apply to all datasets on the one pool is a handy 
quick override. Further expanding how users are prompted to be able to 
adjust each dataset individually would be more useful than having to 
change all datasets to use same override. This then opens up options 
like a read only dataset that won't be used for storage getting 
refreservation to force a certain amount of space to remain free; this 
example is a dataset property that is easy to add after the fact but 
likely more steps for someone wanting to automate an install with it 
being done during install but some proerties require being set during 
creation or have limitations and consequences otherwise.
   It would be useful if the installer gave us disk selection, likely 
combined with pool(s) creation but both could be separate configuration 
screens with one feeding to the next; that opens up options for multiple 
pool creation during install and with different devices, layouts, and 
options. Then having control of pool specific layout+options which I 
presume is quite hard to implement in a way giving full control to the 
user. After that, a list of all partitions/datasets where selecting them 
allows changing individual partition/dataset properties would be handy; 
inheriting the properties to other datasets should be part of the user 
prompt when adjusting datasets that others depend on.
   Such an installer layout should make adding geli, labels, etc. start 
to become easier to provide as additional options or entirely new layers 
between these for the installer's interface.