<?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=Aandy</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=Aandy"/>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Special:Contributions/Aandy"/>
		<updated>2026-04-19T13:22:49Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.22.3</generator>

	<entry>
		<id>https://openzfsonosx.org/wiki/Encryption</id>
		<title>Encryption</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Encryption"/>
				<updated>2014-05-07T15:04:21Z</updated>
		
		<summary type="html">&lt;p&gt;Aandy: formatting (block quote overstepped, and spacing between TimeMachine steps)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using OSX AES-XTS encryption along with ZFS ==&lt;br /&gt;
&lt;br /&gt;
While work on ZFS encryption schemes are made (classical dilemma post Oracle/CDDL http://open-zfs.org/wiki/Projects#Platform_agnostic_encryption_support, https://en.wikipedia.org/wiki/ZFS), we have an obvious solution to ZFS encryption already at hand: AES-XTS (10.7+ Full Disk Encryption in FileVault2).&lt;br /&gt;
This is the equivalent of the following methods for other OS's: e.g. FreeBSD/geli, and Linux/LUKS.&lt;br /&gt;
&lt;br /&gt;
The overall procedure is as follows: with an existing or fresh HFS+ disk apply full disk encryption. this will create a logical volume (when unlocked/decrypted) which in turn is used (repeat: the new logical volume) to create a ZFS pool.&lt;br /&gt;
&lt;br /&gt;
=== PREREQUISITES ===&lt;br /&gt;
Build ZFS from source: [[Install#Installing_from_source]], or wait for the next installer, [[Downloads]], newer than 1.2.0 (for explanation, see original IRC chat).&lt;br /&gt;
&lt;br /&gt;
=== Caveat ===&lt;br /&gt;
As noted in [[Suppressing_the_annoying_popup]], you will receive a pop-up claiming the disk isn't readable by this computer.&lt;br /&gt;
This is a well documented problem, see the article above. It does however lead to one step which can be confusing: when decrypting the disk (e.g. on startup), the &amp;quot;bug&amp;quot; will make OSX believe the disk wasn't decrypted, and thus &amp;quot;wiggle&amp;quot; and present the prompt again.&lt;br /&gt;
&lt;br /&gt;
Take it on faith that once you've decrypted the disk, you can safely close the dialog box (with Cancel). You can verify this with your pools availability.&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 CoreStorage (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;
 # 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 cs list | grep &amp;quot;Conversion Progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Until it's done:&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;
 # umount &amp;quot;/Volumes/Internal HD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can now proceed with [[Zpool#Creating_a_pool]] or standard ZFS manuals.&lt;br /&gt;
&lt;br /&gt;
=== For illustration purpose ===&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;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reason for &amp;quot;use latest&amp;quot; ==&lt;br /&gt;
This commit is potentially vital:&lt;br /&gt;
e795742 ilovezfs: Make the check for Core Storage LV more forgiving.&lt;br /&gt;
&lt;br /&gt;
=== Original IRC chat ===&lt;br /&gt;
 [14:07] &amp;lt; ilovezfs_&amp;gt; if you want encryption you have a few options&lt;br /&gt;
 [14:07] &amp;lt; ilovezfs_&amp;gt; https://github.com/zfsrogue/osx-zfs-crypto&lt;br /&gt;
 [14:07] &amp;lt; lundman&amp;gt; :)&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; or you can do what cbreak-work said, and use an encrypted sparsebundle&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; (I'd give it its own zfs file system)&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; or you can create a zvol, and put an encrypted CoreStorage/Filevault2 HFS+ file system on it&lt;br /&gt;
 [14:09] &amp;lt; ilovezfs_&amp;gt; or you can put the pool itself on top of CoreStorage&lt;br /&gt;
 [14:09] &amp;lt; ilovezfs_&amp;gt; The last option you should not do with the installer version.&lt;br /&gt;
 [14:10] &amp;lt; ilovezfs_&amp;gt; But wait for the next installer if that's the route you want to go&lt;br /&gt;
 [14:10] &amp;lt; ilovezfs_&amp;gt; or build from source.&lt;br /&gt;
 [14:10] &amp;lt; aandy&amp;gt; ah, interesting. does filevault2 require hfs+? not that it'd surprise me&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; no it does not&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; but it is not possible to set other Content Hints&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; so it will always say HFS+ even if you do put ZFS on your logical volumes&lt;br /&gt;
 -&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; aandy: so basically the procedure is to format the volume HFS+&lt;br /&gt;
 [14:13] *** ottmarklaas [~ottmarkla@cpe-67-248-51-197.nycap.res.rr.com] has quit [Quit: ottmarklaas]&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; aandy: then run 'diskutil corestorage convert' on it&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; then you can encrypt it&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; then you unmount the HFS+&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; and zpool create on the logical volume.&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; And you should be good to go.&lt;br /&gt;
 [14:14] &amp;lt; aandy&amp;gt; on the original HFS+ partition, right?&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; right&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; but id encrypt first&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; then put zfs on&lt;br /&gt;
 [14:14] &amp;lt; aandy&amp;gt; right. perfect&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; diskutil cs convert...&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; diskutil cs encryptVolume ...&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; etc.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; The reason not to use the installer version, is that it will attempt to partition the Core  Storage Logical Volume.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; But since 10.8.5 and after, Apple doesn't like that.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; So we added new code to detect Core Storage and not partition if it sees it's Core Storage.&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;
 a HFS+ sparse bundle 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 a HFS+ bundle, 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 sparse bundle from your zfs filesystem, e.g. with makeImage.sh&lt;br /&gt;
&lt;br /&gt;
2. Set your sparse bundle as the (active) backup destination # tmutil setdestination -a /Volumes/Time\ Machine\ Backups&lt;/div&gt;</summary>
		<author><name>Aandy</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>2014-05-07T15:02:30Z</updated>
		
		<summary type="html">&lt;p&gt;Aandy: Clearification of meaning of &amp;quot;ZFS Encryption&amp;quot; (not necessarily ZFSv30 compatible)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using OSX AES-XTS encryption along with ZFS ==&lt;br /&gt;
&lt;br /&gt;
While work on ZFS encryption schemes are made (classical dilemma post Oracle/CDDL http://open-zfs.org/wiki/Projects#Platform_agnostic_encryption_support, https://en.wikipedia.org/wiki/ZFS), we have an obvious solution to ZFS encryption already at hand: AES-XTS (10.7+ Full Disk Encryption in FileVault2).&lt;br /&gt;
This is the equivalent of the following methods for other OS's: e.g. FreeBSD/geli, and Linux/LUKS.&lt;br /&gt;
&lt;br /&gt;
The overall procedure is as follows: with an existing or fresh HFS+ disk apply full disk encryption. this will create a logical volume (when unlocked/decrypted) which in turn is used (repeat: the new logical volume) to create a ZFS pool.&lt;br /&gt;
&lt;br /&gt;
=== PREREQUISITES ===&lt;br /&gt;
Build ZFS from source: [[Install#Installing_from_source]], or wait for the next installer, [[Downloads]], newer than 1.2.0 (for explanation, see original IRC chat).&lt;br /&gt;
&lt;br /&gt;
=== Caveat ===&lt;br /&gt;
As noted in [[Suppressing_the_annoying_popup]], you will receive a pop-up claiming the disk isn't readable by this computer.&lt;br /&gt;
This is a well documented problem, see the article above. It does however lead to one step which can be confusing: when decrypting the disk (e.g. on startup), the &amp;quot;bug&amp;quot; will make OSX believe the disk wasn't decrypted, and thus &amp;quot;wiggle&amp;quot; and present the prompt again.&lt;br /&gt;
&lt;br /&gt;
Take it on faith that once you've decrypted the disk, you can safely close the dialog box (with Cancel). You can verify this with your pools availability.&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 CoreStorage (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;
 # 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 cs list | grep &amp;quot;Conversion Progress&amp;quot;&lt;br /&gt;
 Until it's done: &amp;quot;Conversion Progress: -none-&amp;quot;&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;
 # umount &amp;quot;/Volumes/Internal HD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can now proceed with [[Zpool#Creating_a_pool]] or standard ZFS manuals.&lt;br /&gt;
&lt;br /&gt;
=== For illustration purpose ===&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;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reason for &amp;quot;use latest&amp;quot; ==&lt;br /&gt;
This commit is potentially vital:&lt;br /&gt;
e795742 ilovezfs: Make the check for Core Storage LV more forgiving.&lt;br /&gt;
&lt;br /&gt;
=== Original IRC chat ===&lt;br /&gt;
 [14:07] &amp;lt; ilovezfs_&amp;gt; if you want encryption you have a few options&lt;br /&gt;
 [14:07] &amp;lt; ilovezfs_&amp;gt; https://github.com/zfsrogue/osx-zfs-crypto&lt;br /&gt;
 [14:07] &amp;lt; lundman&amp;gt; :)&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; or you can do what cbreak-work said, and use an encrypted sparsebundle&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; (I'd give it its own zfs file system)&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; or you can create a zvol, and put an encrypted CoreStorage/Filevault2 HFS+ file system on it&lt;br /&gt;
 [14:09] &amp;lt; ilovezfs_&amp;gt; or you can put the pool itself on top of CoreStorage&lt;br /&gt;
 [14:09] &amp;lt; ilovezfs_&amp;gt; The last option you should not do with the installer version.&lt;br /&gt;
 [14:10] &amp;lt; ilovezfs_&amp;gt; But wait for the next installer if that's the route you want to go&lt;br /&gt;
 [14:10] &amp;lt; ilovezfs_&amp;gt; or build from source.&lt;br /&gt;
 [14:10] &amp;lt; aandy&amp;gt; ah, interesting. does filevault2 require hfs+? not that it'd surprise me&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; no it does not&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; but it is not possible to set other Content Hints&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; so it will always say HFS+ even if you do put ZFS on your logical volumes&lt;br /&gt;
 -&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; aandy: so basically the procedure is to format the volume HFS+&lt;br /&gt;
 [14:13] *** ottmarklaas [~ottmarkla@cpe-67-248-51-197.nycap.res.rr.com] has quit [Quit: ottmarklaas]&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; aandy: then run 'diskutil corestorage convert' on it&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; then you can encrypt it&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; then you unmount the HFS+&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; and zpool create on the logical volume.&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; And you should be good to go.&lt;br /&gt;
 [14:14] &amp;lt; aandy&amp;gt; on the original HFS+ partition, right?&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; right&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; but id encrypt first&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; then put zfs on&lt;br /&gt;
 [14:14] &amp;lt; aandy&amp;gt; right. perfect&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; diskutil cs convert...&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; diskutil cs encryptVolume ...&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; etc.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; The reason not to use the installer version, is that it will attempt to partition the Core  Storage Logical Volume.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; But since 10.8.5 and after, Apple doesn't like that.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; So we added new code to detect Core Storage and not partition if it sees it's Core Storage.&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;
 a HFS+ sparse bundle 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 a HFS+ bundle, 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 sparse bundle from your zfs filesystem, e.g. with makeImage.sh&lt;br /&gt;
2. Set your sparse bundle as the (active) backup destination # tmutil setdestination -a /Volumes/Time\ Machine\ Backups&lt;/div&gt;</summary>
		<author><name>Aandy</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>2014-05-07T14:49:08Z</updated>
		
		<summary type="html">&lt;p&gt;Aandy: Added passphrase prompt caveat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using OSX AES-XTS encryption along with ZFS ==&lt;br /&gt;
&lt;br /&gt;
While work is made on ZFS 30, we have an obvious solution to ZFS encryption already at hand: AES-XTS (10.7+ Full Disk Encryption in FileVault2).&lt;br /&gt;
This is the equivalent of the following methods for other OS's: e.g. FreeBSD/geli, and Linux/LUKS.&lt;br /&gt;
&lt;br /&gt;
The overall procedure is as follows: with an existing or fresh HFS+ disk apply full disk encryption. this will create a logical volume (when unlocked/decrypted) which in turn is used (repeat: the new logical volume) to create a ZFS pool.&lt;br /&gt;
&lt;br /&gt;
=== PREREQUISITES ===&lt;br /&gt;
Build ZFS from source: [[Install#Installing_from_source]], or wait for the next installer, [[Downloads]], newer than 1.2.0 (for explanation, see original IRC chat).&lt;br /&gt;
&lt;br /&gt;
=== Caveat ===&lt;br /&gt;
As noted in [[Suppressing_the_annoying_popup]], you will receive a pop-up claiming the disk isn't readable by this computer.&lt;br /&gt;
This is a well documented problem, see the article above. It does however lead to one step which can be confusing: when decrypting the disk (e.g. on startup), the &amp;quot;bug&amp;quot; will make OSX believe the disk wasn't decrypted, and thus &amp;quot;wiggle&amp;quot; and present the prompt again.&lt;br /&gt;
&lt;br /&gt;
Take it on faith that once you've decrypted the disk, you can safely close the dialog box (with Cancel). You can verify this with your pools availability.&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 CoreStorage (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;
 # 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 cs list | grep &amp;quot;Conversion Progress&amp;quot;&lt;br /&gt;
 Until it's done: &amp;quot;Conversion Progress: -none-&amp;quot;&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;
 # umount &amp;quot;/Volumes/Internal HD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can now proceed with [[Zpool#Creating_a_pool]] or standard ZFS manuals.&lt;br /&gt;
&lt;br /&gt;
=== For illustration purpose ===&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;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reason for &amp;quot;use latest&amp;quot; ==&lt;br /&gt;
This commit is potentially vital:&lt;br /&gt;
e795742 ilovezfs: Make the check for Core Storage LV more forgiving.&lt;br /&gt;
&lt;br /&gt;
=== Original IRC chat ===&lt;br /&gt;
 [14:07] &amp;lt; ilovezfs_&amp;gt; if you want encryption you have a few options&lt;br /&gt;
 [14:07] &amp;lt; ilovezfs_&amp;gt; https://github.com/zfsrogue/osx-zfs-crypto&lt;br /&gt;
 [14:07] &amp;lt; lundman&amp;gt; :)&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; or you can do what cbreak-work said, and use an encrypted sparsebundle&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; (I'd give it its own zfs file system)&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; or you can create a zvol, and put an encrypted CoreStorage/Filevault2 HFS+ file system on it&lt;br /&gt;
 [14:09] &amp;lt; ilovezfs_&amp;gt; or you can put the pool itself on top of CoreStorage&lt;br /&gt;
 [14:09] &amp;lt; ilovezfs_&amp;gt; The last option you should not do with the installer version.&lt;br /&gt;
 [14:10] &amp;lt; ilovezfs_&amp;gt; But wait for the next installer if that's the route you want to go&lt;br /&gt;
 [14:10] &amp;lt; ilovezfs_&amp;gt; or build from source.&lt;br /&gt;
 [14:10] &amp;lt; aandy&amp;gt; ah, interesting. does filevault2 require hfs+? not that it'd surprise me&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; no it does not&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; but it is not possible to set other Content Hints&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; so it will always say HFS+ even if you do put ZFS on your logical volumes&lt;br /&gt;
 -&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; aandy: so basically the procedure is to format the volume HFS+&lt;br /&gt;
 [14:13] *** ottmarklaas [~ottmarkla@cpe-67-248-51-197.nycap.res.rr.com] has quit [Quit: ottmarklaas]&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; aandy: then run 'diskutil corestorage convert' on it&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; then you can encrypt it&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; then you unmount the HFS+&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; and zpool create on the logical volume.&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; And you should be good to go.&lt;br /&gt;
 [14:14] &amp;lt; aandy&amp;gt; on the original HFS+ partition, right?&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; right&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; but id encrypt first&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; then put zfs on&lt;br /&gt;
 [14:14] &amp;lt; aandy&amp;gt; right. perfect&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; diskutil cs convert...&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; diskutil cs encryptVolume ...&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; etc.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; The reason not to use the installer version, is that it will attempt to partition the Core  Storage Logical Volume.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; But since 10.8.5 and after, Apple doesn't like that.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; So we added new code to detect Core Storage and not partition if it sees it's Core Storage.&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;
 a HFS+ sparse bundle 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 a HFS+ bundle, 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 sparse bundle from your zfs filesystem, e.g. with makeImage.sh&lt;br /&gt;
2. Set your sparse bundle as the (active) backup destination # tmutil setdestination -a /Volumes/Time\ Machine\ Backups&lt;/div&gt;</summary>
		<author><name>Aandy</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>2014-05-07T14:43:08Z</updated>
		
		<summary type="html">&lt;p&gt;Aandy: Guide to using OSX built in encryption together with ZFS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using OSX AES-XTS encryption along with ZFS ==&lt;br /&gt;
&lt;br /&gt;
While work is made on ZFS 30, we have an obvious solution to ZFS encryption already at hand: AES-XTS (10.7+ Full Disk Encryption in FileVault2).&lt;br /&gt;
This is the equivalent of the following methods for other OS's: e.g. FreeBSD/geli, and Linux/LUKS.&lt;br /&gt;
&lt;br /&gt;
The overall procedure is as follows: with an existing or fresh HFS+ disk apply full disk encryption. this will create a logical volume (when unlocked/decrypted) which in turn is used (repeat: the new logical volume) to create a ZFS pool.&lt;br /&gt;
&lt;br /&gt;
=== PREREQUISITES ===&lt;br /&gt;
Build ZFS from source: [[Install#Installing_from_source]], or wait for the next installer, [[Downloads]], newer than 1.2.0 (for explanation, see original IRC chat).&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 CoreStorage (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;
 # 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 cs list | grep &amp;quot;Conversion Progress&amp;quot;&lt;br /&gt;
 Until it's done: &amp;quot;Conversion Progress: -none-&amp;quot;&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;
 # umount &amp;quot;/Volumes/Internal HD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can now proceed with [[Zpool#Creating_a_pool]] or standard ZFS manuals.&lt;br /&gt;
&lt;br /&gt;
=== For illustration purpose ===&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;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reason for &amp;quot;use latest&amp;quot; ==&lt;br /&gt;
This commit is potentially vital:&lt;br /&gt;
e795742 ilovezfs: Make the check for Core Storage LV more forgiving.&lt;br /&gt;
&lt;br /&gt;
=== Original IRC chat ===&lt;br /&gt;
 [14:07] &amp;lt; ilovezfs_&amp;gt; if you want encryption you have a few options&lt;br /&gt;
 [14:07] &amp;lt; ilovezfs_&amp;gt; https://github.com/zfsrogue/osx-zfs-crypto&lt;br /&gt;
 [14:07] &amp;lt; lundman&amp;gt; :)&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; or you can do what cbreak-work said, and use an encrypted sparsebundle&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; (I'd give it its own zfs file system)&lt;br /&gt;
 [14:08] &amp;lt; ilovezfs_&amp;gt; or you can create a zvol, and put an encrypted CoreStorage/Filevault2 HFS+ file system on it&lt;br /&gt;
 [14:09] &amp;lt; ilovezfs_&amp;gt; or you can put the pool itself on top of CoreStorage&lt;br /&gt;
 [14:09] &amp;lt; ilovezfs_&amp;gt; The last option you should not do with the installer version.&lt;br /&gt;
 [14:10] &amp;lt; ilovezfs_&amp;gt; But wait for the next installer if that's the route you want to go&lt;br /&gt;
 [14:10] &amp;lt; ilovezfs_&amp;gt; or build from source.&lt;br /&gt;
 [14:10] &amp;lt; aandy&amp;gt; ah, interesting. does filevault2 require hfs+? not that it'd surprise me&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; no it does not&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; but it is not possible to set other Content Hints&lt;br /&gt;
 [14:11] &amp;lt; ilovezfs_&amp;gt; so it will always say HFS+ even if you do put ZFS on your logical volumes&lt;br /&gt;
 -&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; aandy: so basically the procedure is to format the volume HFS+&lt;br /&gt;
 [14:13] *** ottmarklaas [~ottmarkla@cpe-67-248-51-197.nycap.res.rr.com] has quit [Quit: ottmarklaas]&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; aandy: then run 'diskutil corestorage convert' on it&lt;br /&gt;
 [14:13] &amp;lt; ilovezfs_&amp;gt; then you can encrypt it&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; then you unmount the HFS+&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; and zpool create on the logical volume.&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; And you should be good to go.&lt;br /&gt;
 [14:14] &amp;lt; aandy&amp;gt; on the original HFS+ partition, right?&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; right&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; but id encrypt first&lt;br /&gt;
 [14:14] &amp;lt; ilovezfs_&amp;gt; then put zfs on&lt;br /&gt;
 [14:14] &amp;lt; aandy&amp;gt; right. perfect&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; diskutil cs convert...&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; diskutil cs encryptVolume ...&lt;br /&gt;
 [14:15] &amp;lt; ilovezfs_&amp;gt; etc.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; The reason not to use the installer version, is that it will attempt to partition the Core  Storage Logical Volume.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; But since 10.8.5 and after, Apple doesn't like that.&lt;br /&gt;
 [14:16] &amp;lt; ilovezfs_&amp;gt; So we added new code to detect Core Storage and not partition if it sees it's Core Storage.&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;
 a HFS+ sparse bundle 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 a HFS+ bundle, 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 sparse bundle from your zfs filesystem, e.g. with makeImage.sh&lt;br /&gt;
2. Set your sparse bundle as the (active) backup destination # tmutil setdestination -a /Volumes/Time\ Machine\ Backups&lt;/div&gt;</summary>
		<author><name>Aandy</name></author>	</entry>

	</feed>