<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://openzfsonosx.org/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://openzfsonosx.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Srirangav</id>
		<title>OpenZFS on OS X - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://openzfsonosx.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Srirangav"/>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Special:Contributions/Srirangav"/>
		<updated>2026-04-19T13:23:53Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.22.3</generator>

	<entry>
		<id>https://openzfsonosx.org/wiki/FAQ</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/FAQ"/>
				<updated>2021-09-07T01:35:52Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: add link time machine backups in the wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:About O3X]]&lt;br /&gt;
&lt;br /&gt;
Besides the questions covered below, you may find [[Documentation]] and [[OpenZFS on OS X]] helpful. Both articles contain a good deal of information about OpenZFS on OS X.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
===Q) What is OpenZFS on OS X?===&lt;br /&gt;
'''A)''' See the article entitled [[OpenZFS on OS X]].&lt;br /&gt;
&lt;br /&gt;
===Q) What does O3X mean?===&lt;br /&gt;
'''A)''' O3X = O O O X = '''O'''penZFS '''o'''n '''O'''S '''X'''.&lt;br /&gt;
&lt;br /&gt;
===Q) What version of ZFS do you use?===&lt;br /&gt;
'''A)''' OpenZFS. Pool version 5000. File system version 5. Pool version 5000 is pool version 28 plus support for feature flags. We support pool version 5000 and pool versions less than or equal to 28. We do not support the closed-source Oracle Solaris ZFS pool versions 29 and up.&lt;br /&gt;
&lt;br /&gt;
===Q) Can I set up a test pool using files instead of disks?===&lt;br /&gt;
'''A)''' Yes. The example uses simple files, its also possible to use disk images.&lt;br /&gt;
&lt;br /&gt;
  $ cd /tmp&lt;br /&gt;
  $ mkfile 10G aaa&lt;br /&gt;
  $ mkfile 10G bbb&lt;br /&gt;
  $ mkfile 10G ccc&lt;br /&gt;
  $ sudo zpool create tank raidz /tmp/aaa /tmp/bbb /tmp/ccc&lt;br /&gt;
  $&lt;br /&gt;
&lt;br /&gt;
===Q) I compiled from source, how do I know that I am running what I compiled?===&lt;br /&gt;
'''A)''' There are a couple of sysctls that can be read to determine what commit was compiled into your custom kexts. Assuming you used zfsadm to build, or that you executed the autoconf, and configure steps before compiling the following works.&lt;br /&gt;
&lt;br /&gt;
  $ sysctl -a | grep kext&lt;br /&gt;
      spl.kext_version: 1.5.2-2_g'''115aa2f'''&lt;br /&gt;
      zfs.kext_version: 1.5.2-33_g'''9ac66a7'''&lt;br /&gt;
&lt;br /&gt;
  $ cd &amp;lt;path to source code&amp;gt;/zfs&lt;br /&gt;
  $ git log -n 1&lt;br /&gt;
      commit '''9ac66a7'''1e53636eec04f4718b0b3870a18f07840&lt;br /&gt;
         Merge: 3326995 890ef86&lt;br /&gt;
         Author: zadmin &amp;lt;zadmin@jerry.local&amp;gt;&lt;br /&gt;
         Date:   Thu Jun 16 17:19:24 2016 +1000&lt;br /&gt;
&lt;br /&gt;
         Merge branch 'master' of https://github.com/openzfsonosx/zfs&lt;br /&gt;
&lt;br /&gt;
  $ cd &amp;lt;path to source code&amp;gt;/spl&lt;br /&gt;
  $ git log -n 2&lt;br /&gt;
       commit f1ff660a2f1fa340d451c2afa5f726f9bd3e609d&lt;br /&gt;
       Author: Brendon Humphrey &amp;lt;brendon.humphrey@mac.com&amp;gt;&lt;br /&gt;
       Date:   Sat Jun 18 20:25:09 2016 -0700&lt;br /&gt;
       ...&lt;br /&gt;
       commit '''115aa2f'''05b6f843e0d39d4f6bf999602db120113&lt;br /&gt;
       Author: Jorgen Lundman &amp;lt;lundman@lundman.net&amp;gt;&lt;br /&gt;
       Date:   Thu May 12 09:48:31 2016 +0900&lt;br /&gt;
       ...&lt;br /&gt;
&lt;br /&gt;
I have highlighted the relevant text to match. You can see that this machine is running the latest ZFS, and is one commit behind the latest SPL.&lt;br /&gt;
&lt;br /&gt;
If you make a small local change to the code then this technique will not work. One workaround for that is to edit your file(s) and commit them in your repository clone, that way it will have a commit id.&lt;br /&gt;
&lt;br /&gt;
== Best practices ==&lt;br /&gt;
&lt;br /&gt;
===Q) Do I have to use mirrors or raidz? ===&lt;br /&gt;
'''A)''' Have to? No. Should you? Virtually always. ZFS will not be able to repair errors it finds unless you have redundancy at the vdev level.&lt;br /&gt;
&lt;br /&gt;
===Q) Can I set copies=2 in lieu of using mirrors or raidz? ===&lt;br /&gt;
Setting copies=2 is a poor substitute for vdev-level redundancy. Two copies on a broken drive are worthless. That being said, yes, you can set copies=2. Do so at your own risk.&lt;br /&gt;
&lt;br /&gt;
== Administration ==&lt;br /&gt;
&lt;br /&gt;
===Q) How can I access the .zfs snapshot directories?===&lt;br /&gt;
'''A)''' You need to set snapdir visible and manually mount a snapshot.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo zfs set snapdir=visible tank/bob&lt;br /&gt;
$ sudo zfs mount tank/bob@yesterday&lt;br /&gt;
$ ls -l /tank/bob/.zfs/snapshot/yesterday/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You can see existing snapshots via:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ zfs list -t snapshot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Q) Is .zfs snapdir auto-mounting supported?===&lt;br /&gt;
'''A)''' No, not at this time. You must manually &amp;quot;zfs mount&amp;quot; snapshots manually to see them in the snapdir.&lt;br /&gt;
&lt;br /&gt;
===Q) OK, I manually mounted my snapshot but still cannot see it in Finder. What gives?===&lt;br /&gt;
'''A)''' Currently mounted snapshots are only visible from Terminal, not from Finder.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ls -l /tank/bob/.zfs/snapshot/yesterday/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Q) Why does OSX server not allow the server storage to be on ZFS?===&lt;br /&gt;
'''A)''' OSX Server has been coded in such a way as to only allow the server storage area to be an HFS formatted drive. O3X offers a feature that causes ZFS datasets to identify themselves as HFS. This is sufficient for OSX server to allow storage on a ZFS filesystem. HFS mimic is enabled by setting the com.apple.mimic_hfs property on a per dataset basis.&lt;br /&gt;
&lt;br /&gt;
In addition as of OSX Server 5.x it seems that the Application Store Caching server can only store its cache on HFS. This is a new behaviour. I just used an HFS formatted ZVOL to get around this. &lt;br /&gt;
&lt;br /&gt;
  sudo zfs create -o volblocksize=1m -s -V 250g tank/cachingzvol&lt;br /&gt;
&lt;br /&gt;
== Interoperability ==&lt;br /&gt;
&lt;br /&gt;
===Q) How do I create an O3X compatible pool on another OpenZFS platform? ===&lt;br /&gt;
'''A)''' Only enable feature flags supported by O3X, as discussed [https://openzfsonosx.org/wiki/Zpool#Feature_flags here].&lt;br /&gt;
&lt;br /&gt;
===Q) Can I import my ZEVO pools?===&lt;br /&gt;
'''A)''' Yes. O3X can import pool version 28, which means it can import ZEVO pools.&lt;br /&gt;
&lt;br /&gt;
===Q) Can I import my MacZFS pools?===&lt;br /&gt;
'''A)''' Yes. O3X can import pool version 8, which means it can import MacZFS pools.&lt;br /&gt;
&lt;br /&gt;
===Q) Do HFS-only applications such as Photos, iCloud Drive and macOS Server work on ZFS?===&lt;br /&gt;
'''A)''' Sometimes. Apple codes some software to only work when stored on HFS. We can't change that. We have provided a property that causes ZFS filesystems to identify themselves as a HFS when enabled. We are unable to guarantee that the application will work 100% correctly as HFS may have specific behaviours that the application depends on, and ZFS may not behave identically.&lt;br /&gt;
   &lt;br /&gt;
    sudo zfs set com.apple.mimic_hfs=on &amp;lt;dataset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Q) Does Spotlight work? ===&lt;br /&gt;
'''A)''' Yes. Spotlight works on O3X 1.3.1+.&lt;br /&gt;
&lt;br /&gt;
===Q) Can Time Machine backups be stored on ZFS? ===&lt;br /&gt;
'''A)''' Yes. It is possible to host a TimeMachine backup within a SparseImage on ZFS, or an HFS formatted ZVOL On ZFS.  See: https://openzfsonosx.org/wiki/Time_Machine_Backups&lt;br /&gt;
&lt;br /&gt;
===Q) Updating crypto to 2.0 ===&lt;br /&gt;
'''A)''' If you go from 1.9.4 (or earlier) and use crypto, you will get &amp;quot;mount returns -1&amp;quot;. This is due to missing&lt;br /&gt;
features userobjquota, groupobjquota and projectquotas. The pool will need &amp;quot;zpool upgrade&amp;quot; before you can mount it. &lt;br /&gt;
Please remember this means you can not go back to 1.9.4, as with all pool upgrades.&lt;br /&gt;
&lt;br /&gt;
===Q) Updating crypto to 2.0 from earlier 2.0-rc ===&lt;br /&gt;
'''A)''' There was a few early releases of 2.0-rc, where the MAC was calculated incorrectly, and you will see:&lt;br /&gt;
         rpool/crypt:&amp;lt;0x0&amp;gt;&lt;br /&gt;
