<?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=121.216.2.234</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=121.216.2.234"/>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Special:Contributions/121.216.2.234"/>
		<updated>2026-05-09T21:54:16Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.22.3</generator>

	<entry>
		<id>https://openzfsonosx.org/wiki/Install</id>
		<title>Install</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/Install"/>
				<updated>2015-04-12T05:55:44Z</updated>
		
		<summary type="html">&lt;p&gt;121.216.2.234: Noted need for Xcode 6.3 or greater due to stac() clac() in codebase.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:About O3X]]&lt;br /&gt;
[[Category:Getting and installing O3X]]&lt;br /&gt;
== Installing the official release ==&lt;br /&gt;
&lt;br /&gt;
Download the most recent dmg from the [[Downloads]] page.&lt;br /&gt;
&lt;br /&gt;
Verify the checksums.&lt;br /&gt;
&lt;br /&gt;
 $ md5 OpenZFS_on_OS_X_*.dmg&lt;br /&gt;
 $ sha1sum OpenZFS_on_OS_X_*.dmg&lt;br /&gt;
 $ openssl dgst -sha256 OpenZFS_on_OS_X_*.dmg&lt;br /&gt;
&lt;br /&gt;
Open the .dmg file.&lt;br /&gt;
&lt;br /&gt;
Read ReadMe.rtf.&lt;br /&gt;
&lt;br /&gt;
Start the installer by opening OpenZFS_on_OS_X_x.y.z.pkg.&lt;br /&gt;
&lt;br /&gt;
Follow the prompts.&lt;br /&gt;
&lt;br /&gt;
If you ever want to uninstall, follow the instructions for [[Uninstall#Uninstalling_a_release_version|uninstalling a release version]].&lt;br /&gt;
&lt;br /&gt;
== Installing from source ==&lt;br /&gt;
===Initial installation from source===&lt;br /&gt;
(Adapted from an [http://zerobsd.tumblr.com/post/62586498252/os-x-with-zfs article by ZeroBSD].)&lt;br /&gt;
&lt;br /&gt;
Before doing anything else, please include &amp;lt;code&amp;gt;keepsyms=y&amp;lt;/code&amp;gt; in your boot-args, and, if you are on OS X Yosemite, &amp;lt;code&amp;gt;kext-dev-mode=1&amp;lt;/code&amp;gt;. For instance,&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nvram boot-args=&amp;quot;-v keepsyms=y kext-dev-mode=1&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will take effect the next time you reboot. The argument &amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt; will make your boot screen verbose instead of just showing the Apple logo, the argument &amp;lt;code&amp;gt;keepsyms=y&amp;lt;/code&amp;gt; will make your panic reports more useful for us, and the argument &amp;lt;code&amp;gt;kext-dev-mode=1&amp;lt;/code&amp;gt; will allow you to autoload unsigned kernel extensions from /System/Library/Extensions on OS X Yosemite.&lt;br /&gt;
&lt;br /&gt;
If you have any other implementation of ZFS installed, you must uninstall it and reboot before proceeding further. Similarly, if you have installed the O3X installer version, please follow the [https://openzfsonosx.org/wiki/Uninstall uninstallation directions] before proceeding.&lt;br /&gt;
&lt;br /&gt;
Prerequisites:&lt;br /&gt;
&lt;br /&gt;
* [https://developer.apple.com/xcode/ Xcode] (from [http://itunes.apple.com/us/app/xcode/id497799835?ls=1&amp;amp;mt=12 Mac App Store] or https://developer.apple.com/downloads/index.action)&lt;br /&gt;
* Xcode Command Line Tools (https://developer.apple.com/downloads/index.action)&lt;br /&gt;
* [http://brew.sh/ Homebrew] (or [http://www.macports.org/‎ MacPorts])&lt;br /&gt;
&lt;br /&gt;
Note: Xcode 6.3 or later is now required to build due to Broadwell CPU support requirements.&lt;br /&gt;
&lt;br /&gt;
To install Homebrew:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paste that at a Terminal prompt.&lt;br /&gt;
&lt;br /&gt;
Once Homebrew is installed, we need a couple of things first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
brew install automake libtool gawk coreutils&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have used brew before, it might pay to check it&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
brew doctor&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and if prompted&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
brew prune&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create two folders in your home directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p ~/Developer ~/bin&lt;br /&gt;
chmod 700 ~/Developer ~/bin&lt;br /&gt;
chmod +a &amp;quot;group:everyone deny delete&amp;quot; ~/Developer ~/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adjust your PATH variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo 'export PATH=$HOME/bin:/usr/local/bin:$PATH' &amp;gt;&amp;gt; ~/.bash_profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and update your environment by sourcing your profile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source ~/.bash_profile&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To acquire the sources and build ZFS, we can use the [[zfsadm]] script found [https://gist.github.com/ilovezfs/7713854#file-zfsadm here].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Developer/&lt;br /&gt;
git clone https://gist.github.com/7713854.git zfsadm-repo&lt;br /&gt;
cp zfsadm-repo/zfsadm ~/bin/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can can build OpenZFS on OS X:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zfsadm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a few minutes, depending on your hardware. There may be some warnings during the compilation. Do not worry about it unless you see errors.&lt;br /&gt;
&lt;br /&gt;
Before using ZFS, we need to actually install it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Developer/spl&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ~/Developer/zfs&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check to see if the kernel extensions loaded automatically with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kextstat | grep lundman&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see something similar to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
137    1 0xffffff803f61a800 0x20c      0x20c      net.lundman.kernel.dependencies (10.0.0)&lt;br /&gt;
144    1 0xffffff7f82720000 0xd000     0xd000     net.lundman.spl (1.0.0) &amp;lt;137 7 5 4 3 1&amp;gt;&lt;br /&gt;
145    0 0xffffff7f8272d000 0x202000   0x202000   net.lundman.zfs (1.0.0) &amp;lt;144 13 7 5 4 3 1&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If not, make sure kextd is aware of them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo touch /System/Library/Extensions&lt;br /&gt;
sudo killall -HUP kextd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now check again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kextstat | grep lundman&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If not, you can load the kexts manually.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /System/Library/Extensions&lt;br /&gt;
sudo kextload spl.kext&lt;br /&gt;
sudo kextload -d spl.kext zfs.kext&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zpool&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see if everything is installed and configured properly.&lt;br /&gt;
&lt;br /&gt;
You can go ahead and [[zpool#Creating_a_pool|create your pools]] at this point.&lt;br /&gt;
&lt;br /&gt;
===Upgrading a source install===&lt;br /&gt;
When you want to get the [https://github.com/openzfsonosx/zfs/commits/master latest commits] from the GitHub, here's a quick overview of things you need to run.&lt;br /&gt;
&lt;br /&gt;
First make sure you have exported all of your pools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zpool list&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For every pool listed, run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zpool export $poolname&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure they have exported successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zpool status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should say, &amp;quot;no pools available.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use this script to export all pools:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
if [ x$(which zpool) != x ]&lt;br /&gt;
then&lt;br /&gt;
	zpool list -H | awk -F '\t' '{print $1;}' | xargs -I '#' sudo zpool export '#'&lt;br /&gt;
else&lt;br /&gt;
	cd ~/Developer/zfs&lt;br /&gt;
	./cmd.sh zpool list -H | awk -F '\t' '{print $1;}' | xargs -I '#' sudo ./cmd.sh zpool export '#'&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get any [[zfsadm]] updates:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Developer&lt;br /&gt;
[ -d zfsadm-repo/.git ] &amp;amp;&amp;amp; (cd zfsadm-repo ; git pull)&lt;br /&gt;
[ ! -d zfsadm-repo/.git ] &amp;amp;&amp;amp;  git clone https://gist.github.com/7713854.git zfsadm-repo&lt;br /&gt;
cp zfsadm-repo/zfsadm ~/bin/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to upgrade your ZFS installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/Developer&lt;br /&gt;
&lt;br /&gt;
cd spl&lt;br /&gt;
make clean&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
cd zfs&lt;br /&gt;
make clean&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
zfsadm&lt;br /&gt;
&lt;br /&gt;
# Assuming the build completed successfully,&lt;br /&gt;
# unload the kexts. If you did not export all of&lt;br /&gt;
# your pools this will panic:&lt;br /&gt;
&lt;br /&gt;
zfsadm -u&lt;br /&gt;
&lt;br /&gt;
# Now install the upgrade.&lt;br /&gt;
&lt;br /&gt;
cd spl&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
cd zfs&lt;br /&gt;
sudo make install&lt;br /&gt;
&lt;br /&gt;
# And verify they reloaded automatically&lt;br /&gt;
&lt;br /&gt;
kextstat | grep lundman&lt;br /&gt;
&lt;br /&gt;
# If not, make sure kextd is aware of them&lt;br /&gt;
&lt;br /&gt;
sudo touch /System/Library/Extensions&lt;br /&gt;
sudo killall -HUP kextd&lt;br /&gt;
&lt;br /&gt;
# and check again&lt;br /&gt;
&lt;br /&gt;
kextstat | grep lundman&lt;br /&gt;
&lt;br /&gt;
# if they they still have not loaded automatically&lt;br /&gt;
&lt;br /&gt;
cd /System/Library/Extensions&lt;br /&gt;
sudo kextload spl.kext&lt;br /&gt;
sudo kextload -d spl.kext zfs.kext&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If net.lundman.kernel.dependencies has been updated, which is rarely the case, a reboot will be necessary.&lt;br /&gt;
&lt;br /&gt;
===Uninstalling a source install===&lt;br /&gt;
If you ever want to uninstall, follow the instructions for [[Uninstall#Uninstalling_a_source_install|uninstalling a source install]].&lt;br /&gt;
&lt;br /&gt;
== Using without actually installing (development) ==&lt;br /&gt;
This method is usually appropriate only for Developers.&lt;br /&gt;
&lt;br /&gt;
The procedure is the same as found in the section [[Install#Installing_from_source|installing from source]] except that you never run &amp;quot;make install.&amp;quot; Instead you load the kexts manually, and execute the binaries directly from the source tree.&lt;br /&gt;
&lt;br /&gt;
You can load the kexts manually by running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zfsadm -k&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default, zfsadm -k will copy spl.kext and zfs.kext from the source where they were built to /System/Library/Extensions, recursively change the ownership of everything in /System/Library/Extensions/spl.kext and /System/Library/Extensions/zfs.kext to be owned by the user &amp;quot;root&amp;quot; and the group &amp;quot;wheel,&amp;quot; and then load the kexts directly from /System/Library/Extensions. If you prefer to use a different directory, use the -i option in zfsadm or edit zfsadm to hard code a different directory.&lt;br /&gt;
&lt;br /&gt;
If you do not wish to use zfsadm, you can do all of this yourself, using whatever target directory you'd like. For example, you might do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /tmp&lt;br /&gt;
sudo rm -rf o3x&lt;br /&gt;
sudo mkdir o3x&lt;br /&gt;
&lt;br /&gt;
cd ~/Developer&lt;br /&gt;
sudo cp -r zfs/module/zfs/zfs.kext /tmp/o3x/ &lt;br /&gt;
sudo cp -r spl/module/spl/spl.kext /tmp/o3x/&lt;br /&gt;
&lt;br /&gt;
cd /tmp/o3x&lt;br /&gt;
sudo chown -R *&lt;br /&gt;
sudo kextload spl.kext&lt;br /&gt;
sudo kextload -d spl.kext zfs.kext&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once the kexts have been loaded, you can test the commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
~/Developer/zfs/cmd.sh zfs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Migrating old pools (from MacZFS or ZEVO) ==&lt;br /&gt;
&lt;br /&gt;
First export all of your pools, and uninstall the other implementation. It is all right if you forgot to export your pools before uninstalling. You will just need to use the '-f' option when importing into OpenZFS on OS X.&lt;br /&gt;
&lt;br /&gt;
To find out the pool names, you need to execute the command for pool discovery.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zpool import&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will tell you what pools are available to be imported, but will not actually import anything. You can see that nothing has been imported yet by using the 'zpool status' command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zpool status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that you know what pools are available to be imported, you can actually import a pool by supplying the name or guid that you saw during pool discovery.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zpool import poolname (or guid)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Notice how this differs from the command for pool discovery.)&lt;br /&gt;
&lt;br /&gt;
If you forgot to export before migrating, you will need to use the '-f' option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zpool import -f poolname (or guid)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to see the same information you saw during pool discovery, you will now need to use 'zpool status' rather than 'zpool import'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
zpool status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all pools have been imported, the pool discovery command— 'zpool import' with no pool or guid specified— will return without any output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zpool import&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>121.216.2.234</name></author>	</entry>

	</feed>