Editing Install
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 8: | Line 8: | ||
$ md5 OpenZFS_on_OS_X_*.dmg | $ md5 OpenZFS_on_OS_X_*.dmg | ||
− | $ | + | $ sha1sum OpenZFS_on_OS_X_*.dmg |
− | $ | + | $ openssl dgst -sha256 OpenZFS_on_OS_X_*.dmg |
Open the .dmg file. | Open the .dmg file. | ||
Line 18: | Line 18: | ||
Follow the prompts. | Follow the prompts. | ||
− | |||
− | |||
If you ever want to uninstall, follow the instructions for [[Uninstall#Uninstalling_a_release_version|uninstalling a release version]]. | If you ever want to uninstall, follow the instructions for [[Uninstall#Uninstalling_a_release_version|uninstalling a release version]]. | ||
Line 25: | Line 23: | ||
== Installing from source == | == Installing from source == | ||
===Initial installation from source=== | ===Initial installation from source=== | ||
+ | (Adapted from an [http://zerobsd.tumblr.com/post/62586498252/os-x-with-zfs article by ZeroBSD].) | ||
− | + | Before doing anything else, please include <code>keepsyms=y</code> in your boot-args, and, if you are on OS X Yosemite, <code>kext-dev-mode=1</code>. For instance, | |
− | + | ||
− | + | ||
− | + | ||
− | Before doing anything else, please | + | |
− | + | ||
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | sudo nvram boot-args="-v keepsyms=1" | + | sudo nvram boot-args="-v keepsyms=y kext-dev-mode=1" |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | This will take effect the next time you reboot. The argument <code>-v</code> will make your boot screen verbose instead of just showing the Apple logo, the argument <code>keepsyms=y</code> will make your panic reports more useful for us, and the argument <code>kext-dev-mode=1</code> will allow you to autoload unsigned kernel extensions from /System/Library/Extensions on OS X Yosemite. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | This will take effect the next time you reboot. The argument <code>-v</code> will make your boot screen verbose instead of just showing the Apple logo, the argument <code>keepsyms= | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
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. | 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. | ||
Line 79: | Line 37: | ||
* [https://developer.apple.com/xcode/ Xcode] (from [http://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 Mac App Store] or https://developer.apple.com/downloads/index.action) | * [https://developer.apple.com/xcode/ Xcode] (from [http://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 Mac App Store] or https://developer.apple.com/downloads/index.action) | ||
* Xcode Command Line Tools (https://developer.apple.com/downloads/index.action) | * Xcode Command Line Tools (https://developer.apple.com/downloads/index.action) | ||
− | * [http://brew.sh/ Homebrew] (or [http://www.macports.org/ MacPorts]) | + | * [http://brew.sh/ Homebrew] (or [http://www.macports.org/ MacPorts]) |
− | Note: Xcode 6.3 or later is now required to build due to Broadwell CPU support requirements. | + | Note: Xcode 6.3 or later is now required to build due to Broadwell CPU support requirements. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
To install Homebrew: | To install Homebrew: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Paste that at a Terminal prompt. | |
+ | |||
+ | Once Homebrew is installed, we need a couple of things first: | ||
+ | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
− | brew | + | brew install automake libtool gawk coreutils |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | If you have used brew before, it might pay to check it | |
+ | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
brew doctor | brew doctor | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | + | and if prompted | |
+ | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
brew prune | brew prune | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Create two folders in your home directory. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 123: | Line 75: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Adjust your PATH variable: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
echo 'export PATH=$HOME/bin:/usr/local/bin:$PATH' >> ~/.bash_profile | echo 'export PATH=$HOME/bin:/usr/local/bin:$PATH' >> ~/.bash_profile | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | and update your environment by sourcing your profile. | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Line 217: | Line 162: | ||
Note that '''load.sh''' will also start '''tail -f /var/log/system.log''' for your convenience. | Note that '''load.sh''' will also start '''tail -f /var/log/system.log''' for your convenience. | ||
− | <syntaxhighlight lang="text" highlight="1,2,3, | + | <syntaxhighlight lang="text" highlight="1,2,3,5,6,10,12,14"> |
$ sudo bash | $ sudo bash | ||
# cd ~/Developer/zfs | # cd ~/Developer/zfs | ||
Line 250: | Line 195: | ||
sudo zpool export $poolname | sudo zpool export $poolname | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Make sure they have exported successfully. | Make sure they have exported successfully. | ||
Line 264: | Line 203: | ||
It should say, "no pools available." | It should say, "no pools available." | ||
+ | |||
+ | Alternatively, you can use this script to export all pools: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | #!/bin/bash | ||
+ | |||
+ | if [ x$(which zpool) != x ] | ||
+ | then | ||
+ | zpool list -H | awk -F '\t' '{print $1;}' | xargs -I '#' sudo zpool export '#' | ||
+ | else | ||
+ | cd ~/Developer/zfs | ||
+ | ./cmd.sh zpool list -H | awk -F '\t' '{print $1;}' | xargs -I '#' sudo ./cmd.sh zpool export '#' | ||
+ | fi | ||
+ | </syntaxhighlight> | ||
Get any [[zfsadm]] updates: | Get any [[zfsadm]] updates: | ||
Line 289: | Line 241: | ||
# Assuming the build completed successfully, | # Assuming the build completed successfully, | ||
− | # unload the kexts. | + | # unload the kexts. If you did not export all of |
+ | # your pools this will panic: | ||
zfsadm -u | zfsadm -u | ||
Line 308: | Line 261: | ||
# If not, make sure kextd is aware of them | # If not, make sure kextd is aware of them | ||
− | sudo touch | + | sudo touch /System/Library/Extensions |
sudo killall -HUP kextd | sudo killall -HUP kextd | ||
Line 321: | Line 274: | ||
sudo kextload -d spl.kext zfs.kext | sudo kextload -d spl.kext zfs.kext | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | If net.lundman.kernel.dependencies has been updated, which is rarely the case, a reboot will be necessary. | ||
===Uninstalling a source install=== | ===Uninstalling a source install=== | ||
Line 346: | Line 301: | ||
cd ~/Developer | cd ~/Developer | ||
− | sudo cp - | + | sudo cp -r zfs/module/zfs/zfs.kext /tmp/o3x/ |
− | sudo cp - | + | sudo cp -r spl/module/spl/spl.kext /tmp/o3x/ |
cd /tmp/o3x | cd /tmp/o3x |