However, issuing &amp;quot;zpool scrub&amp;quot; will clear this issue (as it re-computes the MAC).&lt;br /&gt;
&lt;br /&gt;
===Q) Uninstalling on Big Sur and later ===&lt;br /&gt;
'''A)''' Unfortunately, macOS from BigSur has a tendency to &amp;quot;hold on&amp;quot; to kexts, and here is the best way to make sure the kext is not loaded:&lt;br /&gt;
         Boot into recovery mode&lt;br /&gt;
         Launch Terminal&lt;br /&gt;
         # kmutil trigger-panic-medic --volume-root /Volumes/&amp;lt;YourVolumeName&amp;gt; &lt;br /&gt;
         As in &amp;quot;/Volumes/MacintoshHD&amp;quot; or similar.&lt;br /&gt;
         reboot normally. &lt;br /&gt;
         trigger-panic-medic will remove all 3rd party kexts, so you need to &amp;quot;Approve&amp;quot; any kexts&lt;br /&gt;
         you want to keep, just make sure to skip zfs.kext.&lt;br /&gt;
         Clean up all files:&lt;br /&gt;
         # sudo rm -rf /Library/Extensions/zfs.kext /usr/local/zfs/&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
===Q) Can I use finder permissions aka ACLs? ===&lt;br /&gt;
'''A)''' Not yet. There is work to go in this area. See https://github.com/openzfsonosx/zfs/issues/275&lt;br /&gt;
&lt;br /&gt;
===Q) Can I boot my computer off of O3X?===&lt;br /&gt;
'''A)''' Yes. See https://openzfsonosx.org/wiki/ZFS_on_Boot&lt;br /&gt;
&lt;br /&gt;
===Q) So if I use O3X, that means I don't need to back up, right? ===&lt;br /&gt;
'''A)''' Wrong. Wrong. Wrong. &lt;br /&gt;
&lt;br /&gt;
===Q) Can TimeMachine backup the contents of a ZFS volume? ===&lt;br /&gt;
'''A)''' No. We believe that when &amp;quot;Issue 116&amp;quot; is resolved it may be supportable. At the present time TimeMachine excludes ZFS filesystems from the list of available backup targets.&lt;br /&gt;
&lt;br /&gt;
===Q) How does auto-import work ? ===&lt;br /&gt;
'''A)''' Auto-import on boot is handled by Launchd, from the file '''/Library/LaunchDaemons/org.openzfsonosx.zpool-import-all.plist'''. Which executes the script&lt;br /&gt;
'''/usr/local/libexec/zfs/launchd.d/zpool-import-all.sh''' to import files. You can unload the plist, or if you want to temporarily stop auto-import, simply comment&lt;br /&gt;
out the line '''&amp;quot;${ZPOOL}&amp;quot; import -a -d /var/run/disk/by-id''' by placing a '''#''' in front of it.&lt;br /&gt;
&lt;br /&gt;
===Q) I can't see my pools? ===&lt;br /&gt;
'''A)''' First make sure that '''diskutil list''' will show the disk(s) used in your pool. If not, you have a hardware and/or OsX problem to solve. Second step is running '''zpool import''' and possibly '''zpool import -d /dev''' to make ZFS inspect all disks on your system, looking for pools. The command will list any pools that it can find, and the state they are in, except for pools already imported (You can run '''zpool list''' to display the imported pools). After that, you would run '''zpool import poolname''' to import the pool, where ''poolname'' is replaced with the name of your pool. If you need further assistance, ask on the forum, irc, or, in the case of panics, create a ticket under the github repository.&lt;br /&gt;
&lt;br /&gt;
===Q) Auto-import fails after Catalina? ===&lt;br /&gt;
'''A)''' System Preferences -&amp;gt; Security &amp;amp; Privacy -&amp;gt; Full Disk Access by allowing bash. (bash used by auto-import script, change to 'sh' for lingon.)&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Time_Machine_Backups</id>
		<title>Time Machine Backups</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Time_Machine_Backups"/>
				<updated>2021-08-10T23:43:09Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: /* zvols */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Backup to Local Disk ==&lt;br /&gt;
There are two approaches to using ZFS for Time Machine Backups - Sparsebundles on a ZFS data set and zvols formatted as HFS+.&lt;br /&gt;
&lt;br /&gt;
=== Sparsebundles ===&lt;br /&gt;
Here's one approach to using ZFS for your Time Machine Backups.  &lt;br /&gt;
&lt;br /&gt;
Because Time Machine doesn't recognize ZFS datasets as a compatible disk for Time Machine backups, as a work around, we create an HFS+ sparsebundle disk image, store it on a ZFS dataset, and set the mounted image as a backup destination (no &amp;quot;TMShowUnsupportedNetworkVolumes&amp;quot; needed).&lt;br /&gt;
&lt;br /&gt;
1. Create, and mount, a sparsebundle from a ZFS dataset (e.g., with makeImage.sh or Disk Utility.app).&lt;br /&gt;
&lt;br /&gt;
2. Set the sparsebundle as the (active) backup destination: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# tmutil setdestination -a /Volumes/[sparse bundle volume name]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While it has been discussed in heated arguments (e.g., https://github.com/openzfsonosx/zfs/issues/66) I still believe there's at least one ZFS feature I'd like to test with Time Machine: compression.&lt;br /&gt;
&lt;br /&gt;
The hypothesis being that an HFS+ sparsebundle stored on a compressed (gzip, lz4), deduped dataset should&lt;br /&gt;
yield a compression ratio &amp;gt; 1.0 (previously observed 1.4 with compression=on, dedup=off, FreeBSD network Time Machine drives).&lt;br /&gt;
&lt;br /&gt;
=== zvols ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create a zvol to use for Time Machine backups:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo zfs create -V [size] [pool]/[volume]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, the following will create a 1TB volume named tmdisk1 on a zpool named Backup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo zfs create -V 1T Backup/tmdisk1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Get OSX disk number corresponding to the zvol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ioreg -trn &amp;quot;ZVOL [pool]/[volume] Media&amp;quot; | awk -F'&amp;quot;' '/BSD Name/ {print $4;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if a zvol named tmdisk1 was created as shown above, the following will get its disk number and store it in the shell variable DISKID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ioreg -trn 'ZVOL Backup/tmdisk1 Media' | awk -F'&amp;quot;' '/BSD Name/ {print $4;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Format the zvol as a HFS+, using its disk number from the previous step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil eraseDisk JHFS+ [OSX Disk Name] [disk number]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was disk5 in OSX, the following will format that disk as a HFS+ disk named &amp;quot;TimeMachine&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil eraseDisk JHFS+ &amp;quot;TimeMachine&amp;quot; disk5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For newer systems (Big Sur), because Time Machine now prefers apfs (see&lt;br /&gt;
https://support.apple.com/en-au/guide/mac-help/mh15139/mac), the following&lt;br /&gt;
commands should create a apfs zvol that Time Machine can use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo diskutil eraseDisk JHFS+ [OSX Disk Name] GPT [disk number]&lt;br /&gt;
sudo diskutil apfs create [disk number]s[slice number] [OSX Disk Name]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was disk5 in OSX, and the HFS+ volume on that zvol&lt;br /&gt;
was on slice 1 (which can be confirmed using '&amp;lt;code&amp;gt;diskutil list disk5&amp;lt;/code&amp;gt;')&lt;br /&gt;
the following should format that disk as a apfs disk named &amp;quot;TimeMachine&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo diskutil eraseDisk JHFS+ &amp;quot;TimeMachine&amp;quot; GPT disk5&lt;br /&gt;
sudo diskutil apfs create disk5s1 &amp;quot;TimeMachine&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Set the zvol as a Time Machine destination:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo tmutil setdestination -a /Volumes/[OSX Disk Name]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in&lt;br /&gt;
the previous steps, the following will set it as a Time Machine destination:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo tmutil setdestination -a /Volumes/TimeMachine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;(Optional) Enable encryption for Time Machine backups on the zvol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;For HFS+ formatted zvols, the following procedure should work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Get the disk identifier for the HFS+ disk on the zvol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil list [OSX Disk Name] | awk '/[OSX Disk Name]/ { print $NF;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, the following will get its disk identifier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil list TimeMachine | awk '/TimeMachine/ { print $NF; }'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Convert the HFS+ disk to use encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil coreStorage convert [Disk ID] -passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will ask for the encryption password (which may be stored in the Keychain).  For example, if the if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, whose disk identifier was returned as disk5s2 in step 5.1, the following will convert the disk to use encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil coreStorage convert disk5s2 -passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note, this process can take a considerable amount of time (several hours for a 1TB volume).  You can check on the progress of the encryption using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil cs list | grep -e &amp;quot;Conversion&amp;quot; -e &amp;quot;Volume Name&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;For apfs formatted zvols, the following procedure should work (based on&lt;br /&gt;
comments in the forums, see https://openzfsonosx.org/forum/viewtopic.php?f=26&amp;amp;t=3612):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil apfs encryptvolume [Disk ID] -user disk&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will ask for the encryption password (which may be stored in the Keychain).  For example, if the zvol was formatted as apfs named &amp;quot;TimeMachine&amp;quot; in a prior&lt;br /&gt;
step, whose disk identifier was returned as disk5s1, the following will convert the disk to use encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil apfs encryptvolume disk5s1 -user disk&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on the forums (see https://openzfsonosx.org/forum/viewtopic.php?f=26&amp;amp;t=3612), it is possible to &amp;quot;bless&amp;quot; the Time Machine&lt;br /&gt;
zvol by &amp;quot;open /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/GenericTimeMachineDiskIcon.icns&amp;quot;, select the first icon in the resulting window, copying (⌘-C) the icon, then Get Info (⌘-I) on the Time Machine disk icon, and pasting (⌘-V) the copied image to the Time Machine disk to &amp;quot;bless&amp;quot; it as a Time Machine disk. For some reason, Time Machine won't do that by itself, as it does with normal external volumes when it first starts using them for Time Machine.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Backup to Network Share ==&lt;br /&gt;
&lt;br /&gt;
Time Machine can backup over the network to either HFS+ or APFS target volumes, shared via SMB.  If you try to do this with a ZFS target volume, the client gets an error saying &amp;quot;The selected network backup disk does not support the required capabilities.&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
You have two options from this point on:&lt;br /&gt;
# You can create an HFS+ or APFS target volume on your zpool.  There are two ways to do that, explained in the section above about local backups: create the volume as a sparse bundle, or as a zvol.  &lt;br /&gt;
# You can set the properties &amp;lt;code&amp;gt;com.apple.devdisk&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;com.apple.mimic_hfs&amp;lt;/code&amp;gt; to 'on' on the dataset you wish to put your backups onto, through the &amp;lt;code&amp;gt;zfs set&amp;lt;/code&amp;gt; command. (note that if you do this through an already mounted dataset, you may have to unmount it and re-mount it again after issuing the &amp;lt;code&amp;gt;zfs set&amp;lt;/code&amp;gt; commands)&lt;br /&gt;
&lt;br /&gt;
You don't need the steps that set the volume as a time machine destination on the server; it's just going to be shared over the network.  When you share the volume on the network, follow the instructions at https://support.apple.com/guide/mac-help/a-shared-folder-time-machine-mac-mchl31533145/mac to make it available as a TimeMachine volume.&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Encryption</id>
		<title>Encryption</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Encryption"/>
				<updated>2019-11-06T20:41:59Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Encryption is now native to ZFS, and it is recommended to use that for greater flexibility and compatibility. See below. However, the core storage documentation will remain here for those who prefer that method.&lt;br /&gt;
&lt;br /&gt;
== Native ZFS Encryption ==&lt;br /&gt;
&lt;br /&gt;
On a zpool that supports encryption, encryption may be enabled as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zpool set feature@encryption=enabled [pool]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On an zpool that supports encryption, an encrypted zfs dataset may be created as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zfs create -o encryption=on -o keylocation=prompt -o keyformat=passphrase [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for the encryption passphrase for this zfs dataset.  Other options for the location of the encryption key and its format can be found in the zfs(1M) manpage.&lt;br /&gt;
&lt;br /&gt;
An encrypted zfs dataset may be mounted as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zfs mount -l [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for the encryption passphrase for this zfs dataset and mount the encrypted dataset; it will not mount any child datasets of the encrypted dataset, but they will be accessible as subdirectories of the encrypted dataset.  If the encryption passphrase is stored in the Keychain as a generic password under the name of the dataset, security(1) may be used to retrieve the passphrase as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# security find-generic-password -a [dataset] -w | zfs mount -l [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One common use case for an encrypted volume is a portable backup drive.  Typically the user will create snapshots on the source drive in the computer, and then transmit them to the portable drive using zfs send and receive.  In this scenario it is helpful if the destination dataset on the portable drive is read only, since then there is no need to roll back the destination dataset on the fly to the last valid snapshot.  To make this work with encryption, place the destination dataset as a child dataset of the encrypted dataset in the zpool of the portable drive; because it is a child of the encrypted dataset it, too, will be encrypted.  More importantly, it can be made read-only, whereas it appears that the encrypted parent dataset cannot be read-only (probably so that the key can be stored locally in the parent dataset).&lt;br /&gt;
&lt;br /&gt;
Additional helpful information about zfs encryption can be found in the [https://blog.heckel.xyz/2017/01/08/zfs-encryption-openzfs-zfs-on-linux/ How-To: Using ZFS Encryption at Rest in OpenZFS (ZFS on Linux, ZFS on FreeBSD, …)].&lt;br /&gt;
&lt;br /&gt;
== Core Storage (File Vault 2) ==&lt;br /&gt;
&lt;br /&gt;
Although the upstream OpenZFS project lists [http://open-zfs.org/wiki/Projects#Platform_agnostic_encryption_support platform-agnostic encryption support] at the ZFS dataset level as a possible future enhancement, OS X already offers a feature called [http://support.apple.com/kb/ht4790 FileVault 2], which provides built-in support for XTS-AES 128 encryption at the block level as part of Core Storage volume management.&lt;br /&gt;
&lt;br /&gt;
This is the OS X analogue of the following block-level encryption systems on other operating systems that support ZFS: &lt;br /&gt;
* FreeBSD: geli&lt;br /&gt;
* Linux: LUKS&lt;br /&gt;
&lt;br /&gt;
The overall procedure is, as follows: convert an empty HFS+ partition to use Core Storage and apply Core Storage encryption. Then use the Core Storage Logical Volume as a device in your zpool by supplying it to &amp;quot;zpool create,&amp;quot; &amp;quot;zpool add,&amp;quot; &amp;quot;zpool attach,&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
Build ZFS [[Install#Installing_from_source|from source]], or wait for the [[Downloads|next installer]], newer than 1.2.0 (for explanation, see original IRC chat).&lt;br /&gt;
&lt;br /&gt;
=== Caveats ===&lt;br /&gt;
You may receive a pop-up claiming the disk isn't readable by this computer. This leads to one step that can be confusing: when unlocking the disk (e.g., on startup), the &amp;quot;bug&amp;quot; will make OS X believe the disk wasn't unlocked, and thus &amp;quot;wiggle,&amp;quot; presenting the prompt again.&lt;br /&gt;
&lt;br /&gt;
Assuming you entered your password correctly, the encrypted volume should now be unlocked, despite the misleading wiggle, and you can safely close the dialog box by clicking &amp;quot;Cancel.&amp;quot; You'll know for sure the volume is unlocked when you proceed to import your pool, or you can check directly by looking for &amp;lt;code&amp;gt;Encryption Status: Unlocked&amp;lt;/code&amp;gt; in the output of &amp;lt;code&amp;gt;diskutil coreStorage list&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
The initial layout, with disk1 being the external disk (counter-intuitively named &amp;quot;Internal HD&amp;quot;) intended as encrypted ZFS device.&lt;br /&gt;
&lt;br /&gt;
 # diskutil list&lt;br /&gt;
 /dev/disk0&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *160.0 GB   disk0&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk0s1&lt;br /&gt;
    2:                  Apple_HFS Macintosh HD            159.7 GB   disk0s2&lt;br /&gt;
 /dev/disk1&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *1.0 TB     disk1&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk1s1&lt;br /&gt;
    2:                  Apple_HFS Internal HD             999.9 GB   disk1s2&lt;br /&gt;
&lt;br /&gt;
We note that disk1s2 is the partition to be encrypted, and we convert it to Core Storage (think LVM), to enable encryption:&lt;br /&gt;
&lt;br /&gt;
 #  diskutil coreStorage convert /dev/disk1s2&lt;br /&gt;
 Started CoreStorage operation on disk1s2 Internal HD&lt;br /&gt;
 Resizing disk to fit Core Storage headers&lt;br /&gt;
 Creating Core Storage Logical Volume Group&lt;br /&gt;
 Attempting to unmount disk1s2&lt;br /&gt;
 Switching disk1s2 to Core Storage&lt;br /&gt;
 Waiting for Logical Volume to appear&lt;br /&gt;
 Mounting Logical Volume&lt;br /&gt;
 Core Storage LVG UUID: 4690972A-484E-42E2-B72D-933A58E41237&lt;br /&gt;
 Core Storage PV UUID: 22A1A783-01BA-4ABA-B4A3-2A9146506519&lt;br /&gt;
 Core Storage LV UUID: F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Core Storage disk: disk2&lt;br /&gt;
 Finished CoreStorage operation on disk1s2 Internal HD&lt;br /&gt;
&lt;br /&gt;
Note that we converted the existing unencrypted HFS+ partition.&lt;br /&gt;
&lt;br /&gt;
Next, we encrypt the logical volume, our Core Storage disk, disk2:&lt;br /&gt;
&lt;br /&gt;
:'''Note: If you choose to use diskutil to do the encryption, it will default to the most secure option, which will take a VERY long time with large disks, optionally use the Disk Util UI and set it up as an encrypted HFS+ volume and under advanced change to least secure (good for new disks)'''&lt;br /&gt;
&lt;br /&gt;
 # diskutil coreStorage encryptVolume /dev/disk2&lt;br /&gt;
 New passphrase for existing volume:&lt;br /&gt;
 Confirm new passphrase:&lt;br /&gt;
 The Core Storage Logical Volume UUID is F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Started CoreStorage operation on disk2 Internal HD&lt;br /&gt;
 Scheduling encryption of Core Storage Logical Volume&lt;br /&gt;
 Core Storage LV UUID: F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Finished CoreStorage operation on disk2 Internal HD&lt;br /&gt;
&lt;br /&gt;
Note that we used disk2, the logical volume, not disk1s2.&lt;br /&gt;
&lt;br /&gt;
This can and will take a while to complete. You can check the status by issuing:&lt;br /&gt;
 # diskutil coreStorage list | grep Conversion&lt;br /&gt;
&lt;br /&gt;
Until it's done:&lt;br /&gt;
 Conversion Status:  Complete&lt;br /&gt;
 Conversion Progress: -none-&lt;br /&gt;
&lt;br /&gt;
Your partition layout should now look like:&lt;br /&gt;
&lt;br /&gt;
 # diskutil list&lt;br /&gt;
 /dev/disk0&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *160.0 GB   disk0&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk0s1&lt;br /&gt;
    2:                  Apple_HFS Macintosh HD            159.7 GB   disk0s2&lt;br /&gt;
 /dev/disk1&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *1.0 TB     disk1&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk1s1&lt;br /&gt;
    2:          Apple_CoreStorage                         999.9 GB   disk1s2&lt;br /&gt;
    3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3&lt;br /&gt;
 /dev/disk2&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:                  Apple_HFS                        *999.5 GB   disk2&lt;br /&gt;
&lt;br /&gt;
disk2 being our encrypted, unlocked HFS+ device. If you have yet to be prompted for the passphrase by OS X, now would be a good time to restart your Mac and try it out.&lt;br /&gt;
&lt;br /&gt;
Lastly, we'll prepare the volume for ZFS, by unmounting /dev/disk2:&lt;br /&gt;
&lt;br /&gt;
 # mount&lt;br /&gt;
 ...&lt;br /&gt;
 /dev/disk2 on /Volumes/Internal HD (hfs, local, journaled)&lt;br /&gt;
 # diskutil unmount &amp;quot;/Volumes/Internal HD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can now follow the article on [[Zpool#Creating_a_pool|creating a pool]]. As a simple example, you might&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # zpool list&lt;br /&gt;
 no pools available&lt;br /&gt;
 # zpool create -f -o ashift=12 ZFS_VOLUME /dev/disk2&lt;br /&gt;
 # zpool list&lt;br /&gt;
 ZFS_VOLUME    928G  20.8G   907G     2%  1.00x  ONLINE  -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that you '''don't''' need to worry about changing the partition type in this case to ZFS as described in the [[Suppressing_the_annoying_pop-up|Suppressing the annoying pop-up]] wiki page.&lt;br /&gt;
&lt;br /&gt;
=== Reason to &amp;quot;use latest&amp;quot; ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; If you want encryption you have a few options&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; https://github.com/zfsrogue/osx-zfs-crypto&lt;br /&gt;
&amp;lt;lundman&amp;gt; :)&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can do what cbreak said, and use an encrypted sparsebundle&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; (I'd give it its own ZFS file system)&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can create a ZVOL, and put an encrypted Core Storage/Filevault 2 HFS+&lt;br /&gt;
           file system on it&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can put the pool itself on top of Core Storage.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; The last option you should not do with the installer version.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But wait for the next installer if that's the route you want to go&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or build from source.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    Ah, interesting. Does FileVault 2 require HFS+? Not that it'd surprise me.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; No it does not.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But it is not possible to set other Content Hints&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; so it will always say HFS+ even if you do put ZFS on your logical volumes.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; So basically the procedure is to format the volume HFS+.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then run 'diskutil coreStorage convert' on it.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then you can encrypt it.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then you unmount the HFS+&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; and zpool create on the logical volume.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; And you should be good to go.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    On the original HFS+ partition, right?&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Right.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But I'd encrypt first&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; then put ZFS on it.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    Right. Perfect.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; diskutil coreStorage convert ...&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; diskutil coreStorage encryptVolume ...&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; etc.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; The reason not to use the installer version, is that it will attempt to&lt;br /&gt;
           partition the Core Storage Logical Volume.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But since 10.8.5 and after, Apple doesn't like that&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; so we added new code to detect Core Storage and not partition if it sees it's&lt;br /&gt;
           Core Storage.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Time_Machine_Backups</id>
		<title>Time Machine Backups</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Time_Machine_Backups"/>
				<updated>2018-10-19T05:35:05Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: /* zvols */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time Machine Backups ==&lt;br /&gt;
There are two approaches to using ZFS for Time Machine Backups - Sparsebundles on a ZFS data set and zvols formatted as HFS+.&lt;br /&gt;
&lt;br /&gt;
=== Sparsebundles ===&lt;br /&gt;
Here's one approach to using ZFS for your Time Machine Backups.  &lt;br /&gt;
&lt;br /&gt;
Because Time Machine doesn't recognize ZFS datasets as a compatible disk for Time Machine backups, as a work around, we create an HFS+ sparsebundle disk image, store it on a ZFS dataset, and set the mounted image as a backup destination (no &amp;quot;TMShowUnsupportedNetworkVolumes&amp;quot; needed).&lt;br /&gt;
&lt;br /&gt;
1. Create, and mount, a sparsebundle from a ZFS dataset (e.g., with makeImage.sh or Disk Utility.app).&lt;br /&gt;
&lt;br /&gt;
2. Set the sparsebundle as the (active) backup destination: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# tmutil setdestination -a /Volumes/[sparse bundle volume name]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While it has been discussed in heated arguments (e.g., https://github.com/openzfsonosx/zfs/issues/66) I still believe there's at least one ZFS feature I'd like to test with Time Machine: compression.&lt;br /&gt;
&lt;br /&gt;
The hypothesis being that an HFS+ sparsebundle stored on a compressed (gzip, lz4), deduped dataset should&lt;br /&gt;
yield a compression ratio &amp;gt; 1.0 (previously observed 1.4 with compression=on, dedup=off, FreeBSD network Time Machine drives).&lt;br /&gt;
&lt;br /&gt;
=== zvols ===&lt;br /&gt;
&lt;br /&gt;
1. Create a zvol to use for Time Machine backups:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo zfs create -V [size] [pool]/[volume]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, the following will create a 1TB volume named tmdisk1 on a zpool named Backup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo zfs create -V 1T Backup/tmdisk1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Get OSX disk number corresponding to the zvol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ioreg -trn &amp;quot;ZVOL [pool]/[volume] Media&amp;quot; | awk -F'&amp;quot;' '/BSD Name/ {print $4;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if a zvol named tmdisk1 was created as shown above, the following will get its disk number and store it in the shell variable DISKID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ioreg -trn 'ZVOL Backup/tmdisk1 Media' | awk -F'&amp;quot;' '/BSD Name/ {print $4;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Format the zvol as a HFS+, using its disk number from step 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil eraseDisk JHFS+ [OSX Disk Name] [disk number]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was disk5 in OSX, the following will format that disk as a HFS+ disk named &amp;quot;TimeMachine&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil eraseDisk JHFS+ &amp;quot;TimeMachine&amp;quot; disk5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Set the zvol as a Time Machine destination:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo tmutil setdestination -a /Volumes/[OSX Disk Name]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, the following will set it as a Time Machine destination:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo tmutil setdestination -a /Volumes/TimeMachine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Enable encryption for Time Machine backups on the zvol:&lt;br /&gt;
&lt;br /&gt;
5.1 Get the disk identifier for the HFS+ disk on the zvol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil list [OSX Disk Name] | awk '/[OSX Disk Name]/ { print $NF;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, the following will get its disk identifier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil list TimeMachine | awk '/TimeMachine/ { print $NF; }'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Convert the HFS+ disk to use encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil coreStorage convert [Disk ID] -passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will ask for the encryption password (which may be stored in the Keychain).  For example, if the if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, whose disk identifier was returned as disk5s2 in step 5.1, the following will convert the disk to use encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil coreStorage convert disk5s2 -passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note, this process can take a considerable amount of time (several hours for a 1TB volume).  You can check on the progress of the encryption using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil cs list | grep -e &amp;quot;Conversion&amp;quot; -e &amp;quot;Volume Name&amp;quot;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Time_Machine_Backups</id>
		<title>Time Machine Backups</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Time_Machine_Backups"/>
				<updated>2018-09-19T06:38:21Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time Machine Backups ==&lt;br /&gt;
There are two approaches to using ZFS for Time Machine Backups - Sparsebundles on a ZFS data set and zvols formatted as HFS+.&lt;br /&gt;
&lt;br /&gt;
=== Sparsebundles ===&lt;br /&gt;
Here's one approach to using ZFS for your Time Machine Backups.  &lt;br /&gt;
&lt;br /&gt;
Because Time Machine doesn't recognize ZFS datasets as a compatible disk for Time Machine backups, as a work around, we create an HFS+ sparsebundle disk image, store it on a ZFS dataset, and set the mounted image as a backup destination (no &amp;quot;TMShowUnsupportedNetworkVolumes&amp;quot; needed).&lt;br /&gt;
&lt;br /&gt;
1. Create, and mount, a sparsebundle from a ZFS dataset (e.g., with makeImage.sh or Disk Utility.app).&lt;br /&gt;
&lt;br /&gt;
2. Set the sparsebundle as the (active) backup destination: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# tmutil setdestination -a /Volumes/[sparse bundle volume name]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While it has been discussed in heated arguments (e.g., https://github.com/openzfsonosx/zfs/issues/66) I still believe there's at least one ZFS feature I'd like to test with Time Machine: compression.&lt;br /&gt;
&lt;br /&gt;
The hypothesis being that an HFS+ sparsebundle stored on a compressed (gzip, lz4), deduped dataset should&lt;br /&gt;
yield a compression ratio &amp;gt; 1.0 (previously observed 1.4 with compression=on, dedup=off, FreeBSD network Time Machine drives).&lt;br /&gt;
&lt;br /&gt;
=== zvols ===&lt;br /&gt;
&lt;br /&gt;
1. Create a zvol to use for Time Machine backups:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo zfs create -V [size] [pool]/[volume]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, the following will create a 1TB volume named tmdisk1 on a zpool named Backup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo zfs create -V 1T Backup/tmdisk1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Get OSX disk number corresponding to the zvol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ioreg -trn &amp;quot;ZVOL [pool]/[volume] Media&amp;quot; | awk -F'&amp;quot;' '/BSD Name/ {print $4;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if a zvol named tmdisk1 was created as shown above, the following will get its disk number and store it in the shell variable DISKID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ioreg -trn 'ZVOL Backup/tmdisk1 Media' | awk -F'&amp;quot;' '/BSD Name/ {print $4;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Format the zvol as a HFS+, using its disk number from step 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil eraseDisk JHFS+ [OSX Disk Name] [disk number]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was disk5 in OSX, the following will format that disk as a HFS+ disk named &amp;quot;TimeMachine&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil eraseDisk JHFS+ &amp;quot;TimeMachine&amp;quot; disk5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Set the zvol as a Time Machine destination:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo tmutil setdestination -a /Volumes/[OSX Disk Name]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, the following will set it as a Time Machine destination:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo tmutil setdestination -a /Volumes/TimeMachine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Enable encryption for Time Machine backups on the zvol:&lt;br /&gt;
&lt;br /&gt;
5.1 Get the disk identifier for the HFS+ disk on the zvol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil list [OSX Disk Name] | awk '/[OSX Disk Name]/ { print $NF;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, the following will get its disk identifier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil list TimeMachine | awk '/TimeMachine/ { print $NF; }'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Convert the HFS+ disk to use encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil coreStorage convert [Disk ID] -passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will ask for the encryption password (which may be stored in the Keychain).  For example, if the if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, whose disk identifier was returned as disk5s2 in step 5.1, the following will convert the disk to use encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil coreStorage convert disk5s2 -passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note, this process can take a considerable amount of time (several hours for a 1TB volume).&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Time_Machine_Backups</id>
		<title>Time Machine Backups</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Time_Machine_Backups"/>
				<updated>2018-09-18T01:15:29Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: /* Time Machine Backups */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time Machine Backups ==&lt;br /&gt;
There are two approaches to using ZFS for Time Machine Backups - Sparsebundles on a ZFS data set and zvols formatted as HFS+.&lt;br /&gt;
&lt;br /&gt;
=== Sparsebundles ===&lt;br /&gt;
Here's one approach to using ZFS for your Time Machine Backups.  &lt;br /&gt;
&lt;br /&gt;
Because Time Machine doesn't recognize ZFS datasets as a compatible disk for Time Machine backups, as a work around, we create an HFS+ sparsebundle disk image, store it on a ZFS dataset, and set the mounted image as a backup destination (no &amp;quot;TMShowUnsupportedNetworkVolumes&amp;quot; needed).&lt;br /&gt;
&lt;br /&gt;
1. Create, and mount, a sparsebundle from a ZFS dataset (e.g., with makeImage.sh or Disk Utility.app).&lt;br /&gt;
&lt;br /&gt;
2. Set the sparsebundle as the (active) backup destination: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# tmutil setdestination -a /Volumes/[sparse bundle volume name]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While it has been discussed in heated arguments (e.g., https://github.com/openzfsonosx/zfs/issues/66) I still believe there's at least one ZFS feature I'd like to test with Time Machine: compression.&lt;br /&gt;
&lt;br /&gt;
The hypothesis being that an HFS+ sparsebundle stored on a compressed (gzip, lz4), deduped dataset should&lt;br /&gt;
yield a compression ratio &amp;gt; 1.0 (previously observed 1.4 with compression=on, dedup=off, FreeBSD network Time Machine drives).&lt;br /&gt;
&lt;br /&gt;
=== zvols ===&lt;br /&gt;
&lt;br /&gt;
1. Create a zvol to use for Time Machine backups:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo zfs create -V [size] [pool]/[volume]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, the following will create a 1TB volume named tmdisk1 on a zpool named Backup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo zfs create -V 1T Backup/tmdisk1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Get OSX disk number corresponding to the zvol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ioreg -trn &amp;quot;ZVOL [pool]/[volume]&amp;quot; | awk -F'&amp;quot;' '/BSD Name/ {print $4;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if a zvol named tmdisk1 was created as shown above, the following will get its disk number and store it in the shell variable DISKID:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ioreg -trn 'ZVOL Backup/tmdisk1' | awk -F'&amp;quot;' '/BSD Name/ {print $4;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Format the zvol as a HFS+, using its disk number from step 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil eraseDisk JHFS+ [OSX Disk Name] [disk number]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was disk5 in OSX, the following will format that disk as a HFS+ disk named &amp;quot;TimeMachine&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil eraseDisk JHFS+ &amp;quot;TimeMachine&amp;quot; disk5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Set the zvol as a Time Machine destination:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo tmutil setdestination -a /Volumes/[OSX Disk Name]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, the following will set it as a Time Machine destination:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo tmutil setdestination -a /Volumes/TimeMachine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Enable encryption for Time Machine backups on the zvol:&lt;br /&gt;
&lt;br /&gt;
5.1 Get the disk identifier for the HFS+ disk on the zvol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil list [OSX Disk Name] | awk '/[OSX Disk Name]/ { print $NF;}'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, the following will get its disk identifier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;diskutil list TimeMachine | awk '/TimeMachine/ { print $NF; }'&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Convert the HFS+ disk to use encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil coreStorage convert [Disk ID] -passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will ask for the encryption password (which may be stored in the Keychain).  For example, if the if the zvol was formatted as HFS+ named &amp;quot;TimeMachine&amp;quot; in step 3, whose disk identifier was returned as disk5s2 in step 5.1, the following will convert the disk to use encryption:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo diskutil coreStorage convert disk5s2 -passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note, this process can take a considerable amount of time (several hours for a 1TB volume).&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Time_Machine_Backups</id>
		<title>Time Machine Backups</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Time_Machine_Backups"/>
				<updated>2018-01-06T02:51:26Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: reformat text and designate commands using the html code tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Time Machine Backups ==&lt;br /&gt;
Here's one approach to using ZFS for your Time Machine Backups.  &lt;br /&gt;
&lt;br /&gt;
Because Time Machine doesn't recognize ZFS datasets as a compatible disk for Time Machine backups, as a work around, we create an HFS+ sparsebundle disk image, store it on a ZFS dataset, and set the mounted image as a backup destination (no &amp;quot;TMShowUnsupportedNetworkVolumes&amp;quot; needed).&lt;br /&gt;
&lt;br /&gt;
1. Create, and mount, a sparsebundle from a ZFS dataset (e.g., with makeImage.sh or Disk Utility.app).&lt;br /&gt;
&lt;br /&gt;
2. Set the sparsebundle as the (active) backup destination: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# tmutil setdestination -a /Volumes/[sparse bundle volume name]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While it has been discussed in heated arguments (e.g., https://github.com/openzfsonosx/zfs/issues/66) I still believe there's at least one ZFS feature I'd like to test with Time Machine: compression.&lt;br /&gt;
&lt;br /&gt;
The hypothesis being that an HFS+ sparsebundle stored on a compressed (gzip, lz4), deduped dataset should&lt;br /&gt;
yield a compression ratio &amp;gt; 1.0 (previously observed 1.4 with compression=on, dedup=off, FreeBSD network Time Machine drives).&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Encryption</id>
		<title>Encryption</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Encryption"/>
				<updated>2018-01-06T02:45:47Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: move timemachine backups to a separate wikipage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Encryption is now native to ZFS, and it is recommended to use that for greater flexibility and compatibility. See the &amp;quot;zpool create -O encryption=on&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
However, the core storage documentation will remain here for those who prefer that method.&lt;br /&gt;
&lt;br /&gt;
== Native ZFS Encryption ==&lt;br /&gt;
&lt;br /&gt;
On a zpool that supports encryption, encryption may be enabled as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zpool set feature@encryption=enabled [pool]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On an zpool that supports encryption, a encrypted zfs dataset may be created as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zfs create -o encryption=on -o keylocation=prompt -o keyformat=passphrase [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for the encryption passphrase for this zfs dataset.  Other options for the location of the encryption key and its format can be found in the zfs(1M) manpage.&lt;br /&gt;
&lt;br /&gt;
An encrypted zfs dataset may be mounted as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zfs mount -l [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for the encryption passphrase for this zfs dataset.  If the encryption passphrase is stored in the Keychain as a generic password under the name of the dataset, security(1) may be used to retrieve the passphrase as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# security find-generic-password -a [dataset] -w | zfs mount -l [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additional helpful information about zfs encryption can be found in the [https://blog.heckel.xyz/2017/01/08/zfs-encryption-openzfs-zfs-on-linux/ How-To: Using ZFS Encryption at Rest in OpenZFS (ZFS on Linux, ZFS on FreeBSD, …)].&lt;br /&gt;
&lt;br /&gt;
== Core Storage (File Vault 2) ==&lt;br /&gt;
&lt;br /&gt;
Although the upstream OpenZFS project lists [http://open-zfs.org/wiki/Projects#Platform_agnostic_encryption_support platform-agnostic encryption support] at the ZFS dataset level as a possible future enhancement, OS X already offers a feature called [http://support.apple.com/kb/ht4790 FileVault 2], which provides built-in support for XTS-AES 128 encryption at the block level as part of Core Storage volume management.&lt;br /&gt;
&lt;br /&gt;
This is the OS X analogue of the following block-level encryption systems on other operating systems that support ZFS: &lt;br /&gt;
* FreeBSD: geli&lt;br /&gt;
* Linux: LUKS&lt;br /&gt;
&lt;br /&gt;
The overall procedure is, as follows: convert an empty HFS+ partition to use Core Storage and apply Core Storage encryption. Then use the Core Storage Logical Volume as a device in your zpool by supplying it to &amp;quot;zpool create,&amp;quot; &amp;quot;zpool add,&amp;quot; &amp;quot;zpool attach,&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
Build ZFS [[Install#Installing_from_source|from source]], or wait for the [[Downloads|next installer]], newer than 1.2.0 (for explanation, see original IRC chat).&lt;br /&gt;
&lt;br /&gt;
=== Caveats ===&lt;br /&gt;
You may receive a pop-up claiming the disk isn't readable by this computer. This leads to one step that can be confusing: when unlocking the disk (e.g., on startup), the &amp;quot;bug&amp;quot; will make OS X believe the disk wasn't unlocked, and thus &amp;quot;wiggle,&amp;quot; presenting the prompt again.&lt;br /&gt;
&lt;br /&gt;
Assuming you entered your password correctly, the encrypted volume should now be unlocked, despite the misleading wiggle, and you can safely close the dialog box by clicking &amp;quot;Cancel.&amp;quot; You'll know for sure the volume is unlocked when you proceed to import your pool, or you can check directly by looking for &amp;lt;code&amp;gt;Encryption Status: Unlocked&amp;lt;/code&amp;gt; in the output of &amp;lt;code&amp;gt;diskutil coreStorage list&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
The initial layout, with disk1 being the external disk (counter-intuitively named &amp;quot;Internal HD&amp;quot;) intended as encrypted ZFS device.&lt;br /&gt;
&lt;br /&gt;
 # diskutil list&lt;br /&gt;
 /dev/disk0&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *160.0 GB   disk0&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk0s1&lt;br /&gt;
    2:                  Apple_HFS Macintosh HD            159.7 GB   disk0s2&lt;br /&gt;
 /dev/disk1&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *1.0 TB     disk1&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk1s1&lt;br /&gt;
    2:                  Apple_HFS Internal HD             999.9 GB   disk1s2&lt;br /&gt;
&lt;br /&gt;
We note that disk1s2 is the partition to be encrypted, and we convert it to Core Storage (think LVM), to enable encryption:&lt;br /&gt;
&lt;br /&gt;
 #  diskutil coreStorage convert /dev/disk1s2&lt;br /&gt;
 Started CoreStorage operation on disk1s2 Internal HD&lt;br /&gt;
 Resizing disk to fit Core Storage headers&lt;br /&gt;
 Creating Core Storage Logical Volume Group&lt;br /&gt;
 Attempting to unmount disk1s2&lt;br /&gt;
 Switching disk1s2 to Core Storage&lt;br /&gt;
 Waiting for Logical Volume to appear&lt;br /&gt;
 Mounting Logical Volume&lt;br /&gt;
 Core Storage LVG UUID: 4690972A-484E-42E2-B72D-933A58E41237&lt;br /&gt;
 Core Storage PV UUID: 22A1A783-01BA-4ABA-B4A3-2A9146506519&lt;br /&gt;
 Core Storage LV UUID: F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Core Storage disk: disk2&lt;br /&gt;
 Finished CoreStorage operation on disk1s2 Internal HD&lt;br /&gt;
&lt;br /&gt;
Note that we converted the existing unencrypted HFS+ partition.&lt;br /&gt;
&lt;br /&gt;
Next, we encrypt the logical volume, our Core Storage disk, disk2:&lt;br /&gt;
&lt;br /&gt;
:'''Note: If you choose to use diskutil to do the encryption, it will default to the most secure option, which will take a VERY long time with large disks, optionally use the Disk Util UI and set it up as an encrypted HFS+ volume and under advanced change to least secure (good for new disks)'''&lt;br /&gt;
&lt;br /&gt;
 # diskutil coreStorage encryptVolume /dev/disk2&lt;br /&gt;
 New passphrase for existing volume:&lt;br /&gt;
 Confirm new passphrase:&lt;br /&gt;
 The Core Storage Logical Volume UUID is F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Started CoreStorage operation on disk2 Internal HD&lt;br /&gt;
 Scheduling encryption of Core Storage Logical Volume&lt;br /&gt;
 Core Storage LV UUID: F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Finished CoreStorage operation on disk2 Internal HD&lt;br /&gt;
&lt;br /&gt;
Note that we used disk2, the logical volume, not disk1s2.&lt;br /&gt;
&lt;br /&gt;
This can and will take a while to complete. You can check the status by issuing:&lt;br /&gt;
 # diskutil coreStorage list | grep Conversion&lt;br /&gt;
&lt;br /&gt;
Until it's done:&lt;br /&gt;
 Conversion Status:  Complete&lt;br /&gt;
 Conversion Progress: -none-&lt;br /&gt;
&lt;br /&gt;
Your partition layout should now look like:&lt;br /&gt;
&lt;br /&gt;
 # diskutil list&lt;br /&gt;
 /dev/disk0&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *160.0 GB   disk0&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk0s1&lt;br /&gt;
    2:                  Apple_HFS Macintosh HD            159.7 GB   disk0s2&lt;br /&gt;
 /dev/disk1&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *1.0 TB     disk1&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk1s1&lt;br /&gt;
    2:          Apple_CoreStorage                         999.9 GB   disk1s2&lt;br /&gt;
    3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3&lt;br /&gt;
 /dev/disk2&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:                  Apple_HFS                        *999.5 GB   disk2&lt;br /&gt;
&lt;br /&gt;
disk2 being our encrypted, unlocked HFS+ device. If you have yet to be prompted for the passphrase by OS X, now would be a good time to restart your Mac and try it out.&lt;br /&gt;
&lt;br /&gt;
Lastly, we'll prepare the volume for ZFS, by unmounting /dev/disk2:&lt;br /&gt;
&lt;br /&gt;
 # mount&lt;br /&gt;
 ...&lt;br /&gt;
 /dev/disk2 on /Volumes/Internal HD (hfs, local, journaled)&lt;br /&gt;
 # diskutil unmount &amp;quot;/Volumes/Internal HD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can now follow the article on [[Zpool#Creating_a_pool|creating a pool]]. As a simple example, you might&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # zpool list&lt;br /&gt;
 no pools available&lt;br /&gt;
 # zpool create -f -o ashift=12 ZFS_VOLUME /dev/disk2&lt;br /&gt;
 # zpool list&lt;br /&gt;
 ZFS_VOLUME    928G  20.8G   907G     2%  1.00x  ONLINE  -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that you '''don't''' need to worry about changing the partition type in this case to ZFS as described in the [[Suppressing_the_annoying_pop-up|Suppressing the annoying pop-up]] wiki page.&lt;br /&gt;
&lt;br /&gt;
=== Reason to &amp;quot;use latest&amp;quot; ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; If you want encryption you have a few options&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; https://github.com/zfsrogue/osx-zfs-crypto&lt;br /&gt;
&amp;lt;lundman&amp;gt; :)&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can do what cbreak said, and use an encrypted sparsebundle&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; (I'd give it its own ZFS file system)&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can create a ZVOL, and put an encrypted Core Storage/Filevault 2 HFS+&lt;br /&gt;
           file system on it&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can put the pool itself on top of Core Storage.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; The last option you should not do with the installer version.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But wait for the next installer if that's the route you want to go&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or build from source.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    Ah, interesting. Does FileVault 2 require HFS+? Not that it'd surprise me.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; No it does not.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But it is not possible to set other Content Hints&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; so it will always say HFS+ even if you do put ZFS on your logical volumes.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; So basically the procedure is to format the volume HFS+.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then run 'diskutil coreStorage convert' on it.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then you can encrypt it.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then you unmount the HFS+&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; and zpool create on the logical volume.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; And you should be good to go.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    On the original HFS+ partition, right?&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Right.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But I'd encrypt first&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; then put ZFS on it.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    Right. Perfect.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; diskutil coreStorage convert ...&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; diskutil coreStorage encryptVolume ...&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; etc.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; The reason not to use the installer version, is that it will attempt to&lt;br /&gt;
           partition the Core Storage Logical Volume.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But since 10.8.5 and after, Apple doesn't like that&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; so we added new code to detect Core Storage and not partition if it sees it's&lt;br /&gt;
           Core Storage.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Encryption</id>
		<title>Encryption</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Encryption"/>
				<updated>2018-01-06T02:45:11Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: move timemachine backups to a separate wikipage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Encryption is now native to ZFS, and it is recommended to use that for greater flexibility and compatibility. See the &amp;quot;zpool create -O encryption=on&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
However, the core storage documentation will remain here for those who prefer that method.&lt;br /&gt;
&lt;br /&gt;
== Native ZFS Encryption ==&lt;br /&gt;
&lt;br /&gt;
On a zpool that supports encryption, encryption may be enabled as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zpool set feature@encryption=enabled [pool]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On an zpool that supports encryption, a encrypted zfs dataset may be created as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zfs create -o encryption=on -o keylocation=prompt -o keyformat=passphrase [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for the encryption passphrase for this zfs dataset.  Other options for the location of the encryption key and its format can be found in the zfs(1M) manpage.&lt;br /&gt;
&lt;br /&gt;
An encrypted zfs dataset may be mounted as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zfs mount -l [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for the encryption passphrase for this zfs dataset.  If the encryption passphrase is stored in the Keychain as a generic password under the name of the dataset, security(1) may be used to retrieve the passphrase as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# security find-generic-password -a [dataset] -w | zfs mount -l [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additional helpful information about zfs encryption can be found in the [https://blog.heckel.xyz/2017/01/08/zfs-encryption-openzfs-zfs-on-linux/ How-To: Using ZFS Encryption at Rest in OpenZFS (ZFS on Linux, ZFS on FreeBSD, …)].&lt;br /&gt;
&lt;br /&gt;
== Core Storage (File Vault 2) ==&lt;br /&gt;
&lt;br /&gt;
Although the upstream OpenZFS project lists [http://open-zfs.org/wiki/Projects#Platform_agnostic_encryption_support platform-agnostic encryption support] at the ZFS dataset level as a possible future enhancement, OS X already offers a feature called [http://support.apple.com/kb/ht4790 FileVault 2], which provides built-in support for XTS-AES 128 encryption at the block level as part of Core Storage volume management.&lt;br /&gt;
&lt;br /&gt;
This is the OS X analogue of the following block-level encryption systems on other operating systems that support ZFS: &lt;br /&gt;
* FreeBSD: geli&lt;br /&gt;
* Linux: LUKS&lt;br /&gt;
&lt;br /&gt;
The overall procedure is, as follows: convert an empty HFS+ partition to use Core Storage and apply Core Storage encryption. Then use the Core Storage Logical Volume as a device in your zpool by supplying it to &amp;quot;zpool create,&amp;quot; &amp;quot;zpool add,&amp;quot; &amp;quot;zpool attach,&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
Build ZFS [[Install#Installing_from_source|from source]], or wait for the [[Downloads|next installer]], newer than 1.2.0 (for explanation, see original IRC chat).&lt;br /&gt;
&lt;br /&gt;
=== Caveats ===&lt;br /&gt;
You may receive a pop-up claiming the disk isn't readable by this computer. This leads to one step that can be confusing: when unlocking the disk (e.g., on startup), the &amp;quot;bug&amp;quot; will make OS X believe the disk wasn't unlocked, and thus &amp;quot;wiggle,&amp;quot; presenting the prompt again.&lt;br /&gt;
&lt;br /&gt;
Assuming you entered your password correctly, the encrypted volume should now be unlocked, despite the misleading wiggle, and you can safely close the dialog box by clicking &amp;quot;Cancel.&amp;quot; You'll know for sure the volume is unlocked when you proceed to import your pool, or you can check directly by looking for &amp;lt;code&amp;gt;Encryption Status: Unlocked&amp;lt;/code&amp;gt; in the output of &amp;lt;code&amp;gt;diskutil coreStorage list&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
The initial layout, with disk1 being the external disk (counter-intuitively named &amp;quot;Internal HD&amp;quot;) intended as encrypted ZFS device.&lt;br /&gt;
&lt;br /&gt;
 # diskutil list&lt;br /&gt;
 /dev/disk0&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *160.0 GB   disk0&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk0s1&lt;br /&gt;
    2:                  Apple_HFS Macintosh HD            159.7 GB   disk0s2&lt;br /&gt;
 /dev/disk1&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *1.0 TB     disk1&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk1s1&lt;br /&gt;
    2:                  Apple_HFS Internal HD             999.9 GB   disk1s2&lt;br /&gt;
&lt;br /&gt;
We note that disk1s2 is the partition to be encrypted, and we convert it to Core Storage (think LVM), to enable encryption:&lt;br /&gt;
&lt;br /&gt;
 #  diskutil coreStorage convert /dev/disk1s2&lt;br /&gt;
 Started CoreStorage operation on disk1s2 Internal HD&lt;br /&gt;
 Resizing disk to fit Core Storage headers&lt;br /&gt;
 Creating Core Storage Logical Volume Group&lt;br /&gt;
 Attempting to unmount disk1s2&lt;br /&gt;
 Switching disk1s2 to Core Storage&lt;br /&gt;
 Waiting for Logical Volume to appear&lt;br /&gt;
 Mounting Logical Volume&lt;br /&gt;
 Core Storage LVG UUID: 4690972A-484E-42E2-B72D-933A58E41237&lt;br /&gt;
 Core Storage PV UUID: 22A1A783-01BA-4ABA-B4A3-2A9146506519&lt;br /&gt;
 Core Storage LV UUID: F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Core Storage disk: disk2&lt;br /&gt;
 Finished CoreStorage operation on disk1s2 Internal HD&lt;br /&gt;
&lt;br /&gt;
Note that we converted the existing unencrypted HFS+ partition.&lt;br /&gt;
&lt;br /&gt;
Next, we encrypt the logical volume, our Core Storage disk, disk2:&lt;br /&gt;
&lt;br /&gt;
:'''Note: If you choose to use diskutil to do the encryption, it will default to the most secure option, which will take a VERY long time with large disks, optionally use the Disk Util UI and set it up as an encrypted HFS+ volume and under advanced change to least secure (good for new disks)'''&lt;br /&gt;
&lt;br /&gt;
 # diskutil coreStorage encryptVolume /dev/disk2&lt;br /&gt;
 New passphrase for existing volume:&lt;br /&gt;
 Confirm new passphrase:&lt;br /&gt;
 The Core Storage Logical Volume UUID is F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Started CoreStorage operation on disk2 Internal HD&lt;br /&gt;
 Scheduling encryption of Core Storage Logical Volume&lt;br /&gt;
 Core Storage LV UUID: F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Finished CoreStorage operation on disk2 Internal HD&lt;br /&gt;
&lt;br /&gt;
Note that we used disk2, the logical volume, not disk1s2.&lt;br /&gt;
&lt;br /&gt;
This can and will take a while to complete. You can check the status by issuing:&lt;br /&gt;
 # diskutil coreStorage list | grep Conversion&lt;br /&gt;
&lt;br /&gt;
Until it's done:&lt;br /&gt;
 Conversion Status:  Complete&lt;br /&gt;
 Conversion Progress: -none-&lt;br /&gt;
&lt;br /&gt;
Your partition layout should now look like:&lt;br /&gt;
&lt;br /&gt;
 # diskutil list&lt;br /&gt;
 /dev/disk0&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *160.0 GB   disk0&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk0s1&lt;br /&gt;
    2:                  Apple_HFS Macintosh HD            159.7 GB   disk0s2&lt;br /&gt;
 /dev/disk1&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *1.0 TB     disk1&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk1s1&lt;br /&gt;
    2:          Apple_CoreStorage                         999.9 GB   disk1s2&lt;br /&gt;
    3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3&lt;br /&gt;
 /dev/disk2&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:                  Apple_HFS                        *999.5 GB   disk2&lt;br /&gt;
&lt;br /&gt;
disk2 being our encrypted, unlocked HFS+ device. If you have yet to be prompted for the passphrase by OS X, now would be a good time to restart your Mac and try it out.&lt;br /&gt;
&lt;br /&gt;
Lastly, we'll prepare the volume for ZFS, by unmounting /dev/disk2:&lt;br /&gt;
&lt;br /&gt;
 # mount&lt;br /&gt;
 ...&lt;br /&gt;
 /dev/disk2 on /Volumes/Internal HD (hfs, local, journaled)&lt;br /&gt;
 # diskutil unmount &amp;quot;/Volumes/Internal HD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can now follow the article on [[Zpool#Creating_a_pool|creating a pool]]. As a simple example, you might&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # zpool list&lt;br /&gt;
 no pools available&lt;br /&gt;
 # zpool create -f -o ashift=12 ZFS_VOLUME /dev/disk2&lt;br /&gt;
 # zpool list&lt;br /&gt;
 ZFS_VOLUME    928G  20.8G   907G     2%  1.00x  ONLINE  -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that you '''don't''' need to worry about changing the partition type in this case to ZFS as described in the [[Suppressing_the_annoying_pop-up|Suppressing the annoying pop-up]] wiki page.&lt;br /&gt;
&lt;br /&gt;
=== Reason to &amp;quot;use latest&amp;quot; ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; If you want encryption you have a few options&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; https://github.com/zfsrogue/osx-zfs-crypto&lt;br /&gt;
&amp;lt;lundman&amp;gt; :)&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can do what cbreak said, and use an encrypted sparsebundle&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; (I'd give it its own ZFS file system)&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can create a ZVOL, and put an encrypted Core Storage/Filevault 2 HFS+&lt;br /&gt;
           file system on it&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can put the pool itself on top of Core Storage.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; The last option you should not do with the installer version.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But wait for the next installer if that's the route you want to go&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or build from source.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    Ah, interesting. Does FileVault 2 require HFS+? Not that it'd surprise me.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; No it does not.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But it is not possible to set other Content Hints&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; so it will always say HFS+ even if you do put ZFS on your logical volumes.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; So basically the procedure is to format the volume HFS+.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then run 'diskutil coreStorage convert' on it.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then you can encrypt it.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then you unmount the HFS+&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; and zpool create on the logical volume.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; And you should be good to go.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    On the original HFS+ partition, right?&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Right.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But I'd encrypt first&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; then put ZFS on it.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    Right. Perfect.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; diskutil coreStorage convert ...&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; diskutil coreStorage encryptVolume ...&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; etc.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; The reason not to use the installer version, is that it will attempt to&lt;br /&gt;
           partition the Core Storage Logical Volume.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But since 10.8.5 and after, Apple doesn't like that&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; so we added new code to detect Core Storage and not partition if it sees it's&lt;br /&gt;
           Core Storage.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
1. Create, and mount, a sparsebundle from your ZFS filesystem (e.g., with makeImage.sh).&lt;br /&gt;
&lt;br /&gt;
2. Set your sparsebundle as the (active) backup destination # tmutil setdestination -a /Volumes/Time\ Machine\ Backups&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Time_Machine_Backups</id>
		<title>Time Machine Backups</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Time_Machine_Backups"/>
				<updated>2018-01-06T02:43:22Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: move time machine backups from the encryption wiki page to a separate page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Time Machine Backups ===&lt;br /&gt;
Here's one approach to using ZFS for your Time Machine Backups:&lt;br /&gt;
&lt;br /&gt;
While it has been discussed in heated arguments (e.g., https://github.com/openzfsonosx/zfs/issues/66) I still believe there's at least one ZFS feature I'd like to test with Time Machine: compression.&lt;br /&gt;
&lt;br /&gt;
The hypothesis being:&lt;br /&gt;
an HFS+ sparsebundle stored on a compressed (gzip, lz4), deduped dataset should&lt;br /&gt;
yield a compression ratio &amp;gt; 1.0.&lt;br /&gt;
(previously observed 1.4 with compression=on, dedup=off, FreeBSD network Time Machine drives).&lt;br /&gt;
&lt;br /&gt;
To work around compatible disks for Time Machine, we create an HFS+ sparsebundle, store it on ZFS, and set the mounted image as a backup destination – no &amp;quot;TMShowUnsupportedNetworkVolumes&amp;quot; needed.&lt;br /&gt;
&lt;br /&gt;
1. Create, and mount, a sparsebundle from your ZFS filesystem (e.g., with makeImage.sh or Disk Utility).&lt;br /&gt;
&lt;br /&gt;
2. Set your sparsebundle as the (active) backup destination # tmutil setdestination -a /Volumes/Time\ Machine\ Backups&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Documentation</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Documentation"/>
				<updated>2018-01-06T02:40:15Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: add new section for time machine backups&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:About O3X]]&lt;br /&gt;
[[Category:Getting and installing O3X]]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
General OpenZFS usage can be found on the [http://open-zfs.org OpenZFS wiki]. The main focus of this documentation is on OS X platform specifics.&lt;br /&gt;
&lt;br /&gt;
* [[zpool#Creating_a_pool|Creating a pool]]&lt;br /&gt;
* [[zpool#Unplugging_a_pool|Unplugging a pool]]&lt;br /&gt;
* [[zpool#Feature_flags|Feature flags]]&lt;br /&gt;
* [[Device names]]&lt;br /&gt;
* [[Pool upgrade]]&lt;br /&gt;
* [[Memory utilization]]&lt;br /&gt;
* [[Creating user privileges]]&lt;br /&gt;
* [[Stopping Spotlight etc. from changing ZFS without permission]]&lt;br /&gt;
* [[Encryption]]&lt;br /&gt;
* [[Bash completion]]&lt;br /&gt;
* [[DegradedPool|Degraded pool]]&lt;br /&gt;
* [[panic|Kernel panic]]&lt;br /&gt;
* [[ZFS on Boot]]&lt;br /&gt;
* [[Time Machine Backups]]&lt;br /&gt;
* [[Expanding ZFS vdevs]]&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	<entry>
		<id>https://openzfsonosx.org/wiki/Encryption</id>
		<title>Encryption</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Encryption"/>
				<updated>2018-01-06T02:33:02Z</updated>
		
		<summary type="html">&lt;p&gt;Srirangav: add instructions on creating native zfs encryption dataset&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Encryption is now native to ZFS, and it is recommended to use that for greater flexibility and compatibility. See the &amp;quot;zpool create -O encryption=on&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
However, the core storage documentation will remain here for those who prefer that method.&lt;br /&gt;
&lt;br /&gt;
== Native ZFS Encryption ==&lt;br /&gt;
&lt;br /&gt;
On a zpool that supports encryption, encryption may be enabled as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zpool set feature@encryption=enabled [pool]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On an zpool that supports encryption, a encrypted zfs dataset may be created as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zfs create -o encryption=on -o keylocation=prompt -o keyformat=passphrase [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for the encryption passphrase for this zfs dataset.  Other options for the location of the encryption key and its format can be found in the zfs(1M) manpage.&lt;br /&gt;
&lt;br /&gt;
An encrypted zfs dataset may be mounted as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# zfs mount -l [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will prompt for the encryption passphrase for this zfs dataset.  If the encryption passphrase is stored in the Keychain as a generic password under the name of the dataset, security(1) may be used to retrieve the passphrase as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# security find-generic-password -a [dataset] -w | zfs mount -l [dataset]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additional helpful information about zfs encryption can be found in the [https://blog.heckel.xyz/2017/01/08/zfs-encryption-openzfs-zfs-on-linux/ How-To: Using ZFS Encryption at Rest in OpenZFS (ZFS on Linux, ZFS on FreeBSD, …)].&lt;br /&gt;
&lt;br /&gt;
== Core Storage (File Vault 2) ==&lt;br /&gt;
&lt;br /&gt;
Although the upstream OpenZFS project lists [http://open-zfs.org/wiki/Projects#Platform_agnostic_encryption_support platform-agnostic encryption support] at the ZFS dataset level as a possible future enhancement, OS X already offers a feature called [http://support.apple.com/kb/ht4790 FileVault 2], which provides built-in support for XTS-AES 128 encryption at the block level as part of Core Storage volume management.&lt;br /&gt;
&lt;br /&gt;
This is the OS X analogue of the following block-level encryption systems on other operating systems that support ZFS: &lt;br /&gt;
* FreeBSD: geli&lt;br /&gt;
* Linux: LUKS&lt;br /&gt;
&lt;br /&gt;
The overall procedure is, as follows: convert an empty HFS+ partition to use Core Storage and apply Core Storage encryption. Then use the Core Storage Logical Volume as a device in your zpool by supplying it to &amp;quot;zpool create,&amp;quot; &amp;quot;zpool add,&amp;quot; &amp;quot;zpool attach,&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
Build ZFS [[Install#Installing_from_source|from source]], or wait for the [[Downloads|next installer]], newer than 1.2.0 (for explanation, see original IRC chat).&lt;br /&gt;
&lt;br /&gt;
=== Caveats ===&lt;br /&gt;
You may receive a pop-up claiming the disk isn't readable by this computer. This leads to one step that can be confusing: when unlocking the disk (e.g., on startup), the &amp;quot;bug&amp;quot; will make OS X believe the disk wasn't unlocked, and thus &amp;quot;wiggle,&amp;quot; presenting the prompt again.&lt;br /&gt;
&lt;br /&gt;
Assuming you entered your password correctly, the encrypted volume should now be unlocked, despite the misleading wiggle, and you can safely close the dialog box by clicking &amp;quot;Cancel.&amp;quot; You'll know for sure the volume is unlocked when you proceed to import your pool, or you can check directly by looking for &amp;lt;code&amp;gt;Encryption Status: Unlocked&amp;lt;/code&amp;gt; in the output of &amp;lt;code&amp;gt;diskutil coreStorage list&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
The initial layout, with disk1 being the external disk (counter-intuitively named &amp;quot;Internal HD&amp;quot;) intended as encrypted ZFS device.&lt;br /&gt;
&lt;br /&gt;
 # diskutil list&lt;br /&gt;
 /dev/disk0&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *160.0 GB   disk0&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk0s1&lt;br /&gt;
    2:                  Apple_HFS Macintosh HD            159.7 GB   disk0s2&lt;br /&gt;
 /dev/disk1&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *1.0 TB     disk1&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk1s1&lt;br /&gt;
    2:                  Apple_HFS Internal HD             999.9 GB   disk1s2&lt;br /&gt;
&lt;br /&gt;
We note that disk1s2 is the partition to be encrypted, and we convert it to Core Storage (think LVM), to enable encryption:&lt;br /&gt;
&lt;br /&gt;
 #  diskutil coreStorage convert /dev/disk1s2&lt;br /&gt;
 Started CoreStorage operation on disk1s2 Internal HD&lt;br /&gt;
 Resizing disk to fit Core Storage headers&lt;br /&gt;
 Creating Core Storage Logical Volume Group&lt;br /&gt;
 Attempting to unmount disk1s2&lt;br /&gt;
 Switching disk1s2 to Core Storage&lt;br /&gt;
 Waiting for Logical Volume to appear&lt;br /&gt;
 Mounting Logical Volume&lt;br /&gt;
 Core Storage LVG UUID: 4690972A-484E-42E2-B72D-933A58E41237&lt;br /&gt;
 Core Storage PV UUID: 22A1A783-01BA-4ABA-B4A3-2A9146506519&lt;br /&gt;
 Core Storage LV UUID: F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Core Storage disk: disk2&lt;br /&gt;
 Finished CoreStorage operation on disk1s2 Internal HD&lt;br /&gt;
&lt;br /&gt;
Note that we converted the existing unencrypted HFS+ partition.&lt;br /&gt;
&lt;br /&gt;
Next, we encrypt the logical volume, our Core Storage disk, disk2:&lt;br /&gt;
&lt;br /&gt;
:'''Note: If you choose to use diskutil to do the encryption, it will default to the most secure option, which will take a VERY long time with large disks, optionally use the Disk Util UI and set it up as an encrypted HFS+ volume and under advanced change to least secure (good for new disks)'''&lt;br /&gt;
&lt;br /&gt;
 # diskutil coreStorage encryptVolume /dev/disk2&lt;br /&gt;
 New passphrase for existing volume:&lt;br /&gt;
 Confirm new passphrase:&lt;br /&gt;
 The Core Storage Logical Volume UUID is F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Started CoreStorage operation on disk2 Internal HD&lt;br /&gt;
 Scheduling encryption of Core Storage Logical Volume&lt;br /&gt;
 Core Storage LV UUID: F6D16BFE-B6E9-4A9B-BC03-E5CD03772C44&lt;br /&gt;
 Finished CoreStorage operation on disk2 Internal HD&lt;br /&gt;
&lt;br /&gt;
Note that we used disk2, the logical volume, not disk1s2.&lt;br /&gt;
&lt;br /&gt;
This can and will take a while to complete. You can check the status by issuing:&lt;br /&gt;
 # diskutil coreStorage list | grep Conversion&lt;br /&gt;
&lt;br /&gt;
Until it's done:&lt;br /&gt;
 Conversion Status:  Complete&lt;br /&gt;
 Conversion Progress: -none-&lt;br /&gt;
&lt;br /&gt;
Your partition layout should now look like:&lt;br /&gt;
&lt;br /&gt;
 # diskutil list&lt;br /&gt;
 /dev/disk0&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *160.0 GB   disk0&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk0s1&lt;br /&gt;
    2:                  Apple_HFS Macintosh HD            159.7 GB   disk0s2&lt;br /&gt;
 /dev/disk1&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:      GUID_partition_scheme                        *1.0 TB     disk1&lt;br /&gt;
    1:                        EFI EFI                     209.7 MB   disk1s1&lt;br /&gt;
    2:          Apple_CoreStorage                         999.9 GB   disk1s2&lt;br /&gt;
    3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3&lt;br /&gt;
 /dev/disk2&lt;br /&gt;
    #:                       TYPE NAME                    SIZE       IDENTIFIER&lt;br /&gt;
    0:                  Apple_HFS                        *999.5 GB   disk2&lt;br /&gt;
&lt;br /&gt;
disk2 being our encrypted, unlocked HFS+ device. If you have yet to be prompted for the passphrase by OS X, now would be a good time to restart your Mac and try it out.&lt;br /&gt;
&lt;br /&gt;
Lastly, we'll prepare the volume for ZFS, by unmounting /dev/disk2:&lt;br /&gt;
&lt;br /&gt;
 # mount&lt;br /&gt;
 ...&lt;br /&gt;
 /dev/disk2 on /Volumes/Internal HD (hfs, local, journaled)&lt;br /&gt;
 # diskutil unmount &amp;quot;/Volumes/Internal HD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can now follow the article on [[Zpool#Creating_a_pool|creating a pool]]. As a simple example, you might&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 # zpool list&lt;br /&gt;
 no pools available&lt;br /&gt;
 # zpool create -f -o ashift=12 ZFS_VOLUME /dev/disk2&lt;br /&gt;
 # zpool list&lt;br /&gt;
 ZFS_VOLUME    928G  20.8G   907G     2%  1.00x  ONLINE  -&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note that you '''don't''' need to worry about changing the partition type in this case to ZFS as described in the [[Suppressing_the_annoying_pop-up|Suppressing the annoying pop-up]] wiki page.&lt;br /&gt;
&lt;br /&gt;
=== Reason to &amp;quot;use latest&amp;quot; ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; If you want encryption you have a few options&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; https://github.com/zfsrogue/osx-zfs-crypto&lt;br /&gt;
&amp;lt;lundman&amp;gt; :)&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can do what cbreak said, and use an encrypted sparsebundle&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; (I'd give it its own ZFS file system)&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can create a ZVOL, and put an encrypted Core Storage/Filevault 2 HFS+&lt;br /&gt;
           file system on it&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or you can put the pool itself on top of Core Storage.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; The last option you should not do with the installer version.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But wait for the next installer if that's the route you want to go&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; or build from source.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    Ah, interesting. Does FileVault 2 require HFS+? Not that it'd surprise me.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; No it does not.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But it is not possible to set other Content Hints&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; so it will always say HFS+ even if you do put ZFS on your logical volumes.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; So basically the procedure is to format the volume HFS+.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then run 'diskutil coreStorage convert' on it.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then you can encrypt it.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Then you unmount the HFS+&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; and zpool create on the logical volume.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; And you should be good to go.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    On the original HFS+ partition, right?&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; Right.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But I'd encrypt first&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; then put ZFS on it.&lt;br /&gt;
&amp;lt;aandy&amp;gt;    Right. Perfect.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; diskutil coreStorage convert ...&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; diskutil coreStorage encryptVolume ...&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; etc.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; The reason not to use the installer version, is that it will attempt to&lt;br /&gt;
           partition the Core Storage Logical Volume.&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; But since 10.8.5 and after, Apple doesn't like that&lt;br /&gt;
&amp;lt;ilovezfs&amp;gt; so we added new code to detect Core Storage and not partition if it sees it's&lt;br /&gt;
           Core Storage.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time Machine backups ===&lt;br /&gt;
As a follow-up, here's one approach to using ZFS for your Time Machine Backups:&lt;br /&gt;
&lt;br /&gt;
While it has been discussed in heated arguments (e.g., https://github.com/openzfsonosx/zfs/issues/66) I still believe there's at least one ZFS feature I'd like to test with Time Machine: compression.&lt;br /&gt;
&lt;br /&gt;
The hypothesis being:&lt;br /&gt;
an HFS+ sparsebundle stored on a compressed (gzip, lz4), deduped dataset should&lt;br /&gt;
yield a compression ratio &amp;gt; 1.0.&lt;br /&gt;
(previously observed 1.4 with compression=on, dedup=off, FreeBSD network Time Machine drives).&lt;br /&gt;
&lt;br /&gt;
To work around compatible disks for Time Machine, we create an HFS+ sparsebundle, store it on ZFS, and set the mounted image as a backup destination – no &amp;quot;TMShowUnsupportedNetworkVolumes&amp;quot; needed.&lt;br /&gt;
&lt;br /&gt;
1. Create, and mount, a sparsebundle from your ZFS filesystem (e.g., with makeImage.sh).&lt;br /&gt;
&lt;br /&gt;
2. Set your sparsebundle as the (active) backup destination # tmutil setdestination -a /Volumes/Time\ Machine\ Backups&lt;/div&gt;</summary>
		<author><name>Srirangav</name></author>	</entry>

	</feed>