https://openzfsonosx.org/w/api.php?action=feedcontributions&user=Lundman&feedformat=atomOpenZFS on OS X - User contributions [en]2024-03-29T13:43:13ZUser contributionsMediaWiki 1.22.3https://openzfsonosx.org/wiki/Windows_bootloopWindows bootloop2024-01-25T00:35:59Z<p>Lundman: /* Windows Boot Crashes */</p>
<hr />
<div><br />
== Windows Boot Crashes ==<br />
<br />
If you find that OpenZFS is crashing everytime you boot Windows, you can remove the kernel extension part.<br />
<br />
Enter the recovery CMD shell<br />
* When booting, once you get to the spinning dots part - turn off your PC - either by holding power button for 10s, or cutting power.<br />
* Doing that 2 times in a row, Windows will ask if you have boot issues.<br />
* Enter Troubleshoot, Advanced Options, then Command Prompt.<br />
<br />
Remove the driver<br />
* Navigate to your hard disk, which might not be C: during boot command console. Change drive letter, and issue "dir" until you recognise your disk.<br />
* cd into Windows\System32\Drivers<br />
* dele openzfs.sys<br />
* exit command prompt<br />
* use menus to boot normally.</div>Lundmanhttps://openzfsonosx.org/wiki/File:OpenZFS_on_OS_X_2.2.2.dmgFile:OpenZFS on OS X 2.2.2.dmg2023-12-19T00:58:14Z<p>Lundman: </p>
<hr />
<div></div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2023-12-19T00:56:02Z<p>Lundman: /* 2.2.2 */</p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.2.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.2.2.dmg|OpenZFS_on_OS_X_2.2.2.dmg]] 2023-12-19<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3863 Individual PKG installers]<br />
[https://github.com/openzfsonosx/openzfs-fork/releases/tag/zfs-macOS-2.2.2 GitHub Releases]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.2_2023-12-05|Changelog]]<br />
file size: 268435456<br />
md5: 492bcd6fb64c107f41c159fa227c6918<br />
sha256: fb70feff32a19dce39cadb30a87b0df818726ff651d8fe20250c84a5a9044191<br />
<br />
=== 2.2.0 ===<br />
<br />
Sorry about the REPACK thing, the Sonoma-x86_64.pkg build was incorrect.<br />
Perhaps it is time to retire DMG releases...<br />
[[Media:OpenZFS_on_OS_X_2.2.0.REPACK.dmg|OpenZFS_on_OS_X_2.2.0.REPACK.dmg]] 2023-11-17<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: 595385beecb2a7ed301ad666dae890ba<br />
sha256: 66086dc0445f5df5bebf28720190471494db22afb856f505229c6cbc1e0cffed<br />
<br />
[[Media:OpenZFS_on_OS_X_2.2.0.dmg|OpenZFS_on_OS_X_2.2.0.dmg]] 2023-11-16<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: c9078fd1d9d6769b5e116b26a3395cd8<br />
sha256: 3b96f99078b52876bb936eccdda6c15a9f63cf873455230aa12c84cdcccce099<br />
(are the icons weirdly large? what happened to the background image?)<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3743 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-01|Changelog]]<br />
file size: 268435456<br />
md5: 6acb8b52c5f383e6ecb9cef0a34ee2cb<br />
sha256: b8b7f412b4665ce9fb81c22ceb134deca06741d604e386ba954fa2884501d273<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2023-12-19T00:55:29Z<p>Lundman: /* Installer */</p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.2.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.2.2.dmg|OpenZFS_on_OS_X_2.2.2.dmg]] 2023-12-19<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3863 Individual PKG installers]<br />
[[https://github.com/openzfsonosx/openzfs-fork/releases/tag/zfs-macOS-2.2.2|GitHub Releases]]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.2_2023-12-05|Changelog]]<br />
file size: 268435456<br />
md5: 492bcd6fb64c107f41c159fa227c6918<br />
sha256: fb70feff32a19dce39cadb30a87b0df818726ff651d8fe20250c84a5a9044191<br />
<br />
=== 2.2.0 ===<br />
<br />
Sorry about the REPACK thing, the Sonoma-x86_64.pkg build was incorrect.<br />
Perhaps it is time to retire DMG releases...<br />
[[Media:OpenZFS_on_OS_X_2.2.0.REPACK.dmg|OpenZFS_on_OS_X_2.2.0.REPACK.dmg]] 2023-11-17<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: 595385beecb2a7ed301ad666dae890ba<br />
sha256: 66086dc0445f5df5bebf28720190471494db22afb856f505229c6cbc1e0cffed<br />
<br />
[[Media:OpenZFS_on_OS_X_2.2.0.dmg|OpenZFS_on_OS_X_2.2.0.dmg]] 2023-11-16<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: c9078fd1d9d6769b5e116b26a3395cd8<br />
sha256: 3b96f99078b52876bb936eccdda6c15a9f63cf873455230aa12c84cdcccce099<br />
(are the icons weirdly large? what happened to the background image?)<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3743 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-01|Changelog]]<br />
file size: 268435456<br />
md5: 6acb8b52c5f383e6ecb9cef0a34ee2cb<br />
sha256: b8b7f412b4665ce9fb81c22ceb134deca06741d604e386ba954fa2884501d273<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/ChangelogChangelog2023-12-19T00:51:19Z<p>Lundman: </p>
<hr />
<div>=== OpenZFS_on_OS_X_2.2.2 2023-12-05 ===<br />
<br />
* file corruption fix<br />
* raidz expansion support<br />
* file/block cloning fixes<br />
* don't install .in files<br />
* remove "patch" from Monterey arm64<br />
* don't use sprintf<br />
<br />
=== OpenZFS_on_OS_X_2.2.0 2023-11-16 ===<br />
<br />
* Block Cloning<br />
* Scrub Error Log<br />
* Corrective "zfs receive"<br />
* Fully adaptive ARC<br />
* Better arm64 (M1+) support<br />
<br />
=== OpenZFS_on_OS_X_2.1.6 2022-12-01 ===<br />
<br />
* NFS fixes<br />
* New tunables system, parity with upstream<br />
* Persistent L2ARC fixes<br />
* Update lz4<br />
* Update zstd<br />
* Cross platform xattr namespace<br />
* log xattrs to ZIL<br />
* Add blake3 checksum<br />
* sorted scrub optimizations<br />
* B-tree optimizations<br />
* per dataset zil stats<br />
* better M1/ARM64 support<br />
<br />
=== OpenZFS_on_OS_X_2.1.0 2021-08-21 ===<br />
<br />
* Add missing cmd zsysctl<br />
* Add missing cmd mount_zfs<br />
* Attempt to reduce scrub stack usage (panic with dsl_scan_visitbp)<br />
* taskq_cancel_id() fixes (panic vdev_deadman, spa_update)<br />
* purgevfs can deadlock<br />
* xattr re-implementation from Linux. Affects going from "on" to "sa" and back.<br />
* Handle zpool-in-zvol, would deadlock.<br />
* kextunload block/leak fix<br />
* Long filenames would panic<br />
* Many fixes with automount snapshots.<br />
* dirlink count to match upstream. (count dir, and dir+files)<br />
* Fix libcurl.4.dylib use for encryption file location<br />
* Fix linkid with lookup for Finder<br />
* send/recv fixes<br />
* autoimport fix<br />
* zfs_resume_fs fix (zfs recv -F)<br />
* zvol_replay panic fix<br />
* zvol rename could sometimes be left "busy"<br />
* split stacks - detect low stack space, and work around it<br />
* Sub-PAGESIZE abd work, performance<br />
* zvol IO can overflow the stack (M1)<br />
* encrypted zvol clones did not get /dev/diskX<br />
* zfs_replay could panic with NULL kcred<br />
* update undo of decmpfs<br />
<br />
=== OpenZFS_on_OS_X_2.0.1 2021-05-27 ===<br />
<br />
* new port<br />
* zfs send / zfs recv rewritten to use pipes.<br />
* mimic changes (use "com.apple.mimic=hfs" instead of "on/off".)<br />
* automatic mounting of snapshots<br />
* zstd compression<br />
* user/group object quotas<br />
* device_rebuild<br />
* draid vdev-type<br />
<br />
=== OpenZFS_on_OS_X_1.9.4 2020-02-29 ===<br />
<br />
* Reserved inode numbers avoided (Catalina, spotlight might need to reindex)<br />
* Dedup fixes<br />
* vnode_renamex feature (Catalina)<br />
* .zfs/snapshot work for Finder<br />
<br />
=== OpenZFS_on_OS_X_1.9.3 2019-10-30 ===<br />
<br />
* Catalina fixes (decmpfs corrections)<br />
* Disable use of volume icons<br />
* ZFS Boot fixes<br />
<br />
=== OpenZFS_on_OS_X_1.9.2 2019-08-01 ===<br />
<br />
* skip AVX512 vectorised functions (panic on modern CPUs)<br />
* include Mavericks.pkg<br />
* zfs rename could cause core dumps/abort<br />
<br />
-1.9.1-<br />
* zfs commands "lost error messages"<br />
* zfs raw recv fix<br />
* zfs spill block recv fix<br />
* ZoL vectorized raidz / assembler for fletcher/aes port<br />
* zfs send deadlock in bqueue<br />
<br />
Notarize can sometimes give installation error "kextcache code=71". Reason is unknown, but install<br />
completes successfully.<br />
<br />
Clicking "Allow" button to load the KEXT starting from version 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.9.0 2019-05-28 ===<br />
<br />
* zpool sync command, remove system sync, for performance.<br />
* Sequential scrub and resilvers<br />
* Multi-modifier protection (MMP)<br />
* Disable 'zfs remap' command<br />
* Pool allocation classes<br />
* Implement large_dnode pool feature<br />
* zfs initialize disk feature<br />
* Add UNMAP/TRIM functionality<br />
* zpool split fixes.<br />
* Random unmount failures fix<br />
* async zget<br />
* RAW send fixes<br />
* Memory leak fixes (acl, chmod, xattr)<br />
* Add -o/-x to send properties<br />
* Allow -o feature=disabled on zpool create<br />
* defer resilver<br />
* send lost spill blocks fix<br />
* async unlinked drain feature<br />
<br />
This release contains new pool features. If you run "zpool upgrade", you will not<br />
be able to go back to an older version of O3X.<br />
<br />
Notarize can sometimes give installation error "kextcache code=71". Reason is unknown, but install<br />
completes successfully.<br />
<br />
This will be the last official release for 10.8 and 10.9. <br />
<br />
Clicking "Allow" button to load the KEXT starting from version 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.8.2 2018-10-30 ===<br />
<br />
If you have 1.8.1 installed:<br />
Ok to Skip: OS X 10.12 (Sierra), OS X 10.13 (High Sierra), OS X 10.14 (Mojave).<br />
Please update: OS X 10.8 (Mountain Lion), OS X 10.9 (Mavericks), OS X 10.10 (Yosemite), OS X 10.11 (El Capitan).<br />
<br />
* Fix InvariantDisk core ''(OpenZFSOnOSX Team)''<br />
<br />
Due to compilation error, InvariantDisks for OS X 10.8 - 10.11 will<br />
continuously crash when started by launchctl. The 1.8.2 version<br />
is only to address this problem.<br />
<br />
The DMG is named 1.8.2 to make sure fresh downloads are used. Inside it is 1.8.1 recompiled.<br />
<br />
=== OpenZFS_on_OS_X_1.8.1 2018-10-18 ===<br />
<br />
* Fix Mojave boot, again ''(OpenZFSOnOSX Team)''<br />
* Feature: Channel Programs ''(OpenZFS Team)''<br />
<br />
Clicking "Allow" button to load the KEXT starting from version 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.8.0 2018-10-05 ===<br />
<br />
FORUM only release due to boot issues with Mojave.<br />
<br />
* Fix renaming of "/etc/zfs/zpool.cache.tmp" ''(OpenZFSOnOSX Team)''<br />
* Fix encryption panic ''(ZFSonLinux Team)''<br />
<br />
=== OpenZFS_on_OS_X_1.7.4 BETA 2018-09-13 ===<br />
<br />
* Mojave boot panic fix ''(OpenZFSOnOSX Team)''<br />
* Memory and mutex leaks ''(OpenZFS Team)''<br />
* dbuf slowdown fix ''(OpenZFSOnOSX Team)''<br />
* Fix encryption + cache bug ''(OpenZFSOnOSX Team)''<br />
* Raw receive fixes ''(ZFSonLinux Team)''<br />
* Device Removal feature ''(OpenZFS Team)''<br />
* Assembler sha/aes use ''(OpenZFSOnOSX Team)''<br />
* Storage Initialise feature ''(OpenZFS Team)''<br />
* Spaceman V2 feature ''(OpenZFS Team)''<br />
<br />
Clicking "Allow" button to load the KEXT starting at 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.3 BETA 2018-04-03 ===<br />
<br />
* Test: Creation of pseudo /dev/diskX for mounts ''(OpenZFSOnOSX Team)''<br />
* Add new property com.apple.devdisk to control pseudo disks, default is pool-only <br />
* High Sierra only release<br />
* Various raw-send fixes ''(ZFSOnLinux Team)''<br />
* spa_deadman support for hung IO ''(OpenZFSOnOSX Team)''<br />
<br />
* zfs crypto + cachedevice is known to cause panics. Please avoid using a cache device if you use zfs crypto for now.<br />
<br />
Clicking "Allow" button to load the KEXT on 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.2 2018-03-24 ===<br />
<br />
* 7614 zfs device evacuation/removal ''(OpenZFS Team)''<br />
* 9164 assert: newds == os->os_dsl_dataset ''(OpenZFS Team)''<br />
* Revert "Implement VNOP_ALLOCATE" ''(OpenZFSOnOSX Team)''<br />
* Must check return of vnode_getwithvid() ''(OpenZFSOnOSX Team)''<br />
* Clean up vdev_file to hold on to the files ''(OpenZFSOnOSX Team)''<br />
* Do not rely on ubc_upl_map leaving vaddr as NULL on failures ''(OpenZFSOnOSX Team)''<br />
* Additional bug fixes ''(OpenZFS Team)''<br />
<br />
* zfs crypto + cachedevice is known to cause panics. Please avoid using a cache device if you use zfs crypto for now.<br />
<br />
Clicking "Allow" button to load the KEXT on 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.1 2018-03-13 ===<br />
<br />
* crypto on disk fixes for --raw send ''(ZFSOnLinux Team)''<br />
* sharenfs bug fix ''(OpenZFSOnOSX Team)''<br />
* zdb core dump fix ''(OpenZFSOnOSX Team)''<br />
* NFS permission denied fix ''(OpenZFSOnOSX Team)''<br />
* Handle HFS decmpfs compression ''(OpenZFSOnOSX Team)''<br />
* Correct readonly media import ''(OpenZFSOnOSX Team)''<br />
* Fix online -e with by-id path ''(OpenZFSOnOSX Team)''<br />
* Additional bug fixes ''(OpenZFS Team)''<br />
<br />
* zfs crypto + cachedevice is known to cause panics. Please avoid using a cache device if you use zfs crypto for now.<br />
<br />
Clicking "Allow" button to load the KEXT on 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.0 2017-10-24 ===<br />
<br />
* ABD support ''(OpenZFS)''<br />
* File pool import bug fix ''(Jorgen Lundman)''<br />
* ABD move enhancement ''(Sean Doran)''<br />
* 7968 multi-threaded spa_sync ''(OpenZFS)''<br />
* Native Encryption ''(Tom Caputi)''<br />
* zpool scrub pause/resume ''(OpenZFS)''<br />
* zfs recv of compressed streams fix ''(OpenZFS)''<br />
* OS X High Sierra support ''(Jorgen Lundman)''<br />
<br />
and lots of small commits and bug fixes.<br />
<br />
=== OpenZFS_on_OS_X_1.6.1.dmg 2017-02-10 ===<br />
<br />
* Correct zpool events -f and similar polling tasks ''(Jorgen Lundman)''<br />
* Support 128G ram (and larger) systems ''(Jorgen Lundman)''<br />
* zfs send corrections ''(OpenZFS)''<br />
* dataset name length corrections ''(OpenZFS)''<br />
* zpool iostat enhancements ''(ZFSOnLinux)''<br />
* Compressed ARC ''(OpenZFS)''<br />
* SPL: Memory Allocator improvements ''(Sean Doran)''<br />
* 7252 compressed zfs send / receive 7628 create long versions of ZFS send / receive options ''(OpenZFS)''<br />
* ZVOL boot support (ZFS boot is not recommended at this time)<br />
* ZFS automatic sharing (NFS/SMB/AFP) feature ''(Jorgen Lundman)''<br />
* Enhance EFI partition library ''(Brendon Humphrey)''<br />
* Stop swapfiles being used for pools (!) ''(Brendon Humphrey)''<br />
* Sierra / xcode v8 compatibility work<br />
<br />
<br />
and lots of small bug fixes.<br />
<br />
=== OpenZFS_on_OS_X_1.5.2.dmg 2016-04-29 ===<br />
<br />
* New upstream checksums (with new feature flags): SHA-512, Edonr, Skein ''(OpenZFS)''<br />
* Resumable send and receive ''(OpenZFS)''<br />
* Finder notification thread to refresh sizes across datasets ''(Jorgen Lundman)''<br />
* SPL: enhanced kmem pressure system ''(rottegift)''<br />
* SPL: Rewrite TSD using AVL tree ''(Jorgen Lundman)''<br />
* Cache names in getattr ''(Jorgen Lundman)''<br />
* InvariantDisks serial fixes ''(cbreak)''<br />
* Show Hardlink LinkID fixes ''(Jorgen Lundman)''<br />
* Trivial ACLs not hidden ''(Jorgen Lundman)''<br />
* Group ACL fixes ''(Jorgen Lundman)''<br />
* IOkit deadlock on export fixes ''(Jorgen Lundman)''<br />
* MAF and deadlocks in ZVOL fixes ''(Jorgen Lundman)''<br />
* Show diskutil info on ZVOLs fix ''(Brendon Humphrey, ilovezfs)''<br />
* ZED notification fixes ''(Andreas Weinlein)''<br />
* Have automatic import always use by-id ''(Justin Scholz)''<br />
* Fix handling of XATTR_CREATE and XATTR_REPLACE ''(ilovezfs)''<br />
* Don't ignore VFS when it passes nosuid and nodev ''(ilovezfs)''<br />
* Don't use a shared lock for online expansion ''(ilovezfs)''<br />
<br />
=== OpenZFS_on_OS_X_1.4.5.dmg 2015-10-19 ===<br />
<br />
* Remove deadlock with zil_lwb_commit ''(Jorgen Lundman)''<br />
* Remove memory leak in znodes leading to beachball ''(Jorgen Lundman)''<br />
* Do not call ctldir unmount ''(Jorgen Lundman)''<br />
* xcode 7 compile fixes ''(ilovezfs)''<br />
* Adhere to SIP in installer on EC ''(ilovezfs)''<br />
<br />
=== OpenZFS_on_OS_X_1.4.2.dmg 2015-09-24 ===<br />
<br />
* correct kernel thread priorities ''(Jorgen Lundman)''<br />
* VFS nolocks rework from 10a286 ''(Jorgen Lundman)''<br />
* vnop_pageout_v2 replacement ''(Jorgen Lundman)''<br />
* Permanent Storage work, incomplete ''(Jorgen Lundman)''<br />
* mmapped file data written twice fix ''(Jorgen Lundman)''<br />
* InvariantDisks fixes ''(ilovezfs)'' ''(cbreak)''<br />
* SA corruption fixes ''(ZFSOnLinux)''<br />
* SA recover status alerts when detected ''(Jorgen Lundman)''<br />
* Modify-After-Free bugs and deadlock fixes ''(Jorgen Lundman)''<br />
* Complete Re-port of IllumOS taskq ''(Jorgen Lundman)''<br />
* Revert back to using taskq_dispatch_ent() ''(Jorgen Lundman)''<br />
* Show async unlinkeddrain ''(Jorgen Lundman)''<br />
* Remove internal unused flag XATTR ''(Brendon Humphrey)''<br />
* Additional ioctls from HFS ''(Brendon Humphrey)''<br />
* Merge with upstream ZOL<br />
<br />
=== OpenZFS_on_OS_X_1.3.2-RC1 2015-05-02 ===<br />
(Forum build)<br />
* Keep serial console debug messages ''(Jorgen Lundman)''<br />
* uiocopy failed to set direction ''(Jorgen Lundman)''<br />
* SMAP work for Broadwell chipset ''(Jorgen Lundman)''<br />
* Device removal panic fixes ''(Jorgen Lundman)''<br />
* LASTUNMOUNT property was incorrect ''(Jorgen Lundman)''<br />
* getxattr FinderInfo fixes ''(Jorgen Lundman)''<br />
<br />
=== OpenZFS_on_OS_X_1.3.1-r2.dmg 2015-04-08 ===<br />
<br />
* vnop_pagein to zero non-aligned trailing block causing clang to core ''(Jorgen Lundman)''<br />
* ADDEDTIME should updated when moved to a different directory ''(Jorgen Lundman)''<br />
* Remove vnode throttle ''(Jorgen Lundman)''<br />
* zfs create -p fix for non-root ''(ilovezfs)''<br />
<br />
=== OpenZFS_on_OS_X_1.3.1.dmg 2015-04-01 ===<br />
<br />
* readonly mounts failed to unmount ''(Jorgen Lundman)''<br />
* readonly import failed to create ZVOL devnodes ''(Jorgen Lundman)''<br />
* vnode_getwithvid panic race ''(Jorgen Lundman)''<br />
* sa_modify_attrs SA corruption ''(Tim Chase)''<br />
* zconfigd added for persistent config ''(Brendon Humphrey, ilovezfs)''<br />
* Fix missing FIFO named-pipes VNOPs ''(Jorgen Lundman)''<br />
* Fake HFS related IOCTLs for _kMDQueryScope filter in Spotlight ''(Jorgen Lundman)''<br />
* Add new 10.10 ATTR to vnop_getattr ''(Jorgen Lundman)''<br />
* FNDRINFO and ADDEDTIME support ''(Jorgen Lundman)''<br />
* InvariantDisks fixes ''(ilovezfs)''<br />
* Skip optical media on zpool import and add timeout ''(Jorgen Lundman)''<br />
* Initial secpolicy framework ''(ilovezfs)''<br />
* zpool status -L to resolve symlinks ''(ilovezfs)''<br />
* mmap pageout/pagein partial requests fix ''(Jorgen Lundman)''<br />
* kstat fixes and addition ''(Jorgen Lundman)''<br />
* Unmount/reboot delay fixed, direct reclaim ''(Jorgen Lundman)''<br />
* rollback/suspendfs would delay waiting for reclaim ''(Jorgen Lundman)''<br />
* 'com.apple.mimic_hfs' property added to identify as 'hfs' ''(Brendon Humphrey)''<br />
<br />
=== 1.3.1-RC5 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/367a1108b174ee81e4ed128741b23e797afb8f16 367a1108b174ee81e4ed128741b23e797afb8f16]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/63a9a59e7de2353a974da0fe65004f59a8bf5946 63a9a59e7de2353a974da0fe65004f59a8bf5946]<br />
<br />
* New daemon called "InvariantDisks" providing persistent paths to use with the zpool command: /var/run/disk/by-id, by-path, by-serial (cf. https://github.com/cbreak-black/InvariantDisks) ''(Gerhard Röthlin)''<br />
* Speed up ZVOL unmap by skipping unmaps that are fully unaligned and by only using zil_commit for unmap if sync=always ''(Evan Susarret and Jorgen Lundman)''<br />
* Fix lacking force-positive mount options ''(Jorgen Lundman)''<br />
* Simplified zed daemonization ''(ilovezfs)''<br />
* Bump Spotlight auto-enable until Sun, 01 Feb 2015 00:00:00 UTC ''(ilovezfs)''<br />
* Fix Finder tags modification bug by truncating xattr before overwriting. ''(Jorgen Lundman)''<br />
<br />
=== 1.3.1-RC4 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/367a1108b174ee81e4ed128741b23e797afb8f16 367a1108b174ee81e4ed128741b23e797afb8f16]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/96c4b5c8296e7482abfb6b2f018ef932b68248cf 96c4b5c8296e7482abfb6b2f018ef932b68248cf]<br />
<br />
* ZFS: Return correct VA_NAME in vnop_getattr for dataset mountpoints ''(Jorgen Lundman)''<br />
<br />
=== 1.3.1-RC3 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/367a1108b174ee81e4ed128741b23e797afb8f16 367a1108b174ee81e4ed128741b23e797afb8f16]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/73ead71a49e2530ecfef8017b3552b37e11c65e4 73ead71a49e2530ecfef8017b3552b37e11c65e4]<br />
<br />
* ZFS: ZEVO empty SA panic fix ''(Jorgen Lundman)''<br />
* Set B_NOCACHE to stop possibly double caching block data ''(Jorgen Lundman and Evan Susarret)''<br />
* arcstat.pl included<br />
<br />
=== 1.3.1-RC2 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/f4581407d18ea555fe5cd07e9e7912e96575ac5d f4581407d18ea555fe5cd07e9e7912e96575ac5d]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/8bf68a82822d492ec9aae0bc8e93d2917ec79937 8bf68a82822d492ec9aae0bc8e93d2917ec79937]<br />
<br />
* ZFS: Release XATTRs in vnop_remove quicker ''(Jorgen Lundman)''<br />
* ZFS: Early clearing of z_vnode cause NULL vp panic ''(Jorgen Lundman)''<br />
* ZFS: Fix deadlock in vnop_reclaim ''(Jorgen Lundman)''<br />
<br />
=== 1.3.1-RC1 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/8c89b46ca872572281ed62b506958a66a912f243 8c89b46ca872572281ed62b506958a66a912f243]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/91b0052b9167c5447ee8c29d90126af3b621acf7 91b0052b9167c5447ee8c29d90126af3b621acf7]<br />
<br />
* SPL: kstat support, including tunables. ''(Brendon Humphrey)''<br />
* SPL: change from mutex allocations to inline ''(Jorgen Lundman)''<br />
* SPL: port of IllumOS kmem ''(Brendon Humphrey)''<br />
* memory pressure sensor and memory reap support ''(Brendon Humphrey)''<br />
* Improve unmount/export code ''(Jorgen Lundman)''<br />
* Handle vnop_pageout() calls during vnode_create ''(Jorgen Lundman)''<br />
* Fix reply to getattrlist regarding case sensitivity to fix install of Adobe software ''(Jorgen Lundman)''<br />
* Fix vfs_vget() for Spotlight and SMB. Enable spotlight on mounts. ''(Jorgen Lundman)''<br />
* Fix zfs.util for whole disk checks ''(ilovezfs)''<br />
* Add working arcstat.pl ''(Brendon Humphrey)''<br />
* Work around for legacy mount points and unsupported versions. ''(ilovezfs)''<br />
* Fix bug for fragmentation when spacemap_histogram is disabled ''(ilovezfs)''<br />
* Open disks as root to fix scrub hang as user. ''(Jorgen Lundman)'' ''(ilovezfs)''<br />
* Fix zfs diff ''(Jorgen Lundman)''<br />
* SPL: condvar timeout, fix cache devices sometimes not being used ''(Jorgen Lundman)'' <br />
* reclaim restructuring. Enable delete fast path, and actual release of xattrs ''(Jorgen Lundman)''<br />
* enable userquota/groupquota accounting ''(Jorgen Lundman)''<br />
* Temporary fix for missing .Trashes folder ''(Jorgen Lundman)'' ''(ilovezfs)''<br />
* Automatically remove old .metadata_never_index before Dec 15th<br />
* Make unlinked_drain async, and optional user disable ''(Jorgen Lundman)''<br />
* Merge with ZOL upstream-20141120 ''(Jorgen Lundman)''<br />
* Attempt to detech and remove invalid entries on unlinked-drain list ''(Jorgen Lundman)''<br />
* Move mount default to /Volumes ''(ilovezfs)''<br />
<br />
Add pool features: async_destroy empty_bpobj lz4_compress spacemap_histogram enabled_txg hole_birth extensible_dataset embedded_data bookmarks <br />
<br />
Illumos 5138<br />
Illumos 4753<br />
Illumos 5116<br />
Illumos 5135<br />
Illumos 5139<br />
Illumos 5147<br />
Illumos 5161<br />
Illumos 5177<br />
Illumos 5174<br />
Illumos 5140<br />
Illumos 5117<br />
Illumos 5049<br />
IllumoS 4873<br />
Illumos 4970-4974<br />
Illumos 5034<br />
Illumos 4631<br />
Illumos 4976-4984<br />
Illumos 4914<br />
Illumos 4881<br />
Illumos 4897<br />
Illumos 4390<br />
Illumos 4757, 4913<br />
Illumos 3835<br />
Illumos 4754, 4755<br />
Illumos #4374<br />
Illumos 4368, 4369<br />
Illumos 4370, 4371<br />
Illumos 4171, 4172<br />
Illumos #4756<br />
Illumos #4730<br />
Illumos #4101, #4102, #4103, #4105, #4106<br />
<br />
=== OpenZFS_on_OS_X_1.3.0.dmg 2014-07-24 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/80e411aecac0716d779703ecc0f032232bdad91c 80e411aecac0716d779703ecc0f032232bdad91c]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/b223a573025bb5ef84e6e08b74c9f24b61eacc0b b223a573025bb5ef84e6e08b74c9f24b61eacc0b]<br />
<br />
* Print the spl version found instead of "v0.01" ''(ilovezfs)''<br />
* Only replace a pre-existing custom icon if it's the snowflake ''(ilovezfs)''<br />
* Run osascript as the logged-in user so the notifications actually show up ''(ilovezfs)''<br />
* Check for ZEVO either still installed or uninstalled but pre-reboot, and display error for the user ''(ilovezfs)''<br />
* Fix "Load the module manually by running ..." when kexts are in /Library/Extensions on OS X 10.9+ ''(ilovezfs)''<br />
* Fix mutex leaks, resulting in eventual panic in "mutex_enter()". ''(Jorgen Lundman)''<br />
* Fix spa_strdup freeing wrong size, causing kmem havok. ''(Jorgen Lundman)''<br />
* Enhance bmalloc to include free size, bounds and use after free; checks. ''(Brendon Humphrey)''<br />
* Fix zdb 'hang' waiting for reclaim_thread ''(Jorgen Lundman)''<br />
* Autoimport work and fixes ''(ilovezfs)''<br />
* sysctl normalization code from legacy port, default off ''(Jorgen Lundman)''<br />
* Fix hang at export due to spotlight references ''(ilovezfs)''<br />
* Reboot hang fix (wait for reclaim thread) ''(Jorgen Lundman)''<br />
* Reboot hang fix, take 2. (zed ignoring TERM) ''(Jorgen Lundman)''<br />
* Added spl_wait_interruptible functions ''(Jorgen Lundman)''<br />
* Merged ZOL-0.6.3 <br />
* ZVOL unmap support ''(Evan Susarret)''<br />
* Better disk icon support ''(ilovezfs)''<br />
* onexit fixes, clean zfs send holds ''(Jorgen Lundman)''<br />
* Replace MALLOC calls to use bmalloc for performance ''(Brendon Humphrey)''<br />
* OS X Yosemite 10.10 compile fixes ''(ilovezfs)''<br />
* zp reclaim vs zget remodel fix deadlocks ''(Jorgen Lundman)''<br />
* Support legacy mountpoints ''(ilovezfs)''<br />
* Initial non-root support ''(ilovezfs)''<br />
* Rewrite ioctl after upstream ''(Jorgen Lundman)''<br />
* Normalized lookup panic fix ''(Jorgen Lundman)''<br />
<br />
and, of course, all the fixes in ZFS on Linux 0.6.3. Thanks guys!<br />
<br />
== OpenZFS_on_OS_X_1.2.7.dmg 2014-05-15 ==<br />
<br />
* Merged with ZFSOnLinux pre-0.6.3 dated Apr 8 2014 ''(6ac770b1961b9468daf0c69eae6515c608535789)''<br />
* create_thread( 75%*num_cpus ) would create literal 75 threads, instead of the intended 3 threads on quad core machine ''(Jorgen Lundman)''<br />
* VMEM allocate changed to use bmalloc (slice, SLAB, allocator on top of k_m_a) ''(Brendon Humphrey)''<br />
* Add ZED (ZFS Event Daemon) to handle events (send alerts, emails) on pool issues. ''(Chris Dunlap)''<br />
* name cache fixes (existing files claimed as missing, missing files claimed as existing) ''(Jorgen Lundman)''<br />
* Change pool sync to remove 'idle' pool writes every 30s. ''(Jorgen Lundman)''<br />
* Work around ZFS recv deadlock ''(ilovezfs)''<br />
* vnop_pageout fixes for zerod blocks beyond EOF (POSIX) ''(Jorgen Lundman)''<br />
* Add autoimport, zed startup scripts ''(ilovezfs)''<br />
* ctldir (.zfs) fixes and cleanup ''(Jorgen Lundman)''<br />
* Finder hardlinks fixes ''(Jorgen Lundman)''<br />
* Reclaim fixes, throttle and waiting on vp changes ''(Jorgen Lundman)''<br />
* ZVOL upstream incompatibility fixes ''(Evan Susarret)'' '''*1'''<br />
* ZFS rollback and promote fixes ''(ilovezfs)''<br />
* Rework EFI label, and wholedisk detection, Core Storage ''(Jorgen Lundman, ilovezfs)''<br />
<br />
Which should result in greater stability, large performance enhancements, and finally capable of using more of the available memory.<br />
<br />
'''The Installer no longer contain 32bit versions.''' <br />
<br />
'''*1''' Note that 1.2.0's ZFS Volumes are unintentionally incompatible with other platform version of ZFS, except for volblocksize = 512.<br />
<br />
== 1.2.0.dmg 2014-03-13 ==<br />
<br />
* First release</div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2023-11-17T06:42:15Z<p>Lundman: /* 2.2.0 */</p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.2.0 ===<br />
<br />
Sorry about the REPACK thing, the Sonoma-x86_64.pkg build was incorrect.<br />
Perhaps it is time to retire DMG releases...<br />
[[Media:OpenZFS_on_OS_X_2.2.0.REPACK.dmg|OpenZFS_on_OS_X_2.2.0.REPACK.dmg]] 2023-11-17<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: 595385beecb2a7ed301ad666dae890ba<br />
sha256: 66086dc0445f5df5bebf28720190471494db22afb856f505229c6cbc1e0cffed<br />
<br />
[[Media:OpenZFS_on_OS_X_2.2.0.dmg|OpenZFS_on_OS_X_2.2.0.dmg]] 2023-11-16<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: c9078fd1d9d6769b5e116b26a3395cd8<br />
sha256: 3b96f99078b52876bb936eccdda6c15a9f63cf873455230aa12c84cdcccce099<br />
(are the icons weirdly large? what happened to the background image?)<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3743 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-01|Changelog]]<br />
file size: 268435456<br />
md5: 6acb8b52c5f383e6ecb9cef0a34ee2cb<br />
sha256: b8b7f412b4665ce9fb81c22ceb134deca06741d604e386ba954fa2884501d273<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2023-11-17T06:41:35Z<p>Lundman: /* 2.2.0 */</p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.2.0 ===<br />
<br />
Sorry about the REPACK thing, the Sonoma-x86_64.pkg build was incorrect.<br />
[[Media:OpenZFS_on_OS_X_2.2.0.REPACK.dmg|OpenZFS_on_OS_X_2.2.0.REPACK.dmg]] 2023-11-17<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: 595385beecb2a7ed301ad666dae890ba<br />
sha256: 66086dc0445f5df5bebf28720190471494db22afb856f505229c6cbc1e0cffed<br />
<br />
[[Media:OpenZFS_on_OS_X_2.2.0.dmg|OpenZFS_on_OS_X_2.2.0.dmg]] 2023-11-16<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: c9078fd1d9d6769b5e116b26a3395cd8<br />
sha256: 3b96f99078b52876bb936eccdda6c15a9f63cf873455230aa12c84cdcccce099<br />
(are the icons weirdly large? what happened to the background image?)<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3743 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-01|Changelog]]<br />
file size: 268435456<br />
md5: 6acb8b52c5f383e6ecb9cef0a34ee2cb<br />
sha256: b8b7f412b4665ce9fb81c22ceb134deca06741d604e386ba954fa2884501d273<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/File:OpenZFS_on_OS_X_2.2.0.REPACK.dmgFile:OpenZFS on OS X 2.2.0.REPACK.dmg2023-11-17T06:38:52Z<p>Lundman: </p>
<hr />
<div></div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2023-11-17T06:33:00Z<p>Lundman: /* 2.2.0 */</p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.2.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.2.0.REPACK.dmg|OpenZFS_on_OS_X_2.2.0.REPACK.dmg]] 2023-11-17<br />
[[Media:OpenZFS_on_OS_X_2.2.0.dmg|OpenZFS_on_OS_X_2.2.0.dmg]] 2023-11-16<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: c9078fd1d9d6769b5e116b26a3395cd8<br />
sha256: 3b96f99078b52876bb936eccdda6c15a9f63cf873455230aa12c84cdcccce099<br />
(are the icons weirdly large? what happened to the background image?)<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3743 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-01|Changelog]]<br />
file size: 268435456<br />
md5: 6acb8b52c5f383e6ecb9cef0a34ee2cb<br />
sha256: b8b7f412b4665ce9fb81c22ceb134deca06741d604e386ba954fa2884501d273<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/File:OpenZFS_on_OS_X_2.2.0.dmgFile:OpenZFS on OS X 2.2.0.dmg2023-11-16T04:52:39Z<p>Lundman: </p>
<hr />
<div></div>Lundmanhttps://openzfsonosx.org/wiki/ChangelogChangelog2023-11-16T04:43:44Z<p>Lundman: </p>
<hr />
<div>=== OpenZFS_on_OS_X_2.2.0 2023-11-16 ===<br />
<br />
* Block Cloning<br />
* Scrub Error Log<br />
* Corrective "zfs receive"<br />
* Fully adaptive ARC<br />
* Better arm64 (M1+) support<br />
<br />
=== OpenZFS_on_OS_X_2.1.6 2022-12-01 ===<br />
<br />
* NFS fixes<br />
* New tunables system, parity with upstream<br />
* Persistent L2ARC fixes<br />
* Update lz4<br />
* Update zstd<br />
* Cross platform xattr namespace<br />
* log xattrs to ZIL<br />
* Add blake3 checksum<br />
* sorted scrub optimizations<br />
* B-tree optimizations<br />
* per dataset zil stats<br />
* better M1/ARM64 support<br />
<br />
=== OpenZFS_on_OS_X_2.1.0 2021-08-21 ===<br />
<br />
* Add missing cmd zsysctl<br />
* Add missing cmd mount_zfs<br />
* Attempt to reduce scrub stack usage (panic with dsl_scan_visitbp)<br />
* taskq_cancel_id() fixes (panic vdev_deadman, spa_update)<br />
* purgevfs can deadlock<br />
* xattr re-implementation from Linux. Affects going from "on" to "sa" and back.<br />
* Handle zpool-in-zvol, would deadlock.<br />
* kextunload block/leak fix<br />
* Long filenames would panic<br />
* Many fixes with automount snapshots.<br />
* dirlink count to match upstream. (count dir, and dir+files)<br />
* Fix libcurl.4.dylib use for encryption file location<br />
* Fix linkid with lookup for Finder<br />
* send/recv fixes<br />
* autoimport fix<br />
* zfs_resume_fs fix (zfs recv -F)<br />
* zvol_replay panic fix<br />
* zvol rename could sometimes be left "busy"<br />
* split stacks - detect low stack space, and work around it<br />
* Sub-PAGESIZE abd work, performance<br />
* zvol IO can overflow the stack (M1)<br />
* encrypted zvol clones did not get /dev/diskX<br />
* zfs_replay could panic with NULL kcred<br />
* update undo of decmpfs<br />
<br />
=== OpenZFS_on_OS_X_2.0.1 2021-05-27 ===<br />
<br />
* new port<br />
* zfs send / zfs recv rewritten to use pipes.<br />
* mimic changes (use "com.apple.mimic=hfs" instead of "on/off".)<br />
* automatic mounting of snapshots<br />
* zstd compression<br />
* user/group object quotas<br />
* device_rebuild<br />
* draid vdev-type<br />
<br />
=== OpenZFS_on_OS_X_1.9.4 2020-02-29 ===<br />
<br />
* Reserved inode numbers avoided (Catalina, spotlight might need to reindex)<br />
* Dedup fixes<br />
* vnode_renamex feature (Catalina)<br />
* .zfs/snapshot work for Finder<br />
<br />
=== OpenZFS_on_OS_X_1.9.3 2019-10-30 ===<br />
<br />
* Catalina fixes (decmpfs corrections)<br />
* Disable use of volume icons<br />
* ZFS Boot fixes<br />
<br />
=== OpenZFS_on_OS_X_1.9.2 2019-08-01 ===<br />
<br />
* skip AVX512 vectorised functions (panic on modern CPUs)<br />
* include Mavericks.pkg<br />
* zfs rename could cause core dumps/abort<br />
<br />
-1.9.1-<br />
* zfs commands "lost error messages"<br />
* zfs raw recv fix<br />
* zfs spill block recv fix<br />
* ZoL vectorized raidz / assembler for fletcher/aes port<br />
* zfs send deadlock in bqueue<br />
<br />
Notarize can sometimes give installation error "kextcache code=71". Reason is unknown, but install<br />
completes successfully.<br />
<br />
Clicking "Allow" button to load the KEXT starting from version 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.9.0 2019-05-28 ===<br />
<br />
* zpool sync command, remove system sync, for performance.<br />
* Sequential scrub and resilvers<br />
* Multi-modifier protection (MMP)<br />
* Disable 'zfs remap' command<br />
* Pool allocation classes<br />
* Implement large_dnode pool feature<br />
* zfs initialize disk feature<br />
* Add UNMAP/TRIM functionality<br />
* zpool split fixes.<br />
* Random unmount failures fix<br />
* async zget<br />
* RAW send fixes<br />
* Memory leak fixes (acl, chmod, xattr)<br />
* Add -o/-x to send properties<br />
* Allow -o feature=disabled on zpool create<br />
* defer resilver<br />
* send lost spill blocks fix<br />
* async unlinked drain feature<br />
<br />
This release contains new pool features. If you run "zpool upgrade", you will not<br />
be able to go back to an older version of O3X.<br />
<br />
Notarize can sometimes give installation error "kextcache code=71". Reason is unknown, but install<br />
completes successfully.<br />
<br />
This will be the last official release for 10.8 and 10.9. <br />
<br />
Clicking "Allow" button to load the KEXT starting from version 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.8.2 2018-10-30 ===<br />
<br />
If you have 1.8.1 installed:<br />
Ok to Skip: OS X 10.12 (Sierra), OS X 10.13 (High Sierra), OS X 10.14 (Mojave).<br />
Please update: OS X 10.8 (Mountain Lion), OS X 10.9 (Mavericks), OS X 10.10 (Yosemite), OS X 10.11 (El Capitan).<br />
<br />
* Fix InvariantDisk core ''(OpenZFSOnOSX Team)''<br />
<br />
Due to compilation error, InvariantDisks for OS X 10.8 - 10.11 will<br />
continuously crash when started by launchctl. The 1.8.2 version<br />
is only to address this problem.<br />
<br />
The DMG is named 1.8.2 to make sure fresh downloads are used. Inside it is 1.8.1 recompiled.<br />
<br />
=== OpenZFS_on_OS_X_1.8.1 2018-10-18 ===<br />
<br />
* Fix Mojave boot, again ''(OpenZFSOnOSX Team)''<br />
* Feature: Channel Programs ''(OpenZFS Team)''<br />
<br />
Clicking "Allow" button to load the KEXT starting from version 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.8.0 2018-10-05 ===<br />
<br />
FORUM only release due to boot issues with Mojave.<br />
<br />
* Fix renaming of "/etc/zfs/zpool.cache.tmp" ''(OpenZFSOnOSX Team)''<br />
* Fix encryption panic ''(ZFSonLinux Team)''<br />
<br />
=== OpenZFS_on_OS_X_1.7.4 BETA 2018-09-13 ===<br />
<br />
* Mojave boot panic fix ''(OpenZFSOnOSX Team)''<br />
* Memory and mutex leaks ''(OpenZFS Team)''<br />
* dbuf slowdown fix ''(OpenZFSOnOSX Team)''<br />
* Fix encryption + cache bug ''(OpenZFSOnOSX Team)''<br />
* Raw receive fixes ''(ZFSonLinux Team)''<br />
* Device Removal feature ''(OpenZFS Team)''<br />
* Assembler sha/aes use ''(OpenZFSOnOSX Team)''<br />
* Storage Initialise feature ''(OpenZFS Team)''<br />
* Spaceman V2 feature ''(OpenZFS Team)''<br />
<br />
Clicking "Allow" button to load the KEXT starting at 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.3 BETA 2018-04-03 ===<br />
<br />
* Test: Creation of pseudo /dev/diskX for mounts ''(OpenZFSOnOSX Team)''<br />
* Add new property com.apple.devdisk to control pseudo disks, default is pool-only <br />
* High Sierra only release<br />
* Various raw-send fixes ''(ZFSOnLinux Team)''<br />
* spa_deadman support for hung IO ''(OpenZFSOnOSX Team)''<br />
<br />
* zfs crypto + cachedevice is known to cause panics. Please avoid using a cache device if you use zfs crypto for now.<br />
<br />
Clicking "Allow" button to load the KEXT on 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.2 2018-03-24 ===<br />
<br />
* 7614 zfs device evacuation/removal ''(OpenZFS Team)''<br />
* 9164 assert: newds == os->os_dsl_dataset ''(OpenZFS Team)''<br />
* Revert "Implement VNOP_ALLOCATE" ''(OpenZFSOnOSX Team)''<br />
* Must check return of vnode_getwithvid() ''(OpenZFSOnOSX Team)''<br />
* Clean up vdev_file to hold on to the files ''(OpenZFSOnOSX Team)''<br />
* Do not rely on ubc_upl_map leaving vaddr as NULL on failures ''(OpenZFSOnOSX Team)''<br />
* Additional bug fixes ''(OpenZFS Team)''<br />
<br />
* zfs crypto + cachedevice is known to cause panics. Please avoid using a cache device if you use zfs crypto for now.<br />
<br />
Clicking "Allow" button to load the KEXT on 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.1 2018-03-13 ===<br />
<br />
* crypto on disk fixes for --raw send ''(ZFSOnLinux Team)''<br />
* sharenfs bug fix ''(OpenZFSOnOSX Team)''<br />
* zdb core dump fix ''(OpenZFSOnOSX Team)''<br />
* NFS permission denied fix ''(OpenZFSOnOSX Team)''<br />
* Handle HFS decmpfs compression ''(OpenZFSOnOSX Team)''<br />
* Correct readonly media import ''(OpenZFSOnOSX Team)''<br />
* Fix online -e with by-id path ''(OpenZFSOnOSX Team)''<br />
* Additional bug fixes ''(OpenZFS Team)''<br />
<br />
* zfs crypto + cachedevice is known to cause panics. Please avoid using a cache device if you use zfs crypto for now.<br />
<br />
Clicking "Allow" button to load the KEXT on 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.0 2017-10-24 ===<br />
<br />
* ABD support ''(OpenZFS)''<br />
* File pool import bug fix ''(Jorgen Lundman)''<br />
* ABD move enhancement ''(Sean Doran)''<br />
* 7968 multi-threaded spa_sync ''(OpenZFS)''<br />
* Native Encryption ''(Tom Caputi)''<br />
* zpool scrub pause/resume ''(OpenZFS)''<br />
* zfs recv of compressed streams fix ''(OpenZFS)''<br />
* OS X High Sierra support ''(Jorgen Lundman)''<br />
<br />
and lots of small commits and bug fixes.<br />
<br />
=== OpenZFS_on_OS_X_1.6.1.dmg 2017-02-10 ===<br />
<br />
* Correct zpool events -f and similar polling tasks ''(Jorgen Lundman)''<br />
* Support 128G ram (and larger) systems ''(Jorgen Lundman)''<br />
* zfs send corrections ''(OpenZFS)''<br />
* dataset name length corrections ''(OpenZFS)''<br />
* zpool iostat enhancements ''(ZFSOnLinux)''<br />
* Compressed ARC ''(OpenZFS)''<br />
* SPL: Memory Allocator improvements ''(Sean Doran)''<br />
* 7252 compressed zfs send / receive 7628 create long versions of ZFS send / receive options ''(OpenZFS)''<br />
* ZVOL boot support (ZFS boot is not recommended at this time)<br />
* ZFS automatic sharing (NFS/SMB/AFP) feature ''(Jorgen Lundman)''<br />
* Enhance EFI partition library ''(Brendon Humphrey)''<br />
* Stop swapfiles being used for pools (!) ''(Brendon Humphrey)''<br />
* Sierra / xcode v8 compatibility work<br />
<br />
<br />
and lots of small bug fixes.<br />
<br />
=== OpenZFS_on_OS_X_1.5.2.dmg 2016-04-29 ===<br />
<br />
* New upstream checksums (with new feature flags): SHA-512, Edonr, Skein ''(OpenZFS)''<br />
* Resumable send and receive ''(OpenZFS)''<br />
* Finder notification thread to refresh sizes across datasets ''(Jorgen Lundman)''<br />
* SPL: enhanced kmem pressure system ''(rottegift)''<br />
* SPL: Rewrite TSD using AVL tree ''(Jorgen Lundman)''<br />
* Cache names in getattr ''(Jorgen Lundman)''<br />
* InvariantDisks serial fixes ''(cbreak)''<br />
* Show Hardlink LinkID fixes ''(Jorgen Lundman)''<br />
* Trivial ACLs not hidden ''(Jorgen Lundman)''<br />
* Group ACL fixes ''(Jorgen Lundman)''<br />
* IOkit deadlock on export fixes ''(Jorgen Lundman)''<br />
* MAF and deadlocks in ZVOL fixes ''(Jorgen Lundman)''<br />
* Show diskutil info on ZVOLs fix ''(Brendon Humphrey, ilovezfs)''<br />
* ZED notification fixes ''(Andreas Weinlein)''<br />
* Have automatic import always use by-id ''(Justin Scholz)''<br />
* Fix handling of XATTR_CREATE and XATTR_REPLACE ''(ilovezfs)''<br />
* Don't ignore VFS when it passes nosuid and nodev ''(ilovezfs)''<br />
* Don't use a shared lock for online expansion ''(ilovezfs)''<br />
<br />
=== OpenZFS_on_OS_X_1.4.5.dmg 2015-10-19 ===<br />
<br />
* Remove deadlock with zil_lwb_commit ''(Jorgen Lundman)''<br />
* Remove memory leak in znodes leading to beachball ''(Jorgen Lundman)''<br />
* Do not call ctldir unmount ''(Jorgen Lundman)''<br />
* xcode 7 compile fixes ''(ilovezfs)''<br />
* Adhere to SIP in installer on EC ''(ilovezfs)''<br />
<br />
=== OpenZFS_on_OS_X_1.4.2.dmg 2015-09-24 ===<br />
<br />
* correct kernel thread priorities ''(Jorgen Lundman)''<br />
* VFS nolocks rework from 10a286 ''(Jorgen Lundman)''<br />
* vnop_pageout_v2 replacement ''(Jorgen Lundman)''<br />
* Permanent Storage work, incomplete ''(Jorgen Lundman)''<br />
* mmapped file data written twice fix ''(Jorgen Lundman)''<br />
* InvariantDisks fixes ''(ilovezfs)'' ''(cbreak)''<br />
* SA corruption fixes ''(ZFSOnLinux)''<br />
* SA recover status alerts when detected ''(Jorgen Lundman)''<br />
* Modify-After-Free bugs and deadlock fixes ''(Jorgen Lundman)''<br />
* Complete Re-port of IllumOS taskq ''(Jorgen Lundman)''<br />
* Revert back to using taskq_dispatch_ent() ''(Jorgen Lundman)''<br />
* Show async unlinkeddrain ''(Jorgen Lundman)''<br />
* Remove internal unused flag XATTR ''(Brendon Humphrey)''<br />
* Additional ioctls from HFS ''(Brendon Humphrey)''<br />
* Merge with upstream ZOL<br />
<br />
=== OpenZFS_on_OS_X_1.3.2-RC1 2015-05-02 ===<br />
(Forum build)<br />
* Keep serial console debug messages ''(Jorgen Lundman)''<br />
* uiocopy failed to set direction ''(Jorgen Lundman)''<br />
* SMAP work for Broadwell chipset ''(Jorgen Lundman)''<br />
* Device removal panic fixes ''(Jorgen Lundman)''<br />
* LASTUNMOUNT property was incorrect ''(Jorgen Lundman)''<br />
* getxattr FinderInfo fixes ''(Jorgen Lundman)''<br />
<br />
=== OpenZFS_on_OS_X_1.3.1-r2.dmg 2015-04-08 ===<br />
<br />
* vnop_pagein to zero non-aligned trailing block causing clang to core ''(Jorgen Lundman)''<br />
* ADDEDTIME should updated when moved to a different directory ''(Jorgen Lundman)''<br />
* Remove vnode throttle ''(Jorgen Lundman)''<br />
* zfs create -p fix for non-root ''(ilovezfs)''<br />
<br />
=== OpenZFS_on_OS_X_1.3.1.dmg 2015-04-01 ===<br />
<br />
* readonly mounts failed to unmount ''(Jorgen Lundman)''<br />
* readonly import failed to create ZVOL devnodes ''(Jorgen Lundman)''<br />
* vnode_getwithvid panic race ''(Jorgen Lundman)''<br />
* sa_modify_attrs SA corruption ''(Tim Chase)''<br />
* zconfigd added for persistent config ''(Brendon Humphrey, ilovezfs)''<br />
* Fix missing FIFO named-pipes VNOPs ''(Jorgen Lundman)''<br />
* Fake HFS related IOCTLs for _kMDQueryScope filter in Spotlight ''(Jorgen Lundman)''<br />
* Add new 10.10 ATTR to vnop_getattr ''(Jorgen Lundman)''<br />
* FNDRINFO and ADDEDTIME support ''(Jorgen Lundman)''<br />
* InvariantDisks fixes ''(ilovezfs)''<br />
* Skip optical media on zpool import and add timeout ''(Jorgen Lundman)''<br />
* Initial secpolicy framework ''(ilovezfs)''<br />
* zpool status -L to resolve symlinks ''(ilovezfs)''<br />
* mmap pageout/pagein partial requests fix ''(Jorgen Lundman)''<br />
* kstat fixes and addition ''(Jorgen Lundman)''<br />
* Unmount/reboot delay fixed, direct reclaim ''(Jorgen Lundman)''<br />
* rollback/suspendfs would delay waiting for reclaim ''(Jorgen Lundman)''<br />
* 'com.apple.mimic_hfs' property added to identify as 'hfs' ''(Brendon Humphrey)''<br />
<br />
=== 1.3.1-RC5 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/367a1108b174ee81e4ed128741b23e797afb8f16 367a1108b174ee81e4ed128741b23e797afb8f16]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/63a9a59e7de2353a974da0fe65004f59a8bf5946 63a9a59e7de2353a974da0fe65004f59a8bf5946]<br />
<br />
* New daemon called "InvariantDisks" providing persistent paths to use with the zpool command: /var/run/disk/by-id, by-path, by-serial (cf. https://github.com/cbreak-black/InvariantDisks) ''(Gerhard Röthlin)''<br />
* Speed up ZVOL unmap by skipping unmaps that are fully unaligned and by only using zil_commit for unmap if sync=always ''(Evan Susarret and Jorgen Lundman)''<br />
* Fix lacking force-positive mount options ''(Jorgen Lundman)''<br />
* Simplified zed daemonization ''(ilovezfs)''<br />
* Bump Spotlight auto-enable until Sun, 01 Feb 2015 00:00:00 UTC ''(ilovezfs)''<br />
* Fix Finder tags modification bug by truncating xattr before overwriting. ''(Jorgen Lundman)''<br />
<br />
=== 1.3.1-RC4 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/367a1108b174ee81e4ed128741b23e797afb8f16 367a1108b174ee81e4ed128741b23e797afb8f16]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/96c4b5c8296e7482abfb6b2f018ef932b68248cf 96c4b5c8296e7482abfb6b2f018ef932b68248cf]<br />
<br />
* ZFS: Return correct VA_NAME in vnop_getattr for dataset mountpoints ''(Jorgen Lundman)''<br />
<br />
=== 1.3.1-RC3 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/367a1108b174ee81e4ed128741b23e797afb8f16 367a1108b174ee81e4ed128741b23e797afb8f16]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/73ead71a49e2530ecfef8017b3552b37e11c65e4 73ead71a49e2530ecfef8017b3552b37e11c65e4]<br />
<br />
* ZFS: ZEVO empty SA panic fix ''(Jorgen Lundman)''<br />
* Set B_NOCACHE to stop possibly double caching block data ''(Jorgen Lundman and Evan Susarret)''<br />
* arcstat.pl included<br />
<br />
=== 1.3.1-RC2 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/f4581407d18ea555fe5cd07e9e7912e96575ac5d f4581407d18ea555fe5cd07e9e7912e96575ac5d]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/8bf68a82822d492ec9aae0bc8e93d2917ec79937 8bf68a82822d492ec9aae0bc8e93d2917ec79937]<br />
<br />
* ZFS: Release XATTRs in vnop_remove quicker ''(Jorgen Lundman)''<br />
* ZFS: Early clearing of z_vnode cause NULL vp panic ''(Jorgen Lundman)''<br />
* ZFS: Fix deadlock in vnop_reclaim ''(Jorgen Lundman)''<br />
<br />
=== 1.3.1-RC1 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/8c89b46ca872572281ed62b506958a66a912f243 8c89b46ca872572281ed62b506958a66a912f243]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/91b0052b9167c5447ee8c29d90126af3b621acf7 91b0052b9167c5447ee8c29d90126af3b621acf7]<br />
<br />
* SPL: kstat support, including tunables. ''(Brendon Humphrey)''<br />
* SPL: change from mutex allocations to inline ''(Jorgen Lundman)''<br />
* SPL: port of IllumOS kmem ''(Brendon Humphrey)''<br />
* memory pressure sensor and memory reap support ''(Brendon Humphrey)''<br />
* Improve unmount/export code ''(Jorgen Lundman)''<br />
* Handle vnop_pageout() calls during vnode_create ''(Jorgen Lundman)''<br />
* Fix reply to getattrlist regarding case sensitivity to fix install of Adobe software ''(Jorgen Lundman)''<br />
* Fix vfs_vget() for Spotlight and SMB. Enable spotlight on mounts. ''(Jorgen Lundman)''<br />
* Fix zfs.util for whole disk checks ''(ilovezfs)''<br />
* Add working arcstat.pl ''(Brendon Humphrey)''<br />
* Work around for legacy mount points and unsupported versions. ''(ilovezfs)''<br />
* Fix bug for fragmentation when spacemap_histogram is disabled ''(ilovezfs)''<br />
* Open disks as root to fix scrub hang as user. ''(Jorgen Lundman)'' ''(ilovezfs)''<br />
* Fix zfs diff ''(Jorgen Lundman)''<br />
* SPL: condvar timeout, fix cache devices sometimes not being used ''(Jorgen Lundman)'' <br />
* reclaim restructuring. Enable delete fast path, and actual release of xattrs ''(Jorgen Lundman)''<br />
* enable userquota/groupquota accounting ''(Jorgen Lundman)''<br />
* Temporary fix for missing .Trashes folder ''(Jorgen Lundman)'' ''(ilovezfs)''<br />
* Automatically remove old .metadata_never_index before Dec 15th<br />
* Make unlinked_drain async, and optional user disable ''(Jorgen Lundman)''<br />
* Merge with ZOL upstream-20141120 ''(Jorgen Lundman)''<br />
* Attempt to detech and remove invalid entries on unlinked-drain list ''(Jorgen Lundman)''<br />
* Move mount default to /Volumes ''(ilovezfs)''<br />
<br />
Add pool features: async_destroy empty_bpobj lz4_compress spacemap_histogram enabled_txg hole_birth extensible_dataset embedded_data bookmarks <br />
<br />
Illumos 5138<br />
Illumos 4753<br />
Illumos 5116<br />
Illumos 5135<br />
Illumos 5139<br />
Illumos 5147<br />
Illumos 5161<br />
Illumos 5177<br />
Illumos 5174<br />
Illumos 5140<br />
Illumos 5117<br />
Illumos 5049<br />
IllumoS 4873<br />
Illumos 4970-4974<br />
Illumos 5034<br />
Illumos 4631<br />
Illumos 4976-4984<br />
Illumos 4914<br />
Illumos 4881<br />
Illumos 4897<br />
Illumos 4390<br />
Illumos 4757, 4913<br />
Illumos 3835<br />
Illumos 4754, 4755<br />
Illumos #4374<br />
Illumos 4368, 4369<br />
Illumos 4370, 4371<br />
Illumos 4171, 4172<br />
Illumos #4756<br />
Illumos #4730<br />
Illumos #4101, #4102, #4103, #4105, #4106<br />
<br />
=== OpenZFS_on_OS_X_1.3.0.dmg 2014-07-24 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/80e411aecac0716d779703ecc0f032232bdad91c 80e411aecac0716d779703ecc0f032232bdad91c]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/b223a573025bb5ef84e6e08b74c9f24b61eacc0b b223a573025bb5ef84e6e08b74c9f24b61eacc0b]<br />
<br />
* Print the spl version found instead of "v0.01" ''(ilovezfs)''<br />
* Only replace a pre-existing custom icon if it's the snowflake ''(ilovezfs)''<br />
* Run osascript as the logged-in user so the notifications actually show up ''(ilovezfs)''<br />
* Check for ZEVO either still installed or uninstalled but pre-reboot, and display error for the user ''(ilovezfs)''<br />
* Fix "Load the module manually by running ..." when kexts are in /Library/Extensions on OS X 10.9+ ''(ilovezfs)''<br />
* Fix mutex leaks, resulting in eventual panic in "mutex_enter()". ''(Jorgen Lundman)''<br />
* Fix spa_strdup freeing wrong size, causing kmem havok. ''(Jorgen Lundman)''<br />
* Enhance bmalloc to include free size, bounds and use after free; checks. ''(Brendon Humphrey)''<br />
* Fix zdb 'hang' waiting for reclaim_thread ''(Jorgen Lundman)''<br />
* Autoimport work and fixes ''(ilovezfs)''<br />
* sysctl normalization code from legacy port, default off ''(Jorgen Lundman)''<br />
* Fix hang at export due to spotlight references ''(ilovezfs)''<br />
* Reboot hang fix (wait for reclaim thread) ''(Jorgen Lundman)''<br />
* Reboot hang fix, take 2. (zed ignoring TERM) ''(Jorgen Lundman)''<br />
* Added spl_wait_interruptible functions ''(Jorgen Lundman)''<br />
* Merged ZOL-0.6.3 <br />
* ZVOL unmap support ''(Evan Susarret)''<br />
* Better disk icon support ''(ilovezfs)''<br />
* onexit fixes, clean zfs send holds ''(Jorgen Lundman)''<br />
* Replace MALLOC calls to use bmalloc for performance ''(Brendon Humphrey)''<br />
* OS X Yosemite 10.10 compile fixes ''(ilovezfs)''<br />
* zp reclaim vs zget remodel fix deadlocks ''(Jorgen Lundman)''<br />
* Support legacy mountpoints ''(ilovezfs)''<br />
* Initial non-root support ''(ilovezfs)''<br />
* Rewrite ioctl after upstream ''(Jorgen Lundman)''<br />
* Normalized lookup panic fix ''(Jorgen Lundman)''<br />
<br />
and, of course, all the fixes in ZFS on Linux 0.6.3. Thanks guys!<br />
<br />
== OpenZFS_on_OS_X_1.2.7.dmg 2014-05-15 ==<br />
<br />
* Merged with ZFSOnLinux pre-0.6.3 dated Apr 8 2014 ''(6ac770b1961b9468daf0c69eae6515c608535789)''<br />
* create_thread( 75%*num_cpus ) would create literal 75 threads, instead of the intended 3 threads on quad core machine ''(Jorgen Lundman)''<br />
* VMEM allocate changed to use bmalloc (slice, SLAB, allocator on top of k_m_a) ''(Brendon Humphrey)''<br />
* Add ZED (ZFS Event Daemon) to handle events (send alerts, emails) on pool issues. ''(Chris Dunlap)''<br />
* name cache fixes (existing files claimed as missing, missing files claimed as existing) ''(Jorgen Lundman)''<br />
* Change pool sync to remove 'idle' pool writes every 30s. ''(Jorgen Lundman)''<br />
* Work around ZFS recv deadlock ''(ilovezfs)''<br />
* vnop_pageout fixes for zerod blocks beyond EOF (POSIX) ''(Jorgen Lundman)''<br />
* Add autoimport, zed startup scripts ''(ilovezfs)''<br />
* ctldir (.zfs) fixes and cleanup ''(Jorgen Lundman)''<br />
* Finder hardlinks fixes ''(Jorgen Lundman)''<br />
* Reclaim fixes, throttle and waiting on vp changes ''(Jorgen Lundman)''<br />
* ZVOL upstream incompatibility fixes ''(Evan Susarret)'' '''*1'''<br />
* ZFS rollback and promote fixes ''(ilovezfs)''<br />
* Rework EFI label, and wholedisk detection, Core Storage ''(Jorgen Lundman, ilovezfs)''<br />
<br />
Which should result in greater stability, large performance enhancements, and finally capable of using more of the available memory.<br />
<br />
'''The Installer no longer contain 32bit versions.''' <br />
<br />
'''*1''' Note that 1.2.0's ZFS Volumes are unintentionally incompatible with other platform version of ZFS, except for volblocksize = 512.<br />
<br />
== 1.2.0.dmg 2014-03-13 ==<br />
<br />
* First release</div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2023-11-16T04:41:47Z<p>Lundman: </p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.2.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.2.0.dmg|OpenZFS_on_OS_X_2.2.0.dmg]] 2023-11-16<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3848 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.2.0_2023-11-16|Changelog]]<br />
file size: 268435456<br />
md5: c9078fd1d9d6769b5e116b26a3395cd8<br />
sha256: 3b96f99078b52876bb936eccdda6c15a9f63cf873455230aa12c84cdcccce099<br />
(are the icons weirdly large? what happened to the background image?)<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3743 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-01|Changelog]]<br />
file size: 268435456<br />
md5: 6acb8b52c5f383e6ecb9cef0a34ee2cb<br />
sha256: b8b7f412b4665ce9fb81c22ceb134deca06741d604e386ba954fa2884501d273<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_bootloopWindows bootloop2023-07-20T21:09:01Z<p>Lundman: </p>
<hr />
<div><br />
== Windows Boot Crashes ==<br />
<br />
If you find that ZFSin is crashing everytime you boot Windows, you can remove the kernel extension part.<br />
<br />
* When booting, once you get to the spinning dots part - turn off your PC - either by holding power button for 10s, or cutting power.<br />
* Doing that 2 times in a row, Windows will ask if you have boot issues.<br />
* Enter Troubleshoot, Advanced Options, then Command Prompt.<br />
* Navigate to your hard disk, which might not be C: during boot command console. Change drive letter, and issue "dir" until you recognise your disk.<br />
* cd into Windows\System32\Drivers<br />
* dele openzfs.sys<br />
* exit command prompt<br />
* use menus to boot normally.</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_portWindows port2023-06-20T00:20:05Z<p>Lundman: /* Windows port of Open ZFS */</p>
<hr />
<div><br />
== Windows port of Open ZFS ==<br />
<br />
What I did during my summer vacation.<br />
<br />
The ZOW (nice acronym!) port does not yet have its own home, but I wanted to jot down some things I have come across while doing the port. There will be a mixture of information for myself, the occasional difference to Unix that surprised me and other left-side experiences. Since my background and knowledge comes from Unix, it is mostly looking at the way that Windows does things, so it is unlikely a Windows developer would say anything but "Of course it does it this way!". Still, it has been an interesting journey. This journey is of my naive "young" self (past lundman was younger!), making assumptions that was just wrong and my "a-ha!" moment that followed.<br />
<br />
I actually had a good time challenging myself with this, so I've tried my utmost to make this text be void of bitterness, as the stereotype would demand :) <br />
<br />
<br />
The first brick wall I hit was actually in the very first couple of weeks. Yes, there is a "Hello World" kernel (Windows Driver) example which I tried to compile to "run". This was surprisingly complex a task, a lot of information that is stale led me down the way you would do it if you were still running Windows XP. Just too much information exists. Eventually I figured out that "current" best way is to deploy with VisualStudio to a remote VM, where VS will copy the compiled binary over and "load" it into the running kernel. When I created the first project file, I called it "Open ZFS on Windows". Each time I had to re-create the project in frustration (as nothing worked, not even rebooting! So much rebooting) I deleted one of the characters. In the end, it was "ZFSin" that finally had some progress. I feel I got close to giving up then, before I even started.<br />
<br />
<br />
At first, the porting consisted of changing over the SPL primitives, like atomics, mutex, condvars, rwlocks, threads and taskqs, and all that. It is pretty straight forward porting work, and you never know if it'll work at this point, or be worth it. <br />
<br />
Since OsX already runs with Solaris/IllumOS's memory manager, '''kmem''', it was easy to compile that for Windows as well. It is a page allocator with slab support and magazines, kmem_caches etc. Done by Jeff Bonwick many moons ago. So we are already familiar with it, and it has great debugging features to find memory corruption, modify-after-free and so on. So kmem now runs on Windows, Jeff will just have to find some way to live with that. :)<br />
<br />
<br />
The first real porting of a function, was the Unix '''panic()''' call. Ie, things have gone so bad, we want to purposely terminate the kernel. Used by the '''VERIFY''' macros throughout the ZFS sources.<br />
<br />
During my first ZFS porting work, to OsX, the biggest annoyance when Googling for information was the lack of said information. There just is not many kernel devs on OsX, especially in the filesystem genre. <br />
<br />
With Windows, I quickly found the opposite to be true. When trying to Google for how to trigger a BSOD (Blue screen of death), the first 1,000 or so hits are about "Troubleshooting: How to fix your BSOD!". As a side note here Windows people, when the steps to troubleshoot, includes "try re-installing Windows". That is '''not''' ''troubleshooting'', that is ''giving up''.<br />
<br />
Anyway, the next lot of "thousand hits" are "How to abuse BSOD for malwares" - oh great, at least we are touching on "development", getting closer. A few thousand hits later, you do get some suggestions, but first always for XP or similar obsolete system. I never really found the answer I think, I call DbgBreakPoint() at the moment, since I want my remote-kernel-debugger to stop and let me inspect. I'll revisit this question before the first non-debug build<br />
<br />
Just too much information.<br />
<br />
<br />
Eventually, I got everything to compile. (albeit with thousands of warnings - they are still there if you want something to do!).<br />
<br />
And it did not take long to get SPL up and ticking, all taskqs running and firing when needed. After that, ZFS loads and ticks along. Minor XDR issue where '''size_t''' is of different size between Unix and Windows, but I can't work out why that would be. <br />
<br />
Which meant I needed a short detour to port over userland, so that I could eventually run '''zpool''' command to talk to the kernel. Userland already has a "soft" kernel shim layer, so it is already pretty portable. One of the big changes is that the "file descriptors" - ie the ''integer file id'' used by POSIX, is very limited on Windows, and there were quite a few things I could not really ''do'' with them. So userland porting included changing the integer file descriptors, to the Windows HANDLE type, replacing '''open()''' siblings with '''CreateFile()''' equivalent. Trivial.<br />
<br />
At this point, ZFS and zpool/zfs command worked, you could do everything (!) but mount the file system. So create, destroy, snapshot, rename, get/set properties and all that. Naturally, ZFS without mounts is not really all that exciting so next up was to handle mount requests to the kernel.<br />
<br />
Of course Windows do not have mount requests. Rats.<br />
<br />
<br />
Looking around at other solutions, in particular Dokan, and btrfs for Windows, the standard seems to create a new "virtual" disk, which you then attach your filesystem to. For ZFS I created new ioctls from userland, for mount and unmount. The way ZFS works, is userland controls what is mounted, where and when. So this code can all stay the same, making future merges easier.<br />
<br />
The mounting problem was the second brickwall I came across, where I spent weeks trying to find a way to make it work. First week you try increasingly more and more insane things. The second week I spend asking on stackoverflow or similar places, and by third week and not getting any answers, I give up and properly learn how it works. <br />
<br />
But finally, after about 3 months from when I started, I could do the '''actual porting''' work - The ''actual porting''! ie changing the Unix vnops to Windows... whatever they are. <br />
<br />
<br />
So in Windows, they are IRP (IO Request Packet) in form of MaJor and MiNor numbers. For example '''IRP_MJ_CREATE'''.<br />
<br />
Naive lundman went and counted the Unix VNOPs under OsX, and its roughly some 30-40 of them. Things like '''vnop_mkdir''', '''vnop_remove''' and '''vnop_lookup'''. Familiar, relaxing.. they refer to single operation, almost like an atomic transaction, tight bit of code to do just that operation, like creating a directory. Clean, nice.<br />
<br />
Under Windows, when I counted up the IRP_MJ_ I found there were more than 100 entries! Wow, I thought, they must be ''even more'' tight, perhaps several calls to make up a single transaction! Super clean! Hah!<br />
<br />
<br />
I started with '''IRP_MJ_CREATE''' which was surprising. I was looking for a '''vnop_lookup''' but I assumed (young past lundman) that '''IRP_MJ_CREATE''' was '''vnop_create'''. But really the way to think about it is that it ''creates a handle'' to an object, which can either exist, or be created. <br />
<br />
So then '''IRP_MJ_CREATE''' can open existing files and directories, so it is in fact '''vnop_lookup'''. ''Great!''<br />
<br />
But of course, you can create new files when you call '''IRP_MJ_CREATE''', so it is also '''vnop_create'''. ''Oh''<br />
<br />
and, '''IRP_MJ_CREATE''' can also create new Directories, so add '''vnop_mkdir''' to that list. ''Come on!''<br />
<br />
There is also '''DeleteOnClose''' flag you can pass to '''IRP_MJ_CREATE''', so it needs to call '''vnop_remove''' when the handle is closed. ''Of course you can!''<br />
<br />
It was about three months later, when I was wondering why I had to keep cleaning up empty directories after running the Windows tester tool '''ifstest.exe''' that I discovered that '''DeleteOnClose''' can also be set for Directories! So add '''vnop_rmdir''' to that list. ''Surprise!''<br />
<br />
Updated 2019 - So it seems that '''IRP_MJ_CREATE''' can also take a list of EAs to create at the same time as the open/create of the file/dir. <br />
Additional 2019 - and apparently, also return stat (as in getattr) struct in the '''IRP_MJ_CREATE''' open/create call.<br />
<br />
Updated 2023 - '''IRP_MJ_CREATE''' can also be called on a non-existent file, with a stream name, like '''newfile:newstream''' and it is expected to create the '''newfile''', then create the '''newstream''' and return a handle to '''newstream'''. A double create event.<br />
<br />
The '''IRP_MJ_CREATE''' to Unix '''vnop_lookup''' has easily become the largest and most complicated of vnop calls.<br />
<br />
<br />
Can you imagine Unix code like '''dh = opendir("dir", DeleteOnClose); closedir(dh);''' to be the equivalent of '''rmdir("dir");'''?<br />
<br />
Update - turns out you can also pass in an initial Allocation Size to the '''IRP_MJ_CREATE''' call for when a file is created/truncated, so we would need to handle this as well, somehow.<br />
<br />
So no, the Windows IRPs are not finer grained calls, there seems to be mostly about 10-20 ''real'' calls used for ''everything'', and all the rest are weird obscure(ish) calls, usually in specific areas like scsi. So each IRP ends up being a large function, testing all sorts of incoming flags, and branching out depending on the operation. Even simple calls like '''IRP_MJ_READ''' is also called for paging files, so has '''vnop_pagein''' included.<br />
<br />
It was not too surprising to come across '''TruncateOnClose''' after that, not sure I see the point of that flag, but I am no longer fazed! Or something...<br />
<br />
<br />
During the hackathon at Open ZFS summit 2017, I took a look at the ''zfs send'' and ''zfs recv'' features, to see how complicated it would be to add that support. It was quite a struggle under OsX, as Apple do not let us call many of the kernel functions. Finding a way to do IO on a file descriptor that could be either a file on disk, or, a pipe to a command, was complicated. With Windows I spent quite a bit of time thinking about how to attack this problem in the kernel, how much would I need to change. What was surprising is how easy the kernel part was, I just changed it to take a HANDLE, like the userland port work, and it just.. worked. So I cleaned that patch up, played with the userland options, and eventually found that ''zfs send -v'' did not work. "-v" is just an option to tell zfs to print progress every second. The amount the data sent, speed and ETA. Should be trivial?<br />
<br />
Led down a dark avenue trying to get async ioctls to work, which means the ''copyin/copyout'' code needs to change (different stack, so permission denied) and same for file descriptor (actually, handle). But that didn't fix it, so turns out that an open '''/dev/zfs''' can only do one ioctl at a time, so the thread that does the progress printing just needed to open the '''/dev/zfs''' again for itself, and it all works. Delete all new async ioctl code. Userland ended up being the hard part, and the kernel code trivial. <br />
<br />
<br />
Deleting an entry can also be done by calling '''IRP_SET_INFORMATION''' with '''set_file_disposition''' with '''Delete''' set to TRUE. Again, the actual delete is delayed until close '''IRP_MJ_CLOSE'''.<br />
<br />
<br />
Unix '''vnop_readdir''' has 2 structs it can use, the legacy and ''extended'' struct. Which is a bit annoying, but the ZFS code already handles that case. On Windows, it turns out that there are at least 9! of these structs (so far). For short-name or long-name, or both. Then again, with file IDs etc. To be fair, I've only seen 4 types used in the wild so far. You can also pass in a glob match pattern to it, which is a pain.<br />
<br />
<br />
With Unix, the vnode has a v_data void * pointer, which is "yours" to do with as you please. Ie, it can point to whatever data you want, and in ZFS it points to a znode. Under Windows, a '''FileObject''' actually has 2 '''FsContext''' pointers, which I thought was rather generous. But it turns out to be a lie! With directory listings, you are expected to remember the index offset, and search glob pattern "yourself", in the filesystem, which typically what '''FsContext2''' is used for. But also, if you want memory-mapped ('''vnop_mmap''') to work (you do), you are expected to put in a Windows specific struct inside your struct somewhere, set in '''Fs_Context'''. So it feels like suddenly the v_data pointer isn't ''entirely mine'' as it would be under Unix. But, really the mmap struct doesn't ''have'' to be in the '''FsContext''', I could create some other storage for it, like a linked list and search for it, but it is placed there under all examples, and is much easier to handle when it is time to release it.<br />
<br />
<br />
This was the third brickwall I came across, after implementing '''IRP_MJ_READ''' and '''IRP_MJ_WRITE''', I could do simple IO like cat/type of files and view a PNG image of the cat. But what didn't work was '''notepad.exe'''. The simplest of all editors! That turns out to be the mmap problem, and since I failed to include the struct above, no mmap worked, so notepad could not read/write data. Wordpad.exe was fine.<br />
<br />
<br />
Technically, I probably do not need to create vnodes under the Windows port, but I have mirrored XNU's VFS layer, so I can ASSERT on the vnode iocount references and so on, as well as hold on to the mmap struct above. Eventually the Windows vnode layer should be fleshed out a bit more, so it has a max-vnodes setting to cache vnodes, and a thread that calls reclaim when needed etc. Right now, everything is reclaimed on close, which is slow.<br />
<br />
<br />
So on the whole "mounting a dataset inside another dataset", or as Windows calls it, "named mount" using '''REPARSE POINTS'''. First issue I had was that userland created the directory that was to be mounted on, like standard Unix, then checks that it is empty before calling the kernel to mount something on top of it. Think in Unix terms, a directory is a directory. So turning it into a "reparse point" is just something you "add" on later, like chflags or chmod. Turns out that that is not the case. When you create the directory, you create it WITH reparse point set, and it makes.. something different. Not sure how I'll change userland for it yet, maybe leave it as is, but rmdir in kernel before mounting.<br />
<br />
Then is the fact that when you create a reparse point directory, it calls ZFS with FSCTL_SET_REPARSE_POINT, and a struct that it expects the filesystem to store. Like that of a symlink I suppose, except for the mountpoint, set on a directory. The manual labour of a mount inside a mount seems to fall on the filesystem entirely. When looking up an entry (vnop_lookup) I need to detect the directory is a reparse point, read in the stored data, and return that data in "Tail.Overlay.AuxiliaryBuffer" with return code STATUS_REPARSE, and the "Reserved" field set to the number of bytes parsed before hitting this reparse point. .... I'm not sure what to think here.. Also, in readdir, if you want the directory icon to show it is a mounted directory (like NTFS does) - you return 0xa000003 in the EASize field. Are we just bolting on things now?<br />
<br />
But it amuses me greatly that I can return different target mountpoint information, based on any criteria I see fit. Be it UserID, process name, moon phase. So Doug entering "Games" might get pointed to the HDD, and Stuart is sent to C:\goats. Great prank!<br />
<br />
Way back in the start, I received '''IRP_MN_NOTIFY_CHANGE_DIRECTORY''' and assumed it was something it sent to ZFS when you change a directory. Didn't quite get the point of it, but returned A-OK, and moved on. It was quite a bit later while wondering why Devstudio issue 100s of them per second, that I decided to check it out proper like. Turns out it is a "block this request, until this directory changes". As a way to detect something new, or deleted, in a directory. And with me replying A-OK to everything, made it scan the directory and ask to be notified again, pretty much indefinitely. Oops.<br />
<br />
<br />
<br />
=== Gallery ===<br />
<br />
Screen grabs of various milestones:<br />
<br />
<gallery mode="packed-hover"><br />
Image:ZFSin_first_discovery.png|''ZFSin first discovery'' (20170411)<br />
Image:ZFSin_import_scan.png|''ZFSin import scan'' (20170414)<br />
Image:ZFSin_first_import.png|''ZFSin first import'' (20170414)<br />
Image:ZFSin_directory_listing.png|''ZFSin directory listing'' (20170517)<br />
Image:ZFSin_reading_file.png|''ZFSin reading file'' (20170517)<br />
Image:ZFSin_zfs_create.png|''ZFSin zfs create'' (20170517)<br />
Image:ZFSin_notepad.png|''ZFSin notepad'' (20170614)<br />
Image:ZFSin_named_mount.png|''ZFSin named mount'' (20180112)<br />
Image:ZFSin_mounts_in_ZFS.png|''ZFSin mounts in ZFS'' (20180124)<br />
Image:ZFSin_mountedtree.png|''ZFSin mountedtree'' (20180124)<br />
Image:ZFSin_first_create.png|''ZFSin first create'' (20180207)<br />
Image:ZFSin_first_compile.png|''ZFSin first compile'' (20180501)<br />
Image:ZFSin_device_removal.png|''ZFSin device removal'' (20180501)<br />
Image:ZFSin_first_lua.png|''ZFSin channel program (lua script)'' (20181018)<br />
Image:ZFSin_zvol_formatted.png|''ZFSin ZVOL creation, NTFS format'' (20190109)<br />
Image:ZFSin_zfstester.png|''ZFSin first zfstester run (cygwin)'' (20190125)<br />
Image:ZFSin_WindowsServer.png|''ZFSin Windows Server 2016'' (20180207)<br />
</gallery></div>Lundmanhttps://openzfsonosx.org/wiki/Windows_portWindows port2023-06-20T00:18:58Z<p>Lundman: /* Windows port of Open ZFS */</p>
<hr />
<div><br />
== Windows port of Open ZFS ==<br />
<br />
What I did during my summer vacation.<br />
<br />
The ZOW (nice acronym!) port does not yet have its own home, but I wanted to jot down some things I have come across while doing the port. There will be a mixture of information for myself, the occasional difference to Unix that surprised me and other left-side experiences. Since my background and knowledge comes from Unix, it is mostly looking at the way that Windows does things, so it is unlikely a Windows developer would say anything but "Of course it does it this way!". Still, it has been an interesting journey. This journey is of my naive "young" self (past lundman was younger!), making assumptions that was just wrong and my "a-ha!" moment that followed.<br />
<br />
I actually had a good time challenging myself with this, so I've tried my utmost to make this text be void of bitterness, as the stereotype would demand :) <br />
<br />
<br />
The first brick wall I hit was actually in the very first couple of weeks. Yes, there is a "Hello World" kernel (Windows Driver) example which I tried to compile to "run". This was surprisingly complex a task, a lot of information that is stale led me down the way you would do it if you were still running Windows XP. Just too much information exists. Eventually I figured out that "current" best way is to deploy with VisualStudio to a remote VM, where VS will copy the compiled binary over and "load" it into the running kernel. When I created the first project file, I called it "Open ZFS on Windows". Each time I had to re-create the project in frustration (as nothing worked, not even rebooting! So much rebooting) I deleted one of the characters. In the end, it was "ZFSin" that finally had some progress. I feel I got close to giving up then, before I even started.<br />
<br />
<br />
At first, the porting consisted of changing over the SPL primitives, like atomics, mutex, condvars, rwlocks, threads and taskqs, and all that. It is pretty straight forward porting work, and you never know if it'll work at this point, or be worth it. <br />
<br />
Since OsX already runs with Solaris/IllumOS's memory manager, '''kmem''', it was easy to compile that for Windows as well. It is a page allocator with slab support and magazines, kmem_caches etc. Done by Jeff Bonwick many moons ago. So we are already familiar with it, and it has great debugging features to find memory corruption, modify-after-free and so on. So kmem now runs on Windows, Jeff will just have to find some way to live with that. :)<br />
<br />
<br />
The first real porting of a function, was the Unix '''panic()''' call. Ie, things have gone so bad, we want to purposely terminate the kernel. Used by the '''VERIFY''' macros throughout the ZFS sources.<br />
<br />
During my first ZFS porting work, to OsX, the biggest annoyance when Googling for information was the lack of said information. There just is not many kernel devs on OsX, especially in the filesystem genre. <br />
<br />
With Windows, I quickly found the opposite to be true. When trying to Google for how to trigger a BSOD (Blue screen of death), the first 1,000 or so hits are about "Troubleshooting: How to fix your BSOD!". As a side note here Windows people, when the steps to troubleshoot, includes "try re-installing Windows". That is '''not''' ''troubleshooting'', that is ''giving up''.<br />
<br />
Anyway, the next lot of "thousand hits" are "How to abuse BSOD for malwares" - oh great, at least we are touching on "development", getting closer. A few thousand hits later, you do get some suggestions, but first always for XP or similar obsolete system. I never really found the answer I think, I call DbgBreakPoint() at the moment, since I want my remote-kernel-debugger to stop and let me inspect. I'll revisit this question before the first non-debug build<br />
<br />
Just too much information.<br />
<br />
<br />
Eventually, I got everything to compile. (albeit with thousands of warnings - they are still there if you want something to do!).<br />
<br />
And it did not take long to get SPL up and ticking, all taskqs running and firing when needed. After that, ZFS loads and ticks along. Minor XDR issue where '''size_t''' is of different size between Unix and Windows, but I can't work out why that would be. <br />
<br />
Which meant I needed a short detour to port over userland, so that I could eventually run '''zpool''' command to talk to the kernel. Userland already has a "soft" kernel shim layer, so it is already pretty portable. One of the big changes is that the "file descriptors" - ie the ''integer file id'' used by POSIX, is very limited on Windows, and there were quite a few things I could not really ''do'' with them. So userland porting included changing the integer file descriptors, to the Windows HANDLE type, replacing '''open()''' siblings with '''CreateFile()''' equivalent. Trivial.<br />
<br />
At this point, ZFS and zpool/zfs command worked, you could do everything (!) but mount the file system. So create, destroy, snapshot, rename, get/set properties and all that. Naturally, ZFS without mounts is not really all that exciting so next up was to handle mount requests to the kernel.<br />
<br />
Of course Windows do not have mount requests. Rats.<br />
<br />
<br />
Looking around at other solutions, in particular Dokan, and btrfs for Windows, the standard seems to create a new "virtual" disk, which you then attach your filesystem to. For ZFS I created new ioctls from userland, for mount and unmount. The way ZFS works, is userland controls what is mounted, where and when. So this code can all stay the same, making future merges easier.<br />
<br />
The mounting problem was the second brickwall I came across, where I spent weeks trying to find a way to make it work. First week you try increasingly more and more insane things. The second week I spend asking on stackoverflow or similar places, and by third week and not getting any answers, I give up and properly learn how it works. <br />
<br />
But finally, after about 3 months from when I started, I could do the '''actual porting''' work - The ''actual porting''! ie changing the Unix vnops to Windows... whatever they are. <br />
<br />
<br />
So in Windows, they are IRP (IO Request Packet) in form of MaJor and MiNor numbers. For example '''IRP_MJ_CREATE'''.<br />
<br />
Naive lundman went and counted the Unix VNOPs under OsX, and its roughly some 30-40 of them. Things like '''vnop_mkdir''', '''vnop_remove''' and '''vnop_lookup'''. Familiar, relaxing.. they refer to single operation, almost like an atomic transaction, tight bit of code to do just that operation, like creating a directory. Clean, nice.<br />
<br />
Under Windows, when I counted up the IRP_MJ_ I found there were more than 100 entries! Wow, I thought, they must be ''even more'' tight, perhaps several calls to make up a single transaction! Super clean! Hah!<br />
<br />
<br />
I started with '''IRP_MJ_CREATE''' which was surprising. I was looking for a '''vnop_lookup''' but I assumed (young past lundman) that '''IRP_MJ_CREATE''' was '''vnop_create'''. But really the way to think about it is that it ''creates a handle'' to an object, which can either exist, or be created. <br />
<br />
So then '''IRP_MJ_CREATE''' can open existing files and directories, so it is in fact '''vnop_lookup'''. ''Great!''<br />
<br />
But of course, you can create new files when you call '''IRP_MJ_CREATE''', so it is also '''vnop_create'''. ''Oh''<br />
<br />
and, '''IRP_MJ_CREATE''' can also create new Directories, so add '''vnop_mkdir''' to that list. ''Come on!''<br />
<br />
There is also '''DeleteOnClose''' flag you can pass to '''IRP_MJ_CREATE''', so it needs to call '''vnop_remove''' when the handle is closed. ''Of course you can!''<br />
<br />
It was about three months later, when I was wondering why I had to keep cleaning up empty directories after running the Windows tester tool '''ifstest.exe''' that I discovered that '''DeleteOnClose''' can also be set for Directories! So add '''vnop_rmdir''' to that list. ''Surprise!''<br />
<br />
Updated 2019 - So it seems that '''IRP_MJ_CREATE''' can also take a list of EAs to create at the same time as the open/create of the file/dir. <br />
Additional 2019 - and apparently, also return stat (as in getattr) struct in the '''IRP_MJ_CREATE''' open/create call.<br />
<br />
Updated 2023 - '''IRP_MJ_CREATE''' can also be called on a non-existent file, with a stream name, like ```newfile:newstream``` and it is expected to create the ```newfile```, then create the ```newstream``` and return a handle to ```newstream```. A double create event.<br />
<br />
The '''IRP_MJ_CREATE''' to Unix '''vnop_lookup''' has easily become the largest and most complicated of vnop calls.<br />
<br />
<br />
Can you imagine Unix code like '''dh = opendir("dir", DeleteOnClose); closedir(dh);''' to be the equivalent of '''rmdir("dir");'''?<br />
<br />
Update - turns out you can also pass in an initial Allocation Size to the '''IRP_MJ_CREATE''' call for when a file is created/truncated, so we would need to handle this as well, somehow.<br />
<br />
So no, the Windows IRPs are not finer grained calls, there seems to be mostly about 10-20 ''real'' calls used for ''everything'', and all the rest are weird obscure(ish) calls, usually in specific areas like scsi. So each IRP ends up being a large function, testing all sorts of incoming flags, and branching out depending on the operation. Even simple calls like '''IRP_MJ_READ''' is also called for paging files, so has '''vnop_pagein''' included.<br />
<br />
It was not too surprising to come across '''TruncateOnClose''' after that, not sure I see the point of that flag, but I am no longer fazed! Or something...<br />
<br />
<br />
During the hackathon at Open ZFS summit 2017, I took a look at the ''zfs send'' and ''zfs recv'' features, to see how complicated it would be to add that support. It was quite a struggle under OsX, as Apple do not let us call many of the kernel functions. Finding a way to do IO on a file descriptor that could be either a file on disk, or, a pipe to a command, was complicated. With Windows I spent quite a bit of time thinking about how to attack this problem in the kernel, how much would I need to change. What was surprising is how easy the kernel part was, I just changed it to take a HANDLE, like the userland port work, and it just.. worked. So I cleaned that patch up, played with the userland options, and eventually found that ''zfs send -v'' did not work. "-v" is just an option to tell zfs to print progress every second. The amount the data sent, speed and ETA. Should be trivial?<br />
<br />
Led down a dark avenue trying to get async ioctls to work, which means the ''copyin/copyout'' code needs to change (different stack, so permission denied) and same for file descriptor (actually, handle). But that didn't fix it, so turns out that an open '''/dev/zfs''' can only do one ioctl at a time, so the thread that does the progress printing just needed to open the '''/dev/zfs''' again for itself, and it all works. Delete all new async ioctl code. Userland ended up being the hard part, and the kernel code trivial. <br />
<br />
<br />
Deleting an entry can also be done by calling '''IRP_SET_INFORMATION''' with '''set_file_disposition''' with '''Delete''' set to TRUE. Again, the actual delete is delayed until close '''IRP_MJ_CLOSE'''.<br />
<br />
<br />
Unix '''vnop_readdir''' has 2 structs it can use, the legacy and ''extended'' struct. Which is a bit annoying, but the ZFS code already handles that case. On Windows, it turns out that there are at least 9! of these structs (so far). For short-name or long-name, or both. Then again, with file IDs etc. To be fair, I've only seen 4 types used in the wild so far. You can also pass in a glob match pattern to it, which is a pain.<br />
<br />
<br />
With Unix, the vnode has a v_data void * pointer, which is "yours" to do with as you please. Ie, it can point to whatever data you want, and in ZFS it points to a znode. Under Windows, a '''FileObject''' actually has 2 '''FsContext''' pointers, which I thought was rather generous. But it turns out to be a lie! With directory listings, you are expected to remember the index offset, and search glob pattern "yourself", in the filesystem, which typically what '''FsContext2''' is used for. But also, if you want memory-mapped ('''vnop_mmap''') to work (you do), you are expected to put in a Windows specific struct inside your struct somewhere, set in '''Fs_Context'''. So it feels like suddenly the v_data pointer isn't ''entirely mine'' as it would be under Unix. But, really the mmap struct doesn't ''have'' to be in the '''FsContext''', I could create some other storage for it, like a linked list and search for it, but it is placed there under all examples, and is much easier to handle when it is time to release it.<br />
<br />
<br />
This was the third brickwall I came across, after implementing '''IRP_MJ_READ''' and '''IRP_MJ_WRITE''', I could do simple IO like cat/type of files and view a PNG image of the cat. But what didn't work was '''notepad.exe'''. The simplest of all editors! That turns out to be the mmap problem, and since I failed to include the struct above, no mmap worked, so notepad could not read/write data. Wordpad.exe was fine.<br />
<br />
<br />
Technically, I probably do not need to create vnodes under the Windows port, but I have mirrored XNU's VFS layer, so I can ASSERT on the vnode iocount references and so on, as well as hold on to the mmap struct above. Eventually the Windows vnode layer should be fleshed out a bit more, so it has a max-vnodes setting to cache vnodes, and a thread that calls reclaim when needed etc. Right now, everything is reclaimed on close, which is slow.<br />
<br />
<br />
So on the whole "mounting a dataset inside another dataset", or as Windows calls it, "named mount" using '''REPARSE POINTS'''. First issue I had was that userland created the directory that was to be mounted on, like standard Unix, then checks that it is empty before calling the kernel to mount something on top of it. Think in Unix terms, a directory is a directory. So turning it into a "reparse point" is just something you "add" on later, like chflags or chmod. Turns out that that is not the case. When you create the directory, you create it WITH reparse point set, and it makes.. something different. Not sure how I'll change userland for it yet, maybe leave it as is, but rmdir in kernel before mounting.<br />
<br />
Then is the fact that when you create a reparse point directory, it calls ZFS with FSCTL_SET_REPARSE_POINT, and a struct that it expects the filesystem to store. Like that of a symlink I suppose, except for the mountpoint, set on a directory. The manual labour of a mount inside a mount seems to fall on the filesystem entirely. When looking up an entry (vnop_lookup) I need to detect the directory is a reparse point, read in the stored data, and return that data in "Tail.Overlay.AuxiliaryBuffer" with return code STATUS_REPARSE, and the "Reserved" field set to the number of bytes parsed before hitting this reparse point. .... I'm not sure what to think here.. Also, in readdir, if you want the directory icon to show it is a mounted directory (like NTFS does) - you return 0xa000003 in the EASize field. Are we just bolting on things now?<br />
<br />
But it amuses me greatly that I can return different target mountpoint information, based on any criteria I see fit. Be it UserID, process name, moon phase. So Doug entering "Games" might get pointed to the HDD, and Stuart is sent to C:\goats. Great prank!<br />
<br />
Way back in the start, I received '''IRP_MN_NOTIFY_CHANGE_DIRECTORY''' and assumed it was something it sent to ZFS when you change a directory. Didn't quite get the point of it, but returned A-OK, and moved on. It was quite a bit later while wondering why Devstudio issue 100s of them per second, that I decided to check it out proper like. Turns out it is a "block this request, until this directory changes". As a way to detect something new, or deleted, in a directory. And with me replying A-OK to everything, made it scan the directory and ask to be notified again, pretty much indefinitely. Oops.<br />
<br />
<br />
<br />
=== Gallery ===<br />
<br />
Screen grabs of various milestones:<br />
<br />
<gallery mode="packed-hover"><br />
Image:ZFSin_first_discovery.png|''ZFSin first discovery'' (20170411)<br />
Image:ZFSin_import_scan.png|''ZFSin import scan'' (20170414)<br />
Image:ZFSin_first_import.png|''ZFSin first import'' (20170414)<br />
Image:ZFSin_directory_listing.png|''ZFSin directory listing'' (20170517)<br />
Image:ZFSin_reading_file.png|''ZFSin reading file'' (20170517)<br />
Image:ZFSin_zfs_create.png|''ZFSin zfs create'' (20170517)<br />
Image:ZFSin_notepad.png|''ZFSin notepad'' (20170614)<br />
Image:ZFSin_named_mount.png|''ZFSin named mount'' (20180112)<br />
Image:ZFSin_mounts_in_ZFS.png|''ZFSin mounts in ZFS'' (20180124)<br />
Image:ZFSin_mountedtree.png|''ZFSin mountedtree'' (20180124)<br />
Image:ZFSin_first_create.png|''ZFSin first create'' (20180207)<br />
Image:ZFSin_first_compile.png|''ZFSin first compile'' (20180501)<br />
Image:ZFSin_device_removal.png|''ZFSin device removal'' (20180501)<br />
Image:ZFSin_first_lua.png|''ZFSin channel program (lua script)'' (20181018)<br />
Image:ZFSin_zvol_formatted.png|''ZFSin ZVOL creation, NTFS format'' (20190109)<br />
Image:ZFSin_zfstester.png|''ZFSin first zfstester run (cygwin)'' (20190125)<br />
Image:ZFSin_WindowsServer.png|''ZFSin Windows Server 2016'' (20180207)<br />
</gallery></div>Lundmanhttps://openzfsonosx.org/wiki/PanicPanic2023-05-30T05:29:06Z<p>Lundman: /* Best effort for M1 (arm64) */</p>
<hr />
<div><br />
== Kernel panics ==<br />
<br />
One of the most useful settings to assist with debugging is telling Darwin kernel to keep the symbols from kexts. This can<br />
be set using the nvram command, and requires a reboot.<br />
<br />
First check to see if you have any special boot-args set and add the new keepsyms instruction.<br />
# nvram boot-args="keepsyms=y debug=0x144"<br />
<br />
and reboot the machine for it to take effect.<br />
<br />
[[https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABCCIDH Table 20-1]] in Apple's Kernel Programming Guide has a summary of the meaning of the debug options.<br />
<br />
<br />
=== Panic decoding ===<br />
<br />
If you get a panic but you do not have symbols enabled, it can be decoded using the atos command.<br />
<br />
In a standard panic log, you will see something like:<br />
<br />
# cd /Library/Logs/DiagnosticReports/<br />
# less Kernel_2014-03-13-093629_OSX109.panic<br />
Backtrace (CPU 0), Frame : Return Address<br />
0xffffff8088843b10 : 0xffffff7f85e25759 : '''0xffffff7f80dcf760''' <br />
0xffffff8088843b40 : 0xffffff7f85e25560 : '''0xffffff7f80dcf423''' <br />
0xffffff8088843be0 : 0xffffff7f85e08f27 : '''0xffffff7f80dc491a'''<br />
<br />
Kernel Extensions in backtrace:<br />
net.lundman.spl(1.0)[7F69C13B-C730-3475-99E9-53861AC6C54E]@0xffffff7f85d2a000->0xffffff7f85d36fff<br />
net.lundman.zfs(1.0)[5637421D-EE17-33F1-ACB2-8FA38BC5A5A6]@'''0xffffff7f80d54000'''->0xffffff7f85f38fff<br />
<br />
We can then run the command<br />
<br />
# xcrun '''atos''' -arch '''x86_64''' -l '''0xffffff7f80d54000''' -o ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs '''0xffffff7f80dcf760 0xffffff7f80dcf423 0xffffff7f80dc491a'''<br />
got symbolicator for ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs, base address 0<br />
spa_taskqs_init (in zfs) (spa.c:888)<br />
spa_create_zio_taskqs (in zfs) (spa.c:972)<br />
spa_activate (in zfs) (spa.c:1094)<br />
<br />
Which can be repeated for spl, and spl load address as well, if needed.<br />
<br />
And for kernel addresses, look for "kernel slide:" value, I assumed 0 in this example<br />
xcrun atos -arch x86_64 -d -o /Volumes/KernelDebugKit/mach_kernel -s 0 0xffffff8000222f79 0xffffff80002dc24e 0xffffff80002f3746 <br />
<br />
<br />
<br />
If you are not panicking, but would like to print the stack at a certain point in the kext, you can use<br />
<br />
OSReportWithBacktrace("I am here: vp %p\n", vp);<br />
<br />
in `printf` style notation.<br />
<br />
<br />
=== Best effort for M1 (arm64) ===<br />
<br />
<br />
# xcrun llvm-objdump --disassemble --arch arm64e /Library/Extensions/zfs.kext/Contents/MacOS/zfs|head<br />
<br />
/Library/Extensions/zfs.kext/Contents/MacOS/zfs:<br />
(__TEXT_EXEC,__text) section<br />
_atomic_cas_ptr:<br />
94000: 02 fc e1 c8 casal x1, x2, [x0]<br />
<br />
org.openzfsonosx.zfs(2.1)[0BF8CB05-9B3B-3182-8DE6-AF14261D75B8]@ 0xfffffe0022410000->0xfffffe00226fffff<br />
0xfffffe0022410000 - 0x94000 = 0xFFFFFE0022388000<br />
<br />
lr: 0xfffffe002348abe4 fp: 0xfffffe3feaf526f0<br />
lr: 0xfffffe002348a9c8 fp: 0xfffffe3feaf52760<br />
<br />
# atos -o module/os/macos/zfs/zfs -arch arm64e -l 0xFFFFFE0022388000 0xfffffe002348abe4 0xfffffe002348a9c8 ....<br />
<br />
=== Alternate symbol lookup with lldb ===<br />
<br />
Panic:<br />
panic(cpu 5 caller 0xffffff80088d1066): trying to interlock destroyed mutex (0xffffff8029196000)<br />
Backtrace (CPU 5), Frame : Return Address<br />
0xffffff81f49fba80 : 0xffffff8008822fa9 <br />
0xffffff81f49fbb00 : 0xffffff80088d1066 <br />
0xffffff81f49fbb10 : 0xffffff800889c75e <br />
0xffffff81f49fbbe0 : 0xffffff80088ae60c <br />
0xffffff81f49fbc00 : '''0xffffff7f8a4252e0'''<br />
0xffffff81f49fbdf0 : 0xffffff80089ffea9 <br />
net.lundman.zfs(1.0)[0EC79B06-3C9F-3529-8450-42222507F310]@'''0xffffff7f8a33c000'''->0xffffff7f8a545fff<br />
<br />
Assuming you have the same build as panic report, in this case 1.2.7<br />
# lldb<br />
(lldb) target create --no-dependents --arch x86_64 module/zfs/zfs #Binary before moved into zfs.kext<br />
(lldb) target modules load --file zfs __TEXT '''0xffffff7f8a33c000'''<br />
(lldb) image lookup --verbose --address '''0xffffff7f8a4252e0'''<br />
<br />
Address: zfs[0x00000000000e92e0] (zfs.__TEXT.__text + 950160)<br />
Summary: zfs`zfs_vnop_pageout + 1264 at zfs_vnops_osx.c:1236<br />
Module: file = "/Users/lundman/x/zfs/module/zfs/zfs", arch = "x86_64"<br />
CompileUnit: id = {0x00000000}, file = "/Users/lundman/x/zfs/module/zfs/zfs_vnops_osx.c", language = "c89"<br />
'''LineEntry''': [0xffffff7f8a4252da-0xffffff7f8a4252f0): /Users/lundman/x/zfs/module/zfs/'''zfs_vnops_osx.c:1236'''<br />
<br />
zfs_vnops_osx.c:1236<br />
tx = dmu_tx_create(zfsvfs->z_os);<br />
dmu_tx_hold_write(tx, zp->z_id, off, len);<br />
'''dmu_tx_hold_bonus(tx, zp->z_id);'''<br />
err = dmu_tx_assign(tx, TXG_NOWAIT);<br />
<br />
Or just for the kernel<br />
<br />
(lldb) target create --no-dependents --arch x86_64 mach_kernel<br />
(lldb) target modules load --file mach_kernel --slide 0x000000000b600000<br />
(lldb) image lookup -a 0xffffff800b8d6aa7<br />
<br />
=== Kernel to Userland ===<br />
<br />
Connect to crashed kernel:<br />
<br />
# Load the compiled binary, just makes it easier for lldb to find it when connecting<br />
(lldb) target create --no-dependents --arch x86_64 module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs <br />
Current executable set to 'module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs' (x86_64).<br />
# Connect to crashed VM<br />
(lldb) kdp-remote 172.16.248.128<br />
Version: Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/DEVELOPMENT_X86_64; UUID=12647AE2-57FB-35DB-AF57-4B25D060D845; stext=0xffffff802f200000<br />
<br />
In this case we have died when trying to copyinstr() from userland:<br />
<br />
(lldb) up<br />
frame #1: 0xffffff7f8db91238 zfs`history_str_get(zc=0xffffff90a8dec000) at zfs_ioctl.c:295:6<br />
292 return (NULL);<br />
293<br />
294 buf = kmem_alloc(HIS_MAX_RECORD_LEN, KM_SLEEP);<br />
-> 295 if (copyinstr((void *)(uintptr_t)zc->zc_history,<br />
296 buf, HIS_MAX_RECORD_LEN, NULL) != 0) {<br />
297 history_str_free(buf);<br />
298 return (NULL);<br />
(lldb) p zc->zc_history<br />
(uint64_t) $1 = 4413168320<br />
<br />
Find the task ptr for userprocess, a few ways;<br />
<br />
(lldb) showproc 0xffffff804afb3700<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showpid 687<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showprocinfo 0xffffff804afb3700<br />
Process 0xffffff804afb3700<br />
name zpool<br />
pid:687 task:0xffffff803bb76498 p_stat:2 parent pid: 686<br />
Cred: euid 0 ruid 0 svuid 0<br />
Flags: 0x4006<br />
0x00000002 - has a controlling tty<br />
0x00000004 - process is 64 bit<br />
0x00004000 - process has called exec<br />
<br />
You can view user process threads:<br />
<br />
(lldb) showtaskuserstacks 0xffffff803bb76498<br />
Process: zpool [687]<br />
Path: zpool<br />
Identifier: zpool<br />
Version: ??? (???)<br />
Code Type: X86-64 (Native)<br />
Parent Process: bash [686]<br />
<br />
Date/Time: 2020-05-08 09:20:50.000 -0800<br />
OS Version: Mac OS X 10.8 (18G103)<br />
Report Version: 8<br />
<br />
Exception Type: n/a<br />
Exception Codes: n/a<br />
Crashed Thread: 0<br />
<br />
Application Specific Information:<br />
Synthetic crash log generated from Kernel userstacks<br />
<br />
Binary Images:<br />
Unknown dyld all_image_infos version number 15<br />
0x10efd9000 - 0x10f018fff zpool <br />
(??? - ???) <7234AC69-6CE8-321D-9ACC-4F73BB964650> /Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool<br />
<br />
[snip]<br />
<br />
Create a gdb-server to debug zpool process:<br />
<br />
(lldb) beginusertaskdebugging 0xffffff803bb76498<br />
Starting debug session for zpool at localhost:7936.<br />
<br />
From another shell, start to debug the zpool process, <br />
using the convenience wrapper script:<br />
All it does is run "lldb zpool" after setting DYLD_LIBRARY_PATH so you can<br />
run it in the build directory.<br />
<br />
± ./scripts/debug-macos.sh zpool<br />
(lldb) target create "/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool"<br />
Current executable set to '/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool' (x86_64).<br />
(lldb) gdb-remote localhost:7936<br />
Process 687 stopped<br />
* thread #1, stop reason = signal SIGINT<br />
frame #0: 0x00007fff63fbfb5a libsystem_kernel.dylib<br />
-> 0x7fff63fbfb5a: jae 0x7fff63fbfb64<br />
0x7fff63fbfb5c: movq %rax, %rdi<br />
0x7fff63fbfb5f: jmp 0x7fff63fbf421<br />
0x7fff63fbfb64: retq<br />
<br />
(lldb) up<br />
frame #6: 0x000000010efdc434 zpool`zpool_export_one(zhp=0x00007ff51440b750, data=0x00007ffee0c25718) at zpool_main.c:1706:13<br />
1703 if (cb->hardforce) {<br />
1704 if (zpool_export_force(zhp, history_str) != 0)<br />
1705 return (1);<br />
-> 1706 } else if (zpool_export(zhp, cb->force, history_str) != 0) {<br />
1707 return (1);<br />
1708 }<br />
1709<br />
(lldb) p history_str<br />
(char [2049]) $0 = "zpool export BOOM"<br />
<br />
=== Links ===<br />
<br />
https://developer.apple.com/library/mac/qa/qa1264/_index.html<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABDGEGF<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man8/kext_logging.8.html</div>Lundmanhttps://openzfsonosx.org/wiki/PanicPanic2023-05-30T05:28:48Z<p>Lundman: /* Best effort for M1 (arm64) */</p>
<hr />
<div><br />
== Kernel panics ==<br />
<br />
One of the most useful settings to assist with debugging is telling Darwin kernel to keep the symbols from kexts. This can<br />
be set using the nvram command, and requires a reboot.<br />
<br />
First check to see if you have any special boot-args set and add the new keepsyms instruction.<br />
# nvram boot-args="keepsyms=y debug=0x144"<br />
<br />
and reboot the machine for it to take effect.<br />
<br />
[[https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABCCIDH Table 20-1]] in Apple's Kernel Programming Guide has a summary of the meaning of the debug options.<br />
<br />
<br />
=== Panic decoding ===<br />
<br />
If you get a panic but you do not have symbols enabled, it can be decoded using the atos command.<br />
<br />
In a standard panic log, you will see something like:<br />
<br />
# cd /Library/Logs/DiagnosticReports/<br />
# less Kernel_2014-03-13-093629_OSX109.panic<br />
Backtrace (CPU 0), Frame : Return Address<br />
0xffffff8088843b10 : 0xffffff7f85e25759 : '''0xffffff7f80dcf760''' <br />
0xffffff8088843b40 : 0xffffff7f85e25560 : '''0xffffff7f80dcf423''' <br />
0xffffff8088843be0 : 0xffffff7f85e08f27 : '''0xffffff7f80dc491a'''<br />
<br />
Kernel Extensions in backtrace:<br />
net.lundman.spl(1.0)[7F69C13B-C730-3475-99E9-53861AC6C54E]@0xffffff7f85d2a000->0xffffff7f85d36fff<br />
net.lundman.zfs(1.0)[5637421D-EE17-33F1-ACB2-8FA38BC5A5A6]@'''0xffffff7f80d54000'''->0xffffff7f85f38fff<br />
<br />
We can then run the command<br />
<br />
# xcrun '''atos''' -arch '''x86_64''' -l '''0xffffff7f80d54000''' -o ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs '''0xffffff7f80dcf760 0xffffff7f80dcf423 0xffffff7f80dc491a'''<br />
got symbolicator for ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs, base address 0<br />
spa_taskqs_init (in zfs) (spa.c:888)<br />
spa_create_zio_taskqs (in zfs) (spa.c:972)<br />
spa_activate (in zfs) (spa.c:1094)<br />
<br />
Which can be repeated for spl, and spl load address as well, if needed.<br />
<br />
And for kernel addresses, look for "kernel slide:" value, I assumed 0 in this example<br />
xcrun atos -arch x86_64 -d -o /Volumes/KernelDebugKit/mach_kernel -s 0 0xffffff8000222f79 0xffffff80002dc24e 0xffffff80002f3746 <br />
<br />
<br />
<br />
If you are not panicking, but would like to print the stack at a certain point in the kext, you can use<br />
<br />
OSReportWithBacktrace("I am here: vp %p\n", vp);<br />
<br />
in `printf` style notation.<br />
<br />
<br />
=== Best effort for M1 (arm64) ===<br />
<br />
<br />
# xcrun llvm-objdump --disassemble --arch arm64e /Library/Extensions/zfs.kext/Contents/MacOS/zfs|head<br />
/Library/Extensions/zfs.kext/Contents/MacOS/zfs:<br />
(__TEXT_EXEC,__text) section<br />
_atomic_cas_ptr:<br />
94000: 02 fc e1 c8 casal x1, x2, [x0]<br />
<br />
org.openzfsonosx.zfs(2.1)[0BF8CB05-9B3B-3182-8DE6-AF14261D75B8]@ 0xfffffe0022410000->0xfffffe00226fffff<br />
0xfffffe0022410000 - 0x94000 = 0xFFFFFE0022388000<br />
<br />
lr: 0xfffffe002348abe4 fp: 0xfffffe3feaf526f0<br />
lr: 0xfffffe002348a9c8 fp: 0xfffffe3feaf52760<br />
<br />
# atos -o module/os/macos/zfs/zfs -arch arm64e -l 0xFFFFFE0022388000 0xfffffe002348abe4 0xfffffe002348a9c8 ....<br />
<br />
=== Alternate symbol lookup with lldb ===<br />
<br />
Panic:<br />
panic(cpu 5 caller 0xffffff80088d1066): trying to interlock destroyed mutex (0xffffff8029196000)<br />
Backtrace (CPU 5), Frame : Return Address<br />
0xffffff81f49fba80 : 0xffffff8008822fa9 <br />
0xffffff81f49fbb00 : 0xffffff80088d1066 <br />
0xffffff81f49fbb10 : 0xffffff800889c75e <br />
0xffffff81f49fbbe0 : 0xffffff80088ae60c <br />
0xffffff81f49fbc00 : '''0xffffff7f8a4252e0'''<br />
0xffffff81f49fbdf0 : 0xffffff80089ffea9 <br />
net.lundman.zfs(1.0)[0EC79B06-3C9F-3529-8450-42222507F310]@'''0xffffff7f8a33c000'''->0xffffff7f8a545fff<br />
<br />
Assuming you have the same build as panic report, in this case 1.2.7<br />
# lldb<br />
(lldb) target create --no-dependents --arch x86_64 module/zfs/zfs #Binary before moved into zfs.kext<br />
(lldb) target modules load --file zfs __TEXT '''0xffffff7f8a33c000'''<br />
(lldb) image lookup --verbose --address '''0xffffff7f8a4252e0'''<br />
<br />
Address: zfs[0x00000000000e92e0] (zfs.__TEXT.__text + 950160)<br />
Summary: zfs`zfs_vnop_pageout + 1264 at zfs_vnops_osx.c:1236<br />
Module: file = "/Users/lundman/x/zfs/module/zfs/zfs", arch = "x86_64"<br />
CompileUnit: id = {0x00000000}, file = "/Users/lundman/x/zfs/module/zfs/zfs_vnops_osx.c", language = "c89"<br />
'''LineEntry''': [0xffffff7f8a4252da-0xffffff7f8a4252f0): /Users/lundman/x/zfs/module/zfs/'''zfs_vnops_osx.c:1236'''<br />
<br />
zfs_vnops_osx.c:1236<br />
tx = dmu_tx_create(zfsvfs->z_os);<br />
dmu_tx_hold_write(tx, zp->z_id, off, len);<br />
'''dmu_tx_hold_bonus(tx, zp->z_id);'''<br />
err = dmu_tx_assign(tx, TXG_NOWAIT);<br />
<br />
Or just for the kernel<br />
<br />
(lldb) target create --no-dependents --arch x86_64 mach_kernel<br />
(lldb) target modules load --file mach_kernel --slide 0x000000000b600000<br />
(lldb) image lookup -a 0xffffff800b8d6aa7<br />
<br />
=== Kernel to Userland ===<br />
<br />
Connect to crashed kernel:<br />
<br />
# Load the compiled binary, just makes it easier for lldb to find it when connecting<br />
(lldb) target create --no-dependents --arch x86_64 module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs <br />
Current executable set to 'module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs' (x86_64).<br />
# Connect to crashed VM<br />
(lldb) kdp-remote 172.16.248.128<br />
Version: Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/DEVELOPMENT_X86_64; UUID=12647AE2-57FB-35DB-AF57-4B25D060D845; stext=0xffffff802f200000<br />
<br />
In this case we have died when trying to copyinstr() from userland:<br />
<br />
(lldb) up<br />
frame #1: 0xffffff7f8db91238 zfs`history_str_get(zc=0xffffff90a8dec000) at zfs_ioctl.c:295:6<br />
292 return (NULL);<br />
293<br />
294 buf = kmem_alloc(HIS_MAX_RECORD_LEN, KM_SLEEP);<br />
-> 295 if (copyinstr((void *)(uintptr_t)zc->zc_history,<br />
296 buf, HIS_MAX_RECORD_LEN, NULL) != 0) {<br />
297 history_str_free(buf);<br />
298 return (NULL);<br />
(lldb) p zc->zc_history<br />
(uint64_t) $1 = 4413168320<br />
<br />
Find the task ptr for userprocess, a few ways;<br />
<br />
(lldb) showproc 0xffffff804afb3700<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showpid 687<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showprocinfo 0xffffff804afb3700<br />
Process 0xffffff804afb3700<br />
name zpool<br />
pid:687 task:0xffffff803bb76498 p_stat:2 parent pid: 686<br />
Cred: euid 0 ruid 0 svuid 0<br />
Flags: 0x4006<br />
0x00000002 - has a controlling tty<br />
0x00000004 - process is 64 bit<br />
0x00004000 - process has called exec<br />
<br />
You can view user process threads:<br />
<br />
(lldb) showtaskuserstacks 0xffffff803bb76498<br />
Process: zpool [687]<br />
Path: zpool<br />
Identifier: zpool<br />
Version: ??? (???)<br />
Code Type: X86-64 (Native)<br />
Parent Process: bash [686]<br />
<br />
Date/Time: 2020-05-08 09:20:50.000 -0800<br />
OS Version: Mac OS X 10.8 (18G103)<br />
Report Version: 8<br />
<br />
Exception Type: n/a<br />
Exception Codes: n/a<br />
Crashed Thread: 0<br />
<br />
Application Specific Information:<br />
Synthetic crash log generated from Kernel userstacks<br />
<br />
Binary Images:<br />
Unknown dyld all_image_infos version number 15<br />
0x10efd9000 - 0x10f018fff zpool <br />
(??? - ???) <7234AC69-6CE8-321D-9ACC-4F73BB964650> /Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool<br />
<br />
[snip]<br />
<br />
Create a gdb-server to debug zpool process:<br />
<br />
(lldb) beginusertaskdebugging 0xffffff803bb76498<br />
Starting debug session for zpool at localhost:7936.<br />
<br />
From another shell, start to debug the zpool process, <br />
using the convenience wrapper script:<br />
All it does is run "lldb zpool" after setting DYLD_LIBRARY_PATH so you can<br />
run it in the build directory.<br />
<br />
± ./scripts/debug-macos.sh zpool<br />
(lldb) target create "/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool"<br />
Current executable set to '/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool' (x86_64).<br />
(lldb) gdb-remote localhost:7936<br />
Process 687 stopped<br />
* thread #1, stop reason = signal SIGINT<br />
frame #0: 0x00007fff63fbfb5a libsystem_kernel.dylib<br />
-> 0x7fff63fbfb5a: jae 0x7fff63fbfb64<br />
0x7fff63fbfb5c: movq %rax, %rdi<br />
0x7fff63fbfb5f: jmp 0x7fff63fbf421<br />
0x7fff63fbfb64: retq<br />
<br />
(lldb) up<br />
frame #6: 0x000000010efdc434 zpool`zpool_export_one(zhp=0x00007ff51440b750, data=0x00007ffee0c25718) at zpool_main.c:1706:13<br />
1703 if (cb->hardforce) {<br />
1704 if (zpool_export_force(zhp, history_str) != 0)<br />
1705 return (1);<br />
-> 1706 } else if (zpool_export(zhp, cb->force, history_str) != 0) {<br />
1707 return (1);<br />
1708 }<br />
1709<br />
(lldb) p history_str<br />
(char [2049]) $0 = "zpool export BOOM"<br />
<br />
=== Links ===<br />
<br />
https://developer.apple.com/library/mac/qa/qa1264/_index.html<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABDGEGF<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man8/kext_logging.8.html</div>Lundmanhttps://openzfsonosx.org/wiki/WindowsWindows2023-02-03T01:57:59Z<p>Lundman: /* OpenZFS on Windows */</p>
<hr />
<div><br />
== OpenZFS on Windows ==<br />
<br />
The old port '''ZFSin''' is slowly being replaced by a more proper '''OpenZFS''' port,<br />
as the first was a fast proof-of-concept demo and now we are taking the time to<br />
port it properly with upstream integration in mind.<br />
<br />
If you are here to test it, get latest OpenZFS from nightly.<br />
<br />
The OpenZFS port on Windows.<br />
<br />
Current status: ''beta release candidate''<br />
Latest Download: https://github.com/openzfsonwindows/openzfs/releases<br />
Sources: https://github.com/openzfsonwindows/openzfs.git<br />
<br />
=== Documentation ===<br />
<br />
* Creating a [[windows_pool|Windows pool]]<br />
* Handling [[windows_driveletter|Driveletters]]<br />
* [[Windows_Registry|Registry]]<br />
* Using [[windows_kstat|kstat]]<br />
* Automatic pool [[windows_import|import]]<br />
* Running zfs-tests [[windows_zfstest|zfstest]]<br />
<br />
=== Downloads ===<br />
<br />
Currently we are doing releases on github.com, so use:<br />
<br />
* [https://github.com/openzfsonwindows/ZFSin/releases Downloads]<br />
* [[windows_builds|Nightly builds]]<br />
<br />
=== Crash dump analysis ===<br />
<br />
* [[Windows_BSOD|Windows minidumps]]<br />
* [[Windows_bootloop|Windows boot-loop]]<br />
<br />
=== Porting notes ===<br />
<br />
* Read the notes on porting to [[Windows_port|Windows]]<br />
<br />
<br />
=== Codesigning ===<br />
<br />
* [[Codesign]]</div>Lundmanhttps://openzfsonosx.org/wiki/WindowsWindows2023-02-03T01:57:32Z<p>Lundman: </p>
<hr />
<div><br />
== OpenZFS on Windows ==<br />
<br />
The old port '''ZFSin''' is slowly being replaced by a more proper '''OpenZFS''' port,<br />
as the first was a fast proof-of-concept demo and now we are taking the time to<br />
port it properly with upstream integration in mind.<br />
<br />
If you are here to test it, get latest ZFSin from nightly.<br />
<br />
The OpenZFS port on Windows.<br />
<br />
Current status: ''beta release candidate''<br />
Latest Download: https://github.com/openzfsonwindows/openzfs/releases<br />
Sources: https://github.com/openzfsonwindows/openzfs.git<br />
<br />
=== Documentation ===<br />
<br />
* Creating a [[windows_pool|Windows pool]]<br />
* Handling [[windows_driveletter|Driveletters]]<br />
* [[Windows_Registry|Registry]]<br />
* Using [[windows_kstat|kstat]]<br />
* Automatic pool [[windows_import|import]]<br />
* Running zfs-tests [[windows_zfstest|zfstest]]<br />
<br />
=== Downloads ===<br />
<br />
Currently we are doing releases on github.com, so use:<br />
<br />
* [https://github.com/openzfsonwindows/ZFSin/releases Downloads]<br />
* [[windows_builds|Nightly builds]]<br />
<br />
=== Crash dump analysis ===<br />
<br />
* [[Windows_BSOD|Windows minidumps]]<br />
* [[Windows_bootloop|Windows boot-loop]]<br />
<br />
=== Porting notes ===<br />
<br />
* Read the notes on porting to [[Windows_port|Windows]]<br />
<br />
<br />
=== Codesigning ===<br />
<br />
* [[Codesign]]</div>Lundmanhttps://openzfsonosx.org/wiki/File:OpenZFS_on_OS_X_2.1.6.dmgFile:OpenZFS on OS X 2.1.6.dmg2022-12-07T09:38:01Z<p>Lundman: </p>
<hr />
<div></div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2022-12-07T07:29:45Z<p>Lundman: /* Installer */</p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3743 Individual PKG installers]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-01|Changelog]]<br />
file size: 268435456<br />
md5: 6acb8b52c5f383e6ecb9cef0a34ee2cb<br />
sha256: b8b7f412b4665ce9fb81c22ceb134deca06741d604e386ba954fa2884501d273<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2022-12-07T07:27:47Z<p>Lundman: /* 2.1.6 */</p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-01|Changelog]]<br />
file size: 268435456<br />
md5: 6acb8b52c5f383e6ecb9cef0a34ee2cb<br />
sha256: b8b7f412b4665ce9fb81c22ceb134deca06741d604e386ba954fa2884501d273<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2022-12-07T07:18:03Z<p>Lundman: /* 2.1.6 */</p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-01|Changelog]]<br />
file size: 2684354560<br />
md5: 8caafcd50e84d8f2c1bdbb100690487a<br />
sha256: cfb9b274c74c8d36a5b3a85529214ce976f89ca8dccffa56a5898edfc274932c<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/DownloadsDownloads2022-12-07T07:17:43Z<p>Lundman: </p>
<hr />
<div><div class="noautonum">__TOC__</div><br />
== Installer ==<br />
<br />
=== 2.1.6 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_2.1.6.dmg|OpenZFS_on_OS_X_2.1.6.dmg]] 2022-12-07<br />
[[Changelog#OpenZFS_on_OS_X_2.1.6_2022-12-05|Changelog]]<br />
file size: 2684354560<br />
md5: 8caafcd50e84d8f2c1bdbb100690487a<br />
sha256: cfb9b274c74c8d36a5b3a85529214ce976f89ca8dccffa56a5898edfc274932c<br />
<br />
=== 2.1.0 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3619 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.1.0_2021-08-21|Changelog]]<br />
<br />
=== 2.0.1 ===<br />
<br />
[https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3569&p=11206#p11206 Download PKG installer]<br />
[[Changelog#OpenZFS_on_OS_X_2.0.1_2021-05-27|Changelog]]<br />
<br />
=== 1.9.4 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.4.dmg|OpenZFS_on_OS_X_1.9.4.dmg]] 2020-02-29<br />
[[Changelog#OpenZFS_on_OS_X_1.9.4_2020-02-29|Changelog]]<br />
file size: 83886080<br />
md5: 86ed3010b6e5d41394f99cd04a2a1508<br />
sha256: 4dc027cec9cb2fcbf572c1dfe5b1a31f0e14d3f55f1b4f8787903f8332db838b<br />
<br />
=== 1.9.3.1 ===<br />
<br />
Due to the kext retaining the same version as the kexts in the 1.9.2 release, there has been some difficulty<br />
installing 1.9.3 - as it requires users to uninstall, reboot, then install 1.9.3. This is a minor<br />
fix that only updates the kext version numbers to be unique. <br />
If you already have 1.9.3 installed, you do not need this version.<br />
If you are looking to install 1.9.3, you might as well download 1.9.3.1 and it might<br />
make the install easier. <br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.1.dmg|OpenZFS_on_OS_X_1.9.3.1.dmg]] 2019-11-11<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: 13c492f666257dff56e0f45637b82902<br />
sha256: 8ba738c90445194dc8c8cdb69af8dce8e54b62a1068c7d3c08ccc37ab6722d5e<br />
<br />
=== 1.9.3 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.3.dmg|OpenZFS_on_OS_X_1.9.3.dmg]] 2019-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.9.3_2019-10-30|Changelog]]<br />
file size: 73400320<br />
md5: fde38f969cb19e9c98b1c4a9cd197821<br />
sha256: 926e7c17d9b798dc176d4927083c921a8b7ef32952f90a40d26391c1ecdcb6bd<br />
<br />
If upgrading '''from 1.9.2''', it is required you uninstall and reboot, before installing<br />
1.9.3. We apologise for this inconvenience. Older versions than 1.9.2 will install<br />
as expected.<br />
<br />
=== 1.9.2 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_REPACK_Catalina.pkg]] 2019-10-09 Recompiled with -fno-stack-check.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.2.dmg|OpenZFS_on_OS_X_1.9.2.dmg]] 2019-08-01<br />
[[Changelog#OpenZFS_on_OS_X_1.9.2_2019-08-01|Changelog]]<br />
file size: 73400320<br />
md5: fc82968e7a705e42ec2e0981f1037fb2 OpenZFS_on_OS_X_1.9.2.dmg<br />
sha256: 125cfe675b6c65518184534f4822e44b3e59874e18828a35367d2467ce801d08 OpenZFS_on_OS_X_1.9.2.dmg<br />
<br />
( [[Media:OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg|OpenZFS_on_OS_X_1.9.2_Boot_REPACK_Catalina.pkg]] 2019-10-26 Fixes for ZFS-on-Boot support - UPDATED )<br />
<br />
=== 1.9.0 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.9.0.dmg|OpenZFS_on_OS_X_1.9.0.dmg]] 2019-05-28<br />
[[Changelog#OpenZFS_on_OS_X_1.9.0_2019-05-28|Changelog]]<br />
file size: 73400320<br />
md5: fe9ea80668f39066c9cc58364b369b9d OpenZFS_on_OS_X_1.9.0.dmg<br />
sha256: a6b05d29e9ae1f313e642109d18da6d930b1991bcd24c5f91ecc6a64bdc130fc OpenZFS_on_OS_X_1.9.0.dmg<br />
<br />
=== 1.8.2 === <br />
<br />
Read Changelog please.<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.2.dmg|OpenZFS_on_OS_X_1.8.2.dmg]] 2018-10-30<br />
[[Changelog#OpenZFS_on_OS_X_1.8.2_2018-10-30|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : 8cb4e125bc78ae4374f9bd27ea9f8613<br />
sha256 : d1f23704127e22ead62972ba668d3dfce0718b9f7ee1092dec014244eff73f61<br />
<br />
=== 1.8.1 ===<br />
<br />
[[Media:OpenZFS_on_OS_X_1.8.1.dmg|OpenZFS_on_OS_X_1.8.1.dmg]] 2018-10-18<br />
[[Changelog#OpenZFS_on_OS_X_1.8.1_2018-10-18|Changelog]]<br />
file size : 62914560 bytes<br />
md5 : e049dffde67167d9dd8f1b8648e6c6f5<br />
sha256 : 6faebbb38ff46ff3ac250ddbfc5f1f69cd2b7cd494bec1c3f43e4107da6801fa<br />
<br />
=== 1.8.0 BETA ===<br />
Forum BETA release only.<br />
[[Changelog#OpenZFS_on_OS_X_1.8.0_2018-10-05|Changelog]]<br />
file size : 62914560<br />
md5 : 56a248bfa9a8722f762ebb18b0e6c8c1<br />
sha256 : 35358fca7217f3a9107f80e5cd45a3d765f7321c635d40351ddccd40e6c0073d<br />
<br />
=== 1.7.4 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3200<br />
[[Changelog#OpenZFS_on_OS_X_1.7.4_BETA_2018-09-13|Changelog]]<br />
<br />
=== 1.7.3 BETA ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3155<br />
[[Changelog#OpenZFS_on_OS_X_1.7.3_BETA_2018-04-03|Changelog]]<br />
file size : 7506433 bytes<br />
md5 : 85622a927be744470002b882f4aa71cc<br />
sha1 : de2bc2898e5a42b2e29cbbb3df9592a2516e8a33<br />
sha256 : 712d0701539ef6a6b79213ad98fd919be27ea44221826e92fc23b9ebbd4472dc<br />
<br />
=== 1.7.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.2.dmg|OpenZFS_on_OS_X_1.7.2.dmg]] 2018-03-24<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-24|Changelog]]<br />
file size : 45106930 bytes<br />
md5 : cea54c5aabacc133fca4c8de6f687078<br />
sha1 : ba1e96ecf360aa8b4223d6b409db994920613bcd<br />
sha256 : b2deddbd0cf899db99c3c4dbd449101a881c744d3e2ab2c1f8bd6637296601ad<br />
<br />
=== 1.7.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.7.1.dmg|OpenZFS_on_OS_X_1.7.1.dmg]] 2018-03-13<br />
[[Changelog#OpenZFS_on_OS_X_1.7.1_2018-03-13|Changelog]]<br />
file size : 42390242 bytes<br />
md5 : 1b434044c39801e0fbd389cba02eb63e<br />
sha1 : 3000b1dff909cfc24c3021afe8577b2c76cd94e9<br />
sha256 : 49c6bb76f8ba9196f9c3ea34d0f7adce8db643c4c4a3d0280a22e614d02ac3f0<br />
<br />
=== 1.7.0 ===<br />
Download here: https://openzfsonosx.org/forum/viewtopic.php?f=20&t=3082<br />
[[Changelog#OpenZFS_on_OS_X_1.7.0_2017-10-24|Changelog]]<br />
file size : 7019005 bytes<br />
md5 : 4acc4b47fd9a36a228ce0c02e8358153<br />
sha1 : dea0253a0417694e671cf31c5353f796719c1dd3<br />
sha256 : 9826e2b8fc3319421f2def81e5df04c213eb4a32fa1fec4586ceb2ed93db25c6<br />
<br />
=== 1.6.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.6.1.dmg|OpenZFS_on_OS_X_1.6.1.dmg]] 2017-02-10<br />
[[Changelog#OpenZFS_on_OS_X_1.6.1.dmg_2017-02-10|Changelog]]<br />
file size : 32480434 bytes<br />
md5 : ea730c3c08b6eb85a1c48ed5c781bb54<br />
sha1 : 500418f24081dedfbb30bdd4f00af4e6de3434f5<br />
sha256 : 126ce9215ec060b2eb60db0609b29acad334f0d1c30c5ef2ab97cb251f374c39<br />
<br />
=== 1.5.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.5.2.dmg|OpenZFS_on_OS_X_1.5.2.dmg]] 2016-04-29<br />
[[Changelog#OpenZFS_on_OS_X_1.5.2.dmg_2016-04-29|Changelog]]<br />
file size : 22490701 bytes<br />
md5 : f3b82dd439a87f2b7387995952b5723a<br />
sha1 : 48d1067d1f42e495c3bc747d652e474b1cefc121<br />
sha256 : 185d20242bacd14cd609ccfb8f89736e1ea0ca6dec6475fd9eb7703c17ab5413<br />
<br />
=== 1.4.5 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.5.dmg|OpenZFS_on_OS_X_1.4.5.dmg]] 2015-10-19<br />
[[Changelog#OpenZFS_on_OS_X_1.4.5.dmg_2015-10-19|Changelog]]<br />
file size : 21063530 bytes<br />
md5 : 3db03baf69d43e4a01ffc799abb36ce4<br />
sha1 : 3742703ab7b044ed6fb46e0c931816d55379c51b<br />
sha256 : 9ad0b21bc54c5453a90427d478533f530ff9bb98744d17f2fcb127a81af18169<br />
<br />
=== 1.4.2 ===<br />
[[Media:OpenZFS_on_OS_X_1.4.2.dmg|OpenZFS_on_OS_X_1.4.2.dmg]] 2015-09-24<br />
[[Changelog#OpenZFS_on_OS_X_1.4.2.dmg_2015-09-24|Changelog]]<br />
file size : 16009726 bytes<br />
md5 : f1a1768fdfe9aea79942e481352a79c7<br />
sha1 : ef97bd3f3216c29a7f371b96523676d2bc2ab410<br />
sha256 : 189fc9bfe231cf51b65dac2665cecb65f632979fd13bcafa3f4e3b486880237f<br />
<br />
=== 1.3.1-r2 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1-r2.dmg|OpenZFS_on_OS_X_1.3.1-r2.dmg]] 2015-04-08<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1-r2.dmg_2015-04-08|Changelog]]<br />
file size : 10869017 bytes<br />
md5 : 7d5e78e842b2c98f82379ff673551fca<br />
sha1 : b5a0ef2d1c3b66174a1e60283abec07a5c764c83<br />
sha256 : 7d0001f318e70f7a5ee87273a1f1cc7912908677ea9565702d05282c1ebca8b8<br />
<br />
Note: Please see 1.3.1 note below regarding unlinked drain.<br />
<br />
=== 1.3.1 ===<br />
[[Media:OpenZFS_on_OS_X_1.3.1.dmg|OpenZFS_on_OS_X_1.3.1.dmg]] 2015-04-01<br />
[[Changelog#OpenZFS_on_OS_X_1.3.1.dmg_2015-04-01|Changelog]]<br />
file size : 10807672 bytes<br />
md5 : 5f9e271dd8c0e8bce8ff7a93721591dc<br />
sha1 : 6defabfb154287b39bea992fdc607866df12ee93<br />
sha256 : 05827dd562da12f2d66a28d43e1bb62070003ed69f1534f7b92222c6b003743c<br />
<br />
Note: Previous versions of O3X (1.3.0 and earlier) never processed the unlinked-drain list. We finally have support for this, but this means the very first import will finally process the unlinked-drain list. This can take quite a while.<br />
<br />
You can watch the /var/log/system.log file for progress.<br />
<br />
For example,<br />
tail -f /var/log/system.log | grep ZFS<br />
<br />
Current record is about 8 million records, which took 2 hours.<br />
<br />
=== 1.3.1-RC5 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2147<br />
<br />
=== 1.3.1-RC4 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2131<br />
<br />
=== 1.3.1-RC3 ===<br />
Forum build:<br />
https://openzfsonosx.org/forum/viewtopic.php?f=20&t=2123<br />
<br />
=== 1.3.0 ===<br />
<br />
[[Media:OpenZFS on OS X 1.3.0.dmg|OpenZFS on OS X 1.3.0.dmg]] 2014-07-24<br />
[[Changelog#OpenZFS_on_OS_X_1.3.0.dmg_2014-07-24|Changelog]]<br />
file size : 10570082 bytes<br />
md5sum : 34938fb69d2d43b461f268c739f7e100<br />
sha1sum : 3a53187c214db95ac72919f3f3952f96c55a27b7<br />
sha256sum : a0030181a91ecace2d31cfab26d10b2284602e2b442f71a344a9da11165cb6c7<br />
<br />
=== 1.2.7 ===<br />
<br />
OS X Yosemite compatible!<br />
[[Media:OpenZFS on OS X 1.2.7.dmg|OpenZFS on OS X 1.2.7.dmg]] 2014-05-15<br />
[[Changelog#OpenZFS_on_OS_X_1.2.7.dmg_2014-05-15|Changelog]]<br />
file size : 12731205 bytes<br />
md5sum : 622d3151d1f0239f29617a9184a43304<br />
sha1sum : 39663423b3be86297ee83fe8ffc05d879b911f73<br />
sha256sum : 6b7fff2f54e29ca95ac003e22c962a94f29afb9d9cb52be4995337a5e53038fe<br />
<br />
=== 1.2.0 ===<br />
[[Media:OpenZFS on OS X 1.2.0.dmg|OpenZFS on OS X 1.2.0.dmg]] 2014-03-13 <br />
file size : 15029124 bytes<br />
md5sum : 1da051edf6f32c6ddd8e172262cb902e<br />
sha1sum : 069a16c1823c8498094cd402c7de430f9ac966a7<br />
sha256sum : 94f0da31bf73de8ff5205299449789b7bbb751808e94770f9ee3e5d86b99fb31</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-12-07T06:31:41Z<p>Lundman: </p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
Practicing proper release cycle instead, get into habit of doing things correctly.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.6rc2.exe 2022/12/07 zfswin-2.1.6 release candidate 2 (fix gcm)<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.6rc1.exe 2022/12/05 zfswin-2.1.6 release candidate 1<br />
<br />
Consider the one below rc0 maybe ?<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.6.exe 2022/10/24 zfswin-2.1.6 release<br />
NOTE: This release contains assembler versions of aes, pclmulqdq, sha, aesNI. Extra caution is suggested (save your work!)<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1757-gf303ba2af9-dirty.exe 2022/10/06 Testing ZOL-2.1.6, updated<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1624-g27e584dab7-dirty.exe 2022/09/14 Testing ZOL-2.1.6<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1022-ga8162d01f-dirty.exe 2022/08/29 try unmount/export fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
none at the moment<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-12-05T02:35:54Z<p>Lundman: </p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
Practicing proper release cycle instead, get into habit of doing things correctly.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.6rc1.exe 2022/12/05 zfswin-2.1.6 release candidate 1<br />
<br />
Consider the one below rc0 maybe ?<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.6.exe 2022/10/24 zfswin-2.1.6 release<br />
NOTE: This release contains assembler versions of aes, pclmulqdq, sha, aesNI. Extra caution is suggested (save your work!)<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1757-gf303ba2af9-dirty.exe 2022/10/06 Testing ZOL-2.1.6, updated<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1624-g27e584dab7-dirty.exe 2022/09/14 Testing ZOL-2.1.6<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1022-ga8162d01f-dirty.exe 2022/08/29 try unmount/export fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
none at the moment<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-12-05T02:35:09Z<p>Lundman: /* Fully code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
Practicing proper release cycle instead, get into habit of doing things correctly.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.6rc1.exe 2022/12/05 zfswin-2.1.6 release candidate 1<br />
<br />
Consider this rc0 ?<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.6.exe 2022/10/24 zfswin-2.1.6 release<br />
NOTE: This release contains assembler versions of aes, pclmulqdq, sha, aesNI. Extra caution is suggested (save your work!)<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1757-gf303ba2af9-dirty.exe 2022/10/06 Testing ZOL-2.1.6, updated<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1624-g27e584dab7-dirty.exe 2022/09/14 Testing ZOL-2.1.6<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1022-ga8162d01f-dirty.exe 2022/08/29 try unmount/export fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/06/09 add oplock support<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/05/26 2 crash fixes <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1000-g6c3ad4612-dirty.exe 2022/05/25 Partition fix! <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/ChangelogChangelog2022-12-01T02:40:51Z<p>Lundman: </p>
<hr />
<div>=== OpenZFS_on_OS_X_2.1.6 2022-12-01 ===<br />
<br />
* NFS fixes<br />
* New tunables system, parity with upstream<br />
* Persistent L2ARC fixes<br />
* Update lz4<br />
* Update zstd<br />
* Cross platform xattr namespace<br />
* log xattrs to ZIL<br />
* Add blake3 checksum<br />
* sorted scrub optimizations<br />
* B-tree optimizations<br />
* per dataset zil stats<br />
* better M1/ARM64 support<br />
<br />
=== OpenZFS_on_OS_X_2.1.0 2021-08-21 ===<br />
<br />
* Add missing cmd zsysctl<br />
* Add missing cmd mount_zfs<br />
* Attempt to reduce scrub stack usage (panic with dsl_scan_visitbp)<br />
* taskq_cancel_id() fixes (panic vdev_deadman, spa_update)<br />
* purgevfs can deadlock<br />
* xattr re-implementation from Linux. Affects going from "on" to "sa" and back.<br />
* Handle zpool-in-zvol, would deadlock.<br />
* kextunload block/leak fix<br />
* Long filenames would panic<br />
* Many fixes with automount snapshots.<br />
* dirlink count to match upstream. (count dir, and dir+files)<br />
* Fix libcurl.4.dylib use for encryption file location<br />
* Fix linkid with lookup for Finder<br />
* send/recv fixes<br />
* autoimport fix<br />
* zfs_resume_fs fix (zfs recv -F)<br />
* zvol_replay panic fix<br />
* zvol rename could sometimes be left "busy"<br />
* split stacks - detect low stack space, and work around it<br />
* Sub-PAGESIZE abd work, performance<br />
* zvol IO can overflow the stack (M1)<br />
* encrypted zvol clones did not get /dev/diskX<br />
* zfs_replay could panic with NULL kcred<br />
* update undo of decmpfs<br />
<br />
=== OpenZFS_on_OS_X_2.0.1 2021-05-27 ===<br />
<br />
* new port<br />
* zfs send / zfs recv rewritten to use pipes.<br />
* mimic changes (use "com.apple.mimic=hfs" instead of "on/off".)<br />
* automatic mounting of snapshots<br />
* zstd compression<br />
* user/group object quotas<br />
* device_rebuild<br />
* draid vdev-type<br />
<br />
=== OpenZFS_on_OS_X_1.9.4 2020-02-29 ===<br />
<br />
* Reserved inode numbers avoided (Catalina, spotlight might need to reindex)<br />
* Dedup fixes<br />
* vnode_renamex feature (Catalina)<br />
* .zfs/snapshot work for Finder<br />
<br />
=== OpenZFS_on_OS_X_1.9.3 2019-10-30 ===<br />
<br />
* Catalina fixes (decmpfs corrections)<br />
* Disable use of volume icons<br />
* ZFS Boot fixes<br />
<br />
=== OpenZFS_on_OS_X_1.9.2 2019-08-01 ===<br />
<br />
* skip AVX512 vectorised functions (panic on modern CPUs)<br />
* include Mavericks.pkg<br />
* zfs rename could cause core dumps/abort<br />
<br />
-1.9.1-<br />
* zfs commands "lost error messages"<br />
* zfs raw recv fix<br />
* zfs spill block recv fix<br />
* ZoL vectorized raidz / assembler for fletcher/aes port<br />
* zfs send deadlock in bqueue<br />
<br />
Notarize can sometimes give installation error "kextcache code=71". Reason is unknown, but install<br />
completes successfully.<br />
<br />
Clicking "Allow" button to load the KEXT starting from version 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.9.0 2019-05-28 ===<br />
<br />
* zpool sync command, remove system sync, for performance.<br />
* Sequential scrub and resilvers<br />
* Multi-modifier protection (MMP)<br />
* Disable 'zfs remap' command<br />
* Pool allocation classes<br />
* Implement large_dnode pool feature<br />
* zfs initialize disk feature<br />
* Add UNMAP/TRIM functionality<br />
* zpool split fixes.<br />
* Random unmount failures fix<br />
* async zget<br />
* RAW send fixes<br />
* Memory leak fixes (acl, chmod, xattr)<br />
* Add -o/-x to send properties<br />
* Allow -o feature=disabled on zpool create<br />
* defer resilver<br />
* send lost spill blocks fix<br />
* async unlinked drain feature<br />
<br />
This release contains new pool features. If you run "zpool upgrade", you will not<br />
be able to go back to an older version of O3X.<br />
<br />
Notarize can sometimes give installation error "kextcache code=71". Reason is unknown, but install<br />
completes successfully.<br />
<br />
This will be the last official release for 10.8 and 10.9. <br />
<br />
Clicking "Allow" button to load the KEXT starting from version 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.8.2 2018-10-30 ===<br />
<br />
If you have 1.8.1 installed:<br />
Ok to Skip: OS X 10.12 (Sierra), OS X 10.13 (High Sierra), OS X 10.14 (Mojave).<br />
Please update: OS X 10.8 (Mountain Lion), OS X 10.9 (Mavericks), OS X 10.10 (Yosemite), OS X 10.11 (El Capitan).<br />
<br />
* Fix InvariantDisk core ''(OpenZFSOnOSX Team)''<br />
<br />
Due to compilation error, InvariantDisks for OS X 10.8 - 10.11 will<br />
continuously crash when started by launchctl. The 1.8.2 version<br />
is only to address this problem.<br />
<br />
The DMG is named 1.8.2 to make sure fresh downloads are used. Inside it is 1.8.1 recompiled.<br />
<br />
=== OpenZFS_on_OS_X_1.8.1 2018-10-18 ===<br />
<br />
* Fix Mojave boot, again ''(OpenZFSOnOSX Team)''<br />
* Feature: Channel Programs ''(OpenZFS Team)''<br />
<br />
Clicking "Allow" button to load the KEXT starting from version 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.8.0 2018-10-05 ===<br />
<br />
FORUM only release due to boot issues with Mojave.<br />
<br />
* Fix renaming of "/etc/zfs/zpool.cache.tmp" ''(OpenZFSOnOSX Team)''<br />
* Fix encryption panic ''(ZFSonLinux Team)''<br />
<br />
=== OpenZFS_on_OS_X_1.7.4 BETA 2018-09-13 ===<br />
<br />
* Mojave boot panic fix ''(OpenZFSOnOSX Team)''<br />
* Memory and mutex leaks ''(OpenZFS Team)''<br />
* dbuf slowdown fix ''(OpenZFSOnOSX Team)''<br />
* Fix encryption + cache bug ''(OpenZFSOnOSX Team)''<br />
* Raw receive fixes ''(ZFSonLinux Team)''<br />
* Device Removal feature ''(OpenZFS Team)''<br />
* Assembler sha/aes use ''(OpenZFSOnOSX Team)''<br />
* Storage Initialise feature ''(OpenZFS Team)''<br />
* Spaceman V2 feature ''(OpenZFS Team)''<br />
<br />
Clicking "Allow" button to load the KEXT starting at 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.3 BETA 2018-04-03 ===<br />
<br />
* Test: Creation of pseudo /dev/diskX for mounts ''(OpenZFSOnOSX Team)''<br />
* Add new property com.apple.devdisk to control pseudo disks, default is pool-only <br />
* High Sierra only release<br />
* Various raw-send fixes ''(ZFSOnLinux Team)''<br />
* spa_deadman support for hung IO ''(OpenZFSOnOSX Team)''<br />
<br />
* zfs crypto + cachedevice is known to cause panics. Please avoid using a cache device if you use zfs crypto for now.<br />
<br />
Clicking "Allow" button to load the KEXT on 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.2 2018-03-24 ===<br />
<br />
* 7614 zfs device evacuation/removal ''(OpenZFS Team)''<br />
* 9164 assert: newds == os->os_dsl_dataset ''(OpenZFS Team)''<br />
* Revert "Implement VNOP_ALLOCATE" ''(OpenZFSOnOSX Team)''<br />
* Must check return of vnode_getwithvid() ''(OpenZFSOnOSX Team)''<br />
* Clean up vdev_file to hold on to the files ''(OpenZFSOnOSX Team)''<br />
* Do not rely on ubc_upl_map leaving vaddr as NULL on failures ''(OpenZFSOnOSX Team)''<br />
* Additional bug fixes ''(OpenZFS Team)''<br />
<br />
* zfs crypto + cachedevice is known to cause panics. Please avoid using a cache device if you use zfs crypto for now.<br />
<br />
Clicking "Allow" button to load the KEXT on 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.1 2018-03-13 ===<br />
<br />
* crypto on disk fixes for --raw send ''(ZFSOnLinux Team)''<br />
* sharenfs bug fix ''(OpenZFSOnOSX Team)''<br />
* zdb core dump fix ''(OpenZFSOnOSX Team)''<br />
* NFS permission denied fix ''(OpenZFSOnOSX Team)''<br />
* Handle HFS decmpfs compression ''(OpenZFSOnOSX Team)''<br />
* Correct readonly media import ''(OpenZFSOnOSX Team)''<br />
* Fix online -e with by-id path ''(OpenZFSOnOSX Team)''<br />
* Additional bug fixes ''(OpenZFS Team)''<br />
<br />
* zfs crypto + cachedevice is known to cause panics. Please avoid using a cache device if you use zfs crypto for now.<br />
<br />
Clicking "Allow" button to load the KEXT on 10.13 can't be done over remote connections (VNC), but must<br />
be done on local console.<br />
<br />
=== OpenZFS_on_OS_X_1.7.0 2017-10-24 ===<br />
<br />
* ABD support ''(OpenZFS)''<br />
* File pool import bug fix ''(Jorgen Lundman)''<br />
* ABD move enhancement ''(Sean Doran)''<br />
* 7968 multi-threaded spa_sync ''(OpenZFS)''<br />
* Native Encryption ''(Tom Caputi)''<br />
* zpool scrub pause/resume ''(OpenZFS)''<br />
* zfs recv of compressed streams fix ''(OpenZFS)''<br />
* OS X High Sierra support ''(Jorgen Lundman)''<br />
<br />
and lots of small commits and bug fixes.<br />
<br />
=== OpenZFS_on_OS_X_1.6.1.dmg 2017-02-10 ===<br />
<br />
* Correct zpool events -f and similar polling tasks ''(Jorgen Lundman)''<br />
* Support 128G ram (and larger) systems ''(Jorgen Lundman)''<br />
* zfs send corrections ''(OpenZFS)''<br />
* dataset name length corrections ''(OpenZFS)''<br />
* zpool iostat enhancements ''(ZFSOnLinux)''<br />
* Compressed ARC ''(OpenZFS)''<br />
* SPL: Memory Allocator improvements ''(Sean Doran)''<br />
* 7252 compressed zfs send / receive 7628 create long versions of ZFS send / receive options ''(OpenZFS)''<br />
* ZVOL boot support (ZFS boot is not recommended at this time)<br />
* ZFS automatic sharing (NFS/SMB/AFP) feature ''(Jorgen Lundman)''<br />
* Enhance EFI partition library ''(Brendon Humphrey)''<br />
* Stop swapfiles being used for pools (!) ''(Brendon Humphrey)''<br />
* Sierra / xcode v8 compatibility work<br />
<br />
<br />
and lots of small bug fixes.<br />
<br />
=== OpenZFS_on_OS_X_1.5.2.dmg 2016-04-29 ===<br />
<br />
* New upstream checksums (with new feature flags): SHA-512, Edonr, Skein ''(OpenZFS)''<br />
* Resumable send and receive ''(OpenZFS)''<br />
* Finder notification thread to refresh sizes across datasets ''(Jorgen Lundman)''<br />
* SPL: enhanced kmem pressure system ''(rottegift)''<br />
* SPL: Rewrite TSD using AVL tree ''(Jorgen Lundman)''<br />
* Cache names in getattr ''(Jorgen Lundman)''<br />
* InvariantDisks serial fixes ''(cbreak)''<br />
* Show Hardlink LinkID fixes ''(Jorgen Lundman)''<br />
* Trivial ACLs not hidden ''(Jorgen Lundman)''<br />
* Group ACL fixes ''(Jorgen Lundman)''<br />
* IOkit deadlock on export fixes ''(Jorgen Lundman)''<br />
* MAF and deadlocks in ZVOL fixes ''(Jorgen Lundman)''<br />
* Show diskutil info on ZVOLs fix ''(Brendon Humphrey, ilovezfs)''<br />
* ZED notification fixes ''(Andreas Weinlein)''<br />
* Have automatic import always use by-id ''(Justin Scholz)''<br />
* Fix handling of XATTR_CREATE and XATTR_REPLACE ''(ilovezfs)''<br />
* Don't ignore VFS when it passes nosuid and nodev ''(ilovezfs)''<br />
* Don't use a shared lock for online expansion ''(ilovezfs)''<br />
<br />
=== OpenZFS_on_OS_X_1.4.5.dmg 2015-10-19 ===<br />
<br />
* Remove deadlock with zil_lwb_commit ''(Jorgen Lundman)''<br />
* Remove memory leak in znodes leading to beachball ''(Jorgen Lundman)''<br />
* Do not call ctldir unmount ''(Jorgen Lundman)''<br />
* xcode 7 compile fixes ''(ilovezfs)''<br />
* Adhere to SIP in installer on EC ''(ilovezfs)''<br />
<br />
=== OpenZFS_on_OS_X_1.4.2.dmg 2015-09-24 ===<br />
<br />
* correct kernel thread priorities ''(Jorgen Lundman)''<br />
* VFS nolocks rework from 10a286 ''(Jorgen Lundman)''<br />
* vnop_pageout_v2 replacement ''(Jorgen Lundman)''<br />
* Permanent Storage work, incomplete ''(Jorgen Lundman)''<br />
* mmapped file data written twice fix ''(Jorgen Lundman)''<br />
* InvariantDisks fixes ''(ilovezfs)'' ''(cbreak)''<br />
* SA corruption fixes ''(ZFSOnLinux)''<br />
* SA recover status alerts when detected ''(Jorgen Lundman)''<br />
* Modify-After-Free bugs and deadlock fixes ''(Jorgen Lundman)''<br />
* Complete Re-port of IllumOS taskq ''(Jorgen Lundman)''<br />
* Revert back to using taskq_dispatch_ent() ''(Jorgen Lundman)''<br />
* Show async unlinkeddrain ''(Jorgen Lundman)''<br />
* Remove internal unused flag XATTR ''(Brendon Humphrey)''<br />
* Additional ioctls from HFS ''(Brendon Humphrey)''<br />
* Merge with upstream ZOL<br />
<br />
=== OpenZFS_on_OS_X_1.3.2-RC1 2015-05-02 ===<br />
(Forum build)<br />
* Keep serial console debug messages ''(Jorgen Lundman)''<br />
* uiocopy failed to set direction ''(Jorgen Lundman)''<br />
* SMAP work for Broadwell chipset ''(Jorgen Lundman)''<br />
* Device removal panic fixes ''(Jorgen Lundman)''<br />
* LASTUNMOUNT property was incorrect ''(Jorgen Lundman)''<br />
* getxattr FinderInfo fixes ''(Jorgen Lundman)''<br />
<br />
=== OpenZFS_on_OS_X_1.3.1-r2.dmg 2015-04-08 ===<br />
<br />
* vnop_pagein to zero non-aligned trailing block causing clang to core ''(Jorgen Lundman)''<br />
* ADDEDTIME should updated when moved to a different directory ''(Jorgen Lundman)''<br />
* Remove vnode throttle ''(Jorgen Lundman)''<br />
* zfs create -p fix for non-root ''(ilovezfs)''<br />
<br />
=== OpenZFS_on_OS_X_1.3.1.dmg 2015-04-01 ===<br />
<br />
* readonly mounts failed to unmount ''(Jorgen Lundman)''<br />
* readonly import failed to create ZVOL devnodes ''(Jorgen Lundman)''<br />
* vnode_getwithvid panic race ''(Jorgen Lundman)''<br />
* sa_modify_attrs SA corruption ''(Tim Chase)''<br />
* zconfigd added for persistent config ''(Brendon Humphrey, ilovezfs)''<br />
* Fix missing FIFO named-pipes VNOPs ''(Jorgen Lundman)''<br />
* Fake HFS related IOCTLs for _kMDQueryScope filter in Spotlight ''(Jorgen Lundman)''<br />
* Add new 10.10 ATTR to vnop_getattr ''(Jorgen Lundman)''<br />
* FNDRINFO and ADDEDTIME support ''(Jorgen Lundman)''<br />
* InvariantDisks fixes ''(ilovezfs)''<br />
* Skip optical media on zpool import and add timeout ''(Jorgen Lundman)''<br />
* Initial secpolicy framework ''(ilovezfs)''<br />
* zpool status -L to resolve symlinks ''(ilovezfs)''<br />
* mmap pageout/pagein partial requests fix ''(Jorgen Lundman)''<br />
* kstat fixes and addition ''(Jorgen Lundman)''<br />
* Unmount/reboot delay fixed, direct reclaim ''(Jorgen Lundman)''<br />
* rollback/suspendfs would delay waiting for reclaim ''(Jorgen Lundman)''<br />
* 'com.apple.mimic_hfs' property added to identify as 'hfs' ''(Brendon Humphrey)''<br />
<br />
=== 1.3.1-RC5 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/367a1108b174ee81e4ed128741b23e797afb8f16 367a1108b174ee81e4ed128741b23e797afb8f16]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/63a9a59e7de2353a974da0fe65004f59a8bf5946 63a9a59e7de2353a974da0fe65004f59a8bf5946]<br />
<br />
* New daemon called "InvariantDisks" providing persistent paths to use with the zpool command: /var/run/disk/by-id, by-path, by-serial (cf. https://github.com/cbreak-black/InvariantDisks) ''(Gerhard Röthlin)''<br />
* Speed up ZVOL unmap by skipping unmaps that are fully unaligned and by only using zil_commit for unmap if sync=always ''(Evan Susarret and Jorgen Lundman)''<br />
* Fix lacking force-positive mount options ''(Jorgen Lundman)''<br />
* Simplified zed daemonization ''(ilovezfs)''<br />
* Bump Spotlight auto-enable until Sun, 01 Feb 2015 00:00:00 UTC ''(ilovezfs)''<br />
* Fix Finder tags modification bug by truncating xattr before overwriting. ''(Jorgen Lundman)''<br />
<br />
=== 1.3.1-RC4 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/367a1108b174ee81e4ed128741b23e797afb8f16 367a1108b174ee81e4ed128741b23e797afb8f16]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/96c4b5c8296e7482abfb6b2f018ef932b68248cf 96c4b5c8296e7482abfb6b2f018ef932b68248cf]<br />
<br />
* ZFS: Return correct VA_NAME in vnop_getattr for dataset mountpoints ''(Jorgen Lundman)''<br />
<br />
=== 1.3.1-RC3 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/367a1108b174ee81e4ed128741b23e797afb8f16 367a1108b174ee81e4ed128741b23e797afb8f16]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/73ead71a49e2530ecfef8017b3552b37e11c65e4 73ead71a49e2530ecfef8017b3552b37e11c65e4]<br />
<br />
* ZFS: ZEVO empty SA panic fix ''(Jorgen Lundman)''<br />
* Set B_NOCACHE to stop possibly double caching block data ''(Jorgen Lundman and Evan Susarret)''<br />
* arcstat.pl included<br />
<br />
=== 1.3.1-RC2 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/f4581407d18ea555fe5cd07e9e7912e96575ac5d f4581407d18ea555fe5cd07e9e7912e96575ac5d]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/8bf68a82822d492ec9aae0bc8e93d2917ec79937 8bf68a82822d492ec9aae0bc8e93d2917ec79937]<br />
<br />
* ZFS: Release XATTRs in vnop_remove quicker ''(Jorgen Lundman)''<br />
* ZFS: Early clearing of z_vnode cause NULL vp panic ''(Jorgen Lundman)''<br />
* ZFS: Fix deadlock in vnop_reclaim ''(Jorgen Lundman)''<br />
<br />
=== 1.3.1-RC1 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/8c89b46ca872572281ed62b506958a66a912f243 8c89b46ca872572281ed62b506958a66a912f243]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/91b0052b9167c5447ee8c29d90126af3b621acf7 91b0052b9167c5447ee8c29d90126af3b621acf7]<br />
<br />
* SPL: kstat support, including tunables. ''(Brendon Humphrey)''<br />
* SPL: change from mutex allocations to inline ''(Jorgen Lundman)''<br />
* SPL: port of IllumOS kmem ''(Brendon Humphrey)''<br />
* memory pressure sensor and memory reap support ''(Brendon Humphrey)''<br />
* Improve unmount/export code ''(Jorgen Lundman)''<br />
* Handle vnop_pageout() calls during vnode_create ''(Jorgen Lundman)''<br />
* Fix reply to getattrlist regarding case sensitivity to fix install of Adobe software ''(Jorgen Lundman)''<br />
* Fix vfs_vget() for Spotlight and SMB. Enable spotlight on mounts. ''(Jorgen Lundman)''<br />
* Fix zfs.util for whole disk checks ''(ilovezfs)''<br />
* Add working arcstat.pl ''(Brendon Humphrey)''<br />
* Work around for legacy mount points and unsupported versions. ''(ilovezfs)''<br />
* Fix bug for fragmentation when spacemap_histogram is disabled ''(ilovezfs)''<br />
* Open disks as root to fix scrub hang as user. ''(Jorgen Lundman)'' ''(ilovezfs)''<br />
* Fix zfs diff ''(Jorgen Lundman)''<br />
* SPL: condvar timeout, fix cache devices sometimes not being used ''(Jorgen Lundman)'' <br />
* reclaim restructuring. Enable delete fast path, and actual release of xattrs ''(Jorgen Lundman)''<br />
* enable userquota/groupquota accounting ''(Jorgen Lundman)''<br />
* Temporary fix for missing .Trashes folder ''(Jorgen Lundman)'' ''(ilovezfs)''<br />
* Automatically remove old .metadata_never_index before Dec 15th<br />
* Make unlinked_drain async, and optional user disable ''(Jorgen Lundman)''<br />
* Merge with ZOL upstream-20141120 ''(Jorgen Lundman)''<br />
* Attempt to detech and remove invalid entries on unlinked-drain list ''(Jorgen Lundman)''<br />
* Move mount default to /Volumes ''(ilovezfs)''<br />
<br />
Add pool features: async_destroy empty_bpobj lz4_compress spacemap_histogram enabled_txg hole_birth extensible_dataset embedded_data bookmarks <br />
<br />
Illumos 5138<br />
Illumos 4753<br />
Illumos 5116<br />
Illumos 5135<br />
Illumos 5139<br />
Illumos 5147<br />
Illumos 5161<br />
Illumos 5177<br />
Illumos 5174<br />
Illumos 5140<br />
Illumos 5117<br />
Illumos 5049<br />
IllumoS 4873<br />
Illumos 4970-4974<br />
Illumos 5034<br />
Illumos 4631<br />
Illumos 4976-4984<br />
Illumos 4914<br />
Illumos 4881<br />
Illumos 4897<br />
Illumos 4390<br />
Illumos 4757, 4913<br />
Illumos 3835<br />
Illumos 4754, 4755<br />
Illumos #4374<br />
Illumos 4368, 4369<br />
Illumos 4370, 4371<br />
Illumos 4171, 4172<br />
Illumos #4756<br />
Illumos #4730<br />
Illumos #4101, #4102, #4103, #4105, #4106<br />
<br />
=== OpenZFS_on_OS_X_1.3.0.dmg 2014-07-24 ===<br />
<br />
spl [https://github.com/openzfsonosx/spl/commit/80e411aecac0716d779703ecc0f032232bdad91c 80e411aecac0716d779703ecc0f032232bdad91c]<br />
<br />
zfs [https://github.com/openzfsonosx/zfs/commit/b223a573025bb5ef84e6e08b74c9f24b61eacc0b b223a573025bb5ef84e6e08b74c9f24b61eacc0b]<br />
<br />
* Print the spl version found instead of "v0.01" ''(ilovezfs)''<br />
* Only replace a pre-existing custom icon if it's the snowflake ''(ilovezfs)''<br />
* Run osascript as the logged-in user so the notifications actually show up ''(ilovezfs)''<br />
* Check for ZEVO either still installed or uninstalled but pre-reboot, and display error for the user ''(ilovezfs)''<br />
* Fix "Load the module manually by running ..." when kexts are in /Library/Extensions on OS X 10.9+ ''(ilovezfs)''<br />
* Fix mutex leaks, resulting in eventual panic in "mutex_enter()". ''(Jorgen Lundman)''<br />
* Fix spa_strdup freeing wrong size, causing kmem havok. ''(Jorgen Lundman)''<br />
* Enhance bmalloc to include free size, bounds and use after free; checks. ''(Brendon Humphrey)''<br />
* Fix zdb 'hang' waiting for reclaim_thread ''(Jorgen Lundman)''<br />
* Autoimport work and fixes ''(ilovezfs)''<br />
* sysctl normalization code from legacy port, default off ''(Jorgen Lundman)''<br />
* Fix hang at export due to spotlight references ''(ilovezfs)''<br />
* Reboot hang fix (wait for reclaim thread) ''(Jorgen Lundman)''<br />
* Reboot hang fix, take 2. (zed ignoring TERM) ''(Jorgen Lundman)''<br />
* Added spl_wait_interruptible functions ''(Jorgen Lundman)''<br />
* Merged ZOL-0.6.3 <br />
* ZVOL unmap support ''(Evan Susarret)''<br />
* Better disk icon support ''(ilovezfs)''<br />
* onexit fixes, clean zfs send holds ''(Jorgen Lundman)''<br />
* Replace MALLOC calls to use bmalloc for performance ''(Brendon Humphrey)''<br />
* OS X Yosemite 10.10 compile fixes ''(ilovezfs)''<br />
* zp reclaim vs zget remodel fix deadlocks ''(Jorgen Lundman)''<br />
* Support legacy mountpoints ''(ilovezfs)''<br />
* Initial non-root support ''(ilovezfs)''<br />
* Rewrite ioctl after upstream ''(Jorgen Lundman)''<br />
* Normalized lookup panic fix ''(Jorgen Lundman)''<br />
<br />
and, of course, all the fixes in ZFS on Linux 0.6.3. Thanks guys!<br />
<br />
== OpenZFS_on_OS_X_1.2.7.dmg 2014-05-15 ==<br />
<br />
* Merged with ZFSOnLinux pre-0.6.3 dated Apr 8 2014 ''(6ac770b1961b9468daf0c69eae6515c608535789)''<br />
* create_thread( 75%*num_cpus ) would create literal 75 threads, instead of the intended 3 threads on quad core machine ''(Jorgen Lundman)''<br />
* VMEM allocate changed to use bmalloc (slice, SLAB, allocator on top of k_m_a) ''(Brendon Humphrey)''<br />
* Add ZED (ZFS Event Daemon) to handle events (send alerts, emails) on pool issues. ''(Chris Dunlap)''<br />
* name cache fixes (existing files claimed as missing, missing files claimed as existing) ''(Jorgen Lundman)''<br />
* Change pool sync to remove 'idle' pool writes every 30s. ''(Jorgen Lundman)''<br />
* Work around ZFS recv deadlock ''(ilovezfs)''<br />
* vnop_pageout fixes for zerod blocks beyond EOF (POSIX) ''(Jorgen Lundman)''<br />
* Add autoimport, zed startup scripts ''(ilovezfs)''<br />
* ctldir (.zfs) fixes and cleanup ''(Jorgen Lundman)''<br />
* Finder hardlinks fixes ''(Jorgen Lundman)''<br />
* Reclaim fixes, throttle and waiting on vp changes ''(Jorgen Lundman)''<br />
* ZVOL upstream incompatibility fixes ''(Evan Susarret)'' '''*1'''<br />
* ZFS rollback and promote fixes ''(ilovezfs)''<br />
* Rework EFI label, and wholedisk detection, Core Storage ''(Jorgen Lundman, ilovezfs)''<br />
<br />
Which should result in greater stability, large performance enhancements, and finally capable of using more of the available memory.<br />
<br />
'''The Installer no longer contain 32bit versions.''' <br />
<br />
'''*1''' Note that 1.2.0's ZFS Volumes are unintentionally incompatible with other platform version of ZFS, except for volblocksize = 512.<br />
<br />
== 1.2.0.dmg 2014-03-13 ==<br />
<br />
* First release</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-10-24T02:18:29Z<p>Lundman: /* Fully code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.6.exe 2022/10/24 zfswin-2.1.6 release<br />
NOTE: This release contains assembler versions of aes, pclmulqdq, sha, aesNI. Extra caution is suggested (save your work!)<br />
Please report back if there are issues.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1757-gf303ba2af9-dirty.exe 2022/10/06 Testing ZOL-2.1.6, updated<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1624-g27e584dab7-dirty.exe 2022/09/14 Testing ZOL-2.1.6<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1022-ga8162d01f-dirty.exe 2022/08/29 try unmount/export fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/06/09 add oplock support<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/05/26 2 crash fixes <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1000-g6c3ad4612-dirty.exe 2022/05/25 Partition fix! <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-10-06T06:48:13Z<p>Lundman: /* Fully code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1757-gf303ba2af9-dirty.exe 2022/10/06 Testing ZOL-2.1.6, updated<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1624-g27e584dab7-dirty.exe 2022/09/14 Testing ZOL-2.1.6<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1022-ga8162d01f-dirty.exe 2022/08/29 try unmount/export fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/06/09 add oplock support<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/05/26 2 crash fixes <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1000-g6c3ad4612-dirty.exe 2022/05/25 Partition fix! <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_kstatWindows kstat2022-09-16T02:45:57Z<p>Lundman: </p>
<hr />
<div><br />
== Windows kstat ==<br />
<br />
'''kstat''' is the utility used on illumos to query the kernel for various statistics and detailed information. <br />
It performs more of less the same responsibly as ''/proc/'' on Linux.<br />
<br />
Simply run the command to dump everything:<br />
<br />
kstat.exe<br />
(output is large)<br />
<br />
You can also use it to set certain tunables in the kernel, for example:<br />
<br />
<hr><br />
<br />
** kstat.exe ** is no longer the recommended way to change tunables. All tunables<br />
are now written to the Registry, and are updated dynamically when changed.<br />
<br />
The following information is no longer relevant!<br />
<br />
<hr><br />
<br />
<br />
=== Arc Max ===<br />
<br />
'''It is now recommended that you use the [[Windows_Registry|Registry]] to set the ZFS tunables.'''<br />
<br />
To set max ARC size to 512 MiB:<br />
kstat.exe -w zfs:0:tunable:zfs_arc_max=536870912<br />
<br />
Dump the "zfs:0:tunable" sub-section to list the available knobs to fiddle with.<br />
<br />
A setting is not retained over reboot, and will need to be set each boot. <br />
(In the future, there will be something to handle this automatically)<br />
<br />
=== HostID ===<br />
<br />
The '''HostID''' on Windows is generated from the Software/Microsoft/Cryptography/MachineGuid and <br />
generally most users do not need to change it. However, should you want to set the '''HostID''' that<br />
ZFS uses, you can do so by running;<br />
<br />
kstat.exe -w zfs:0:tunable:hw_hostid=11223344<br />
<br />
=== ZFSin debug ===<br />
<br />
You can also ask the kernel to save the debug print buffer to disk.<br />
<br />
kstat.exe -w zfs:0:tunable:vnop_debug=1337<br />
<br />
Will write the buffer to '''C:/Windows/debug/ZFSin.txt''' - if the directory exists.<br />
<br />
See [[Windows_BSOD#Debug_Print_Buffer|Debug]] for more information on the debug buffer.</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_kstatWindows kstat2022-09-16T02:45:41Z<p>Lundman: </p>
<hr />
<div><br />
== Windows kstat ==<br />
<br />
'''kstat''' is the utility used on illumos to query the kernel for various statistics and detailed information. <br />
It performs more of less the same responsibly as ''/proc/'' on Linux.<br />
<br />
Simply run the command to dump everything:<br />
<br />
kstat.exe<br />
(output is large)<br />
<br />
You can also use it to set certain tunables in the kernel, for example:<br />
<br />
<hr><br />
<br />
** kstat.exe ** is no longer the recommended way to change tunables. All tunables<br />
are now written to the Registry, and are updated dynamically when changed.<br />
<br />
The following information is no longer relevant!<br />
<br />
<hr><br />
<br />
<br />
=== Arc Max ===<br />
<br />
'''It is now recommended that you use the [[Windows_Registry|Registry]] to set the ZFS tunables.'''<br />
<br />
To set max ARC size to 512 MiB:<br />
kstat.exe -w zfs:0:tunable:zfs_arc_max=536870912<br />
<br />
Dump the "zfs:0:tunable" sub-section to list the available knobs to fiddle with.<br />
<br />
A setting is not retained over reboot, and will need to be set each boot. <br />
(In the future, there will be something to handle this automatically)<br />
<br />
=== HostID ===<br />
<br />
The '''HostID''' on Windows is generated from the Software/Microsoft/Cryptography/MachineGuid and <br />
generally most users do not need to change it. However, should you want to set the '''HostID''' that<br />
ZFS uses, you can do so by running;<br />
<br />
kstat.exe -w zfs:0:tunable:hw_hostid=11223344<br />
<br />
=== ZFSin debug ===<br />
<br />
You can also ask the kernel to save the debug print buffer to disk.<br />
<br />
kstat.exe -w zfs:0:tunable:vnop_debug=1337<br />
<br />
Will write the buffer to '''C:/Windows/debug/ZFSin.txt''' - if the directory exists.<br />
<br />
See [[Windows_BSOD#Debug_Print_Buffer|Debug]] for more information on the debug buffer.</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_RegistryWindows Registry2022-09-16T02:43:56Z<p>Lundman: /* Available tunables */</p>
<hr />
<div><br />
== Registry ==<br />
<br />
Open ZFS uses the Registry for default tunable values which is read in on startup.<br />
<br />
'''\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ZFSin''' old<br />
<br />
'''\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OpenZFS''' new<br />
<br />
=== hostid ===<br />
<br />
The Registry key '''hostid''' is generally handled by OpenZFS internally, ie, generated randomly if it is not set the first time Open ZFS is loaded. <br />
<br />
You can change '''hostid''' if that is so desired. For example, if you share the pool between multiple Operating Systems on the same Hardware.<br />
<br />
=== Arc Max ===<br />
<br />
To set the ARC maximum memory usage to 2GB, create an entry;<br />
<br />
"zfs_arc_max" REG_QWORD "0x80000000"<br />
<br />
and reboot. If you wish to change it on a running system without rebooting, see the [[Windows_kstat|kstat]] example.<br />
<br />
=== Vectorized Raidz ===<br />
<br />
There are a few vectorized implementations to chose from, due to a lack of<br />
kstat porting, we can not display the method used or available. It is <br />
printed on the debug console.<br />
<br />
To disable all assembler implementations, create a registry setting:<br />
"icp_aes_impl" REG_SZ "generic"<br />
"icp_gcm_impl" REG_SZ "generic"<br />
"zfs_vdev_raidz_impl" REG_SZ "original"<br />
"zfs_fletcher_4_impl" REG_SZ "scalar"<br />
<br />
Which would set the implementations to use the standard C versions. The<br />
default value is '''fastest''' which picks the highest available. Examples are<br />
zfs_vdev_raidz_impl: [original] scalar sse2 ssse3 <br />
icp_gcm_impl_get: cycle fastest [generic] <br />
icp_aes_impl_get: cycle fastest [generic] x86_64 aesni <br />
zfs_fletcher_4_impl_get: fastest [scalar] superscalar superscalar4 sse2 ssse3<br />
<br />
=== Available tunables ===<br />
<br />
As of 2022, the tunables are now written to the Registry when you install OpenZFS, so all<br />
available tunables are visible there. This list below is now obsolete.<br />
<hr><br />
The ZFS tunables are many and constantly changing. The easiest way to display them all is to run the [[Windows_kstat|kstat]] program. <- Not true<br />
<br />
Obsolete <s>Complete</s> list as of 2019-06-03:<br />
<br />
active_vnodes <br />
aggregation_limit <br />
arc_lotsfree_percent <br />
arc_reduce_dnlc_percent <br />
async_read_max_active <br />
async_read_min_active <br />
async_write_max_active <br />
async_write_max_dirty_pct <br />
async_write_min_active <br />
async_write_min_dirty_pct <br />
create_negatives <br />
crtime <br />
dbuf_cache_max_bytes <br />
force_formd_normalized <br />
fzap_default_block_shift <br />
hostid <br />
ignore_negatives <br />
ignore_positives <br />
l2arc_feed_again <br />
l2arc_feed_min_ms <br />
l2arc_feed_secs <br />
l2arc_headroom <br />
l2arc_headroom_boost <br />
l2arc_max_block_size <br />
l2arc_noprefetch <br />
l2arc_norw <br />
l2arc_write_boost <br />
l2arc_write_max <br />
max_active <br />
metaslab_aliquot <br />
metaslab_df_alloc_threshold <br />
metaslab_df_free_pct <br />
read_gap_limit <br />
reclaim_nodes <br />
scrub_max_active <br />
scrub_min_active <br />
skip_unlinked_drain <br />
snaptime <br />
spa_asize_inflation <br />
spa_max_replication_override <br />
spa_mode_global <br />
spa_version <br />
sync_read_max_active <br />
sync_read_min_active <br />
sync_write_max_active <br />
sync_write_min_active <br />
use_system_sync <br />
vdev_mirror_shift <br />
vnop_debug <br />
write_gap_limit <br />
zfetch_array_rd_sz <br />
zfetch_max_streams <br />
zfetch_min_sec_reap <br />
zfs_arc_average_blocksize <br />
zfs_arc_grow_retry <br />
zfs_arc_max <br />
zfs_arc_meta_limit <br />
zfs_arc_meta_min <br />
zfs_arc_min <br />
zfs_arc_p_min_shift <br />
zfs_arc_shrink_shift <br />
zfs_default_bs <br />
zfs_default_ibs <br />
zfs_delay_max_ns <br />
zfs_delay_min_dirty_percent <br />
zfs_delay_scale <br />
zfs_dirty_data_max <br />
zfs_dirty_data_sync <br />
zfs_flags <br />
zfs_free_bpobj_enabled <br />
zfs_immediate_write_sz <br />
zfs_lua_max_instrlimit <br />
zfs_lua_max_memlimit <br />
zfs_mdcomp_disable <br />
zfs_no_scrub_io <br />
zfs_no_scrub_prefetch <br />
zfs_nocacheflush <br />
zfs_prefetch_disable <br />
zfs_read_chunk_size <br />
zfs_recover <br />
zfs_recv_queue_length <br />
zfs_scrub_limit <br />
zfs_send_corrupt_data <br />
zfs_send_holes_without_brth_tm <br />
zfs_send_queue_length <br />
zfs_send_set_freerecords_bit <br />
zfs_send_unmodified_spill_bloc <br />
zfs_special_class_metadata_res <br />
zfs_trim_extent_bytes_max <br />
zfs_trim_extent_bytes_min <br />
zfs_trim_metaslab_skip <br />
zfs_trim_queue_limit <br />
zfs_trim_txg_batch <br />
zfs_txg_timeout <br />
zfs_vdev_cache_bshift <br />
zfs_vdev_cache_max <br />
zfs_vdev_cache_size <br />
zfs_vdev_file_size_mismatch_cn <br />
zfs_vdev_queue_depth_pct <br />
zfs_write_implies_delete_child <br />
zil_replay_disable <br />
zio_dva_throttle_enabled <br />
zio_injection_enabled <br />
zpl_version <br />
zvol_immediate_write_sz <br />
zvol_inhibit_dev</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_RegistryWindows Registry2022-09-16T02:42:49Z<p>Lundman: /* Available tunables */</p>
<hr />
<div><br />
== Registry ==<br />
<br />
Open ZFS uses the Registry for default tunable values which is read in on startup.<br />
<br />
'''\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ZFSin''' old<br />
<br />
'''\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OpenZFS''' new<br />
<br />
=== hostid ===<br />
<br />
The Registry key '''hostid''' is generally handled by OpenZFS internally, ie, generated randomly if it is not set the first time Open ZFS is loaded. <br />
<br />
You can change '''hostid''' if that is so desired. For example, if you share the pool between multiple Operating Systems on the same Hardware.<br />
<br />
=== Arc Max ===<br />
<br />
To set the ARC maximum memory usage to 2GB, create an entry;<br />
<br />
"zfs_arc_max" REG_QWORD "0x80000000"<br />
<br />
and reboot. If you wish to change it on a running system without rebooting, see the [[Windows_kstat|kstat]] example.<br />
<br />
=== Vectorized Raidz ===<br />
<br />
There are a few vectorized implementations to chose from, due to a lack of<br />
kstat porting, we can not display the method used or available. It is <br />
printed on the debug console.<br />
<br />
To disable all assembler implementations, create a registry setting:<br />
"icp_aes_impl" REG_SZ "generic"<br />
"icp_gcm_impl" REG_SZ "generic"<br />
"zfs_vdev_raidz_impl" REG_SZ "original"<br />
"zfs_fletcher_4_impl" REG_SZ "scalar"<br />
<br />
Which would set the implementations to use the standard C versions. The<br />
default value is '''fastest''' which picks the highest available. Examples are<br />
zfs_vdev_raidz_impl: [original] scalar sse2 ssse3 <br />
icp_gcm_impl_get: cycle fastest [generic] <br />
icp_aes_impl_get: cycle fastest [generic] x86_64 aesni <br />
zfs_fletcher_4_impl_get: fastest [scalar] superscalar superscalar4 sse2 ssse3<br />
<br />
=== Available tunables ===<br />
<br />
As of 2022, the tunables are now written to the Registry when you install OpenZFS, so all<br />
available tunables are visible there. This list below is now obsolete.<br />
<br />
The ZFS tunables are many and constantly changing. The easiest way to display them all is to run the [[Windows_kstat|kstat]] program. <- Not true<br />
<br />
Obsolete ~~Complete~~ list as of 2019-06-03:<br />
<br />
active_vnodes <br />
aggregation_limit <br />
arc_lotsfree_percent <br />
arc_reduce_dnlc_percent <br />
async_read_max_active <br />
async_read_min_active <br />
async_write_max_active <br />
async_write_max_dirty_pct <br />
async_write_min_active <br />
async_write_min_dirty_pct <br />
create_negatives <br />
crtime <br />
dbuf_cache_max_bytes <br />
force_formd_normalized <br />
fzap_default_block_shift <br />
hostid <br />
ignore_negatives <br />
ignore_positives <br />
l2arc_feed_again <br />
l2arc_feed_min_ms <br />
l2arc_feed_secs <br />
l2arc_headroom <br />
l2arc_headroom_boost <br />
l2arc_max_block_size <br />
l2arc_noprefetch <br />
l2arc_norw <br />
l2arc_write_boost <br />
l2arc_write_max <br />
max_active <br />
metaslab_aliquot <br />
metaslab_df_alloc_threshold <br />
metaslab_df_free_pct <br />
read_gap_limit <br />
reclaim_nodes <br />
scrub_max_active <br />
scrub_min_active <br />
skip_unlinked_drain <br />
snaptime <br />
spa_asize_inflation <br />
spa_max_replication_override <br />
spa_mode_global <br />
spa_version <br />
sync_read_max_active <br />
sync_read_min_active <br />
sync_write_max_active <br />
sync_write_min_active <br />
use_system_sync <br />
vdev_mirror_shift <br />
vnop_debug <br />
write_gap_limit <br />
zfetch_array_rd_sz <br />
zfetch_max_streams <br />
zfetch_min_sec_reap <br />
zfs_arc_average_blocksize <br />
zfs_arc_grow_retry <br />
zfs_arc_max <br />
zfs_arc_meta_limit <br />
zfs_arc_meta_min <br />
zfs_arc_min <br />
zfs_arc_p_min_shift <br />
zfs_arc_shrink_shift <br />
zfs_default_bs <br />
zfs_default_ibs <br />
zfs_delay_max_ns <br />
zfs_delay_min_dirty_percent <br />
zfs_delay_scale <br />
zfs_dirty_data_max <br />
zfs_dirty_data_sync <br />
zfs_flags <br />
zfs_free_bpobj_enabled <br />
zfs_immediate_write_sz <br />
zfs_lua_max_instrlimit <br />
zfs_lua_max_memlimit <br />
zfs_mdcomp_disable <br />
zfs_no_scrub_io <br />
zfs_no_scrub_prefetch <br />
zfs_nocacheflush <br />
zfs_prefetch_disable <br />
zfs_read_chunk_size <br />
zfs_recover <br />
zfs_recv_queue_length <br />
zfs_scrub_limit <br />
zfs_send_corrupt_data <br />
zfs_send_holes_without_brth_tm <br />
zfs_send_queue_length <br />
zfs_send_set_freerecords_bit <br />
zfs_send_unmodified_spill_bloc <br />
zfs_special_class_metadata_res <br />
zfs_trim_extent_bytes_max <br />
zfs_trim_extent_bytes_min <br />
zfs_trim_metaslab_skip <br />
zfs_trim_queue_limit <br />
zfs_trim_txg_batch <br />
zfs_txg_timeout <br />
zfs_vdev_cache_bshift <br />
zfs_vdev_cache_max <br />
zfs_vdev_cache_size <br />
zfs_vdev_file_size_mismatch_cn <br />
zfs_vdev_queue_depth_pct <br />
zfs_write_implies_delete_child <br />
zil_replay_disable <br />
zio_dva_throttle_enabled <br />
zio_injection_enabled <br />
zpl_version <br />
zvol_immediate_write_sz <br />
zvol_inhibit_dev</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-09-14T07:14:39Z<p>Lundman: /* Fully code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1624-g27e584dab7-dirty.exe 2022/09/14 Testing ZOL-2.1.6<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1022-ga8162d01f-dirty.exe 2022/08/29 try unmount/export fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/06/09 add oplock support<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/05/26 2 crash fixes <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1000-g6c3ad4612-dirty.exe 2022/05/25 Partition fix! <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-08-29T05:31:22Z<p>Lundman: /* Fully code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1022-ga8162d01f-dirty.exe 2022/08/29 try unmount/export fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/06/09 add oplock support<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/05/26 2 crash fixes <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1000-g6c3ad4612-dirty.exe 2022/05/25 Partition fix! <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-06-09T06:12:37Z<p>Lundman: </p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/06/09 add oplock support<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/05/26 2 crash fixes <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1000-g6c3ad4612-dirty.exe 2022/05/25 Partition fix! <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-05-26T06:21:41Z<p>Lundman: /* Partially code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1002-g5a644e661-dirty.exe 2022/05/26 2 crash fixes <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1000-g6c3ad4612-dirty.exe 2022/05/25 Partition fix! <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-05-25T07:15:40Z<p>Lundman: </p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-1000-g6c3ad4612-dirty.exe 2022/05/25 Partition fix! <br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-05-25T06:10:03Z<p>Lundman: /* Partially code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-999-g64dbc188d-dirty.exe 2022/05/25 Partition fix! (Dont zero partitions)<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-05-24T08:41:01Z<p>Lundman: </p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-997-gf899f5bce-dirty.exe 2022/05/24 Fix partition init?<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-05-06T00:54:58Z<p>Lundman: /* Partially code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-997-gf899f5bce-dirty.exe 2022/05/05 Driver unload fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-04-27T01:23:48Z<p>Lundman: /* Fully code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 Brynja: send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-04-27T00:54:46Z<p>Lundman: </p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/27 send/recv, filename, streams, BSOD fixes.<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-04-21T11:46:37Z<p>Lundman: /* Partially code-signed */</p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-993-g5057d967c-dirty.exe 2022/04/22 zfs send fix, streams fix<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/PanicPanic2022-04-17T10:06:14Z<p>Lundman: /* Best effort for M1 (arm64) */</p>
<hr />
<div><br />
== Kernel panics ==<br />
<br />
One of the most useful settings to assist with debugging is telling Darwin kernel to keep the symbols from kexts. This can<br />
be set using the nvram command, and requires a reboot.<br />
<br />
First check to see if you have any special boot-args set and add the new keepsyms instruction.<br />
# nvram boot-args="keepsyms=y debug=0x144"<br />
<br />
and reboot the machine for it to take effect.<br />
<br />
[[https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABCCIDH Table 20-1]] in Apple's Kernel Programming Guide has a summary of the meaning of the debug options.<br />
<br />
<br />
=== Panic decoding ===<br />
<br />
If you get a panic but you do not have symbols enabled, it can be decoded using the atos command.<br />
<br />
In a standard panic log, you will see something like:<br />
<br />
# cd /Library/Logs/DiagnosticReports/<br />
# less Kernel_2014-03-13-093629_OSX109.panic<br />
Backtrace (CPU 0), Frame : Return Address<br />
0xffffff8088843b10 : 0xffffff7f85e25759 : '''0xffffff7f80dcf760''' <br />
0xffffff8088843b40 : 0xffffff7f85e25560 : '''0xffffff7f80dcf423''' <br />
0xffffff8088843be0 : 0xffffff7f85e08f27 : '''0xffffff7f80dc491a'''<br />
<br />
Kernel Extensions in backtrace:<br />
net.lundman.spl(1.0)[7F69C13B-C730-3475-99E9-53861AC6C54E]@0xffffff7f85d2a000->0xffffff7f85d36fff<br />
net.lundman.zfs(1.0)[5637421D-EE17-33F1-ACB2-8FA38BC5A5A6]@'''0xffffff7f80d54000'''->0xffffff7f85f38fff<br />
<br />
We can then run the command<br />
<br />
# xcrun '''atos''' -arch '''x86_64''' -l '''0xffffff7f80d54000''' -o ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs '''0xffffff7f80dcf760 0xffffff7f80dcf423 0xffffff7f80dc491a'''<br />
got symbolicator for ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs, base address 0<br />
spa_taskqs_init (in zfs) (spa.c:888)<br />
spa_create_zio_taskqs (in zfs) (spa.c:972)<br />
spa_activate (in zfs) (spa.c:1094)<br />
<br />
Which can be repeated for spl, and spl load address as well, if needed.<br />
<br />
And for kernel addresses, look for "kernel slide:" value, I assumed 0 in this example<br />
xcrun atos -arch x86_64 -d -o /Volumes/KernelDebugKit/mach_kernel -s 0 0xffffff8000222f79 0xffffff80002dc24e 0xffffff80002f3746 <br />
<br />
<br />
<br />
If you are not panicking, but would like to print the stack at a certain point in the kext, you can use<br />
<br />
OSReportWithBacktrace("I am here: vp %p\n", vp);<br />
<br />
in `printf` style notation.<br />
<br />
<br />
=== Best effort for M1 (arm64) ===<br />
<br />
org.openzfsonosx.zfs(2.1)[0BF8CB05-9B3B-3182-8DE6-AF14261D75B8]@ 0xfffffe0022410000->0xfffffe00226fffff<br />
0xfffffe0022410000 - 0x88000 = 0xFFFFFE0022388000<br />
<br />
lr: 0xfffffe002348abe4 fp: 0xfffffe3feaf526f0<br />
lr: 0xfffffe002348a9c8 fp: 0xfffffe3feaf52760<br />
<br />
# atos -o module/os/macos/zfs/zfs -arch arm64e -l 0xFFFFFE0022388000 0xfffffe002348abe4 0xfffffe002348a9c8 ....<br />
<br />
=== Alternate symbol lookup with lldb ===<br />
<br />
Panic:<br />
panic(cpu 5 caller 0xffffff80088d1066): trying to interlock destroyed mutex (0xffffff8029196000)<br />
Backtrace (CPU 5), Frame : Return Address<br />
0xffffff81f49fba80 : 0xffffff8008822fa9 <br />
0xffffff81f49fbb00 : 0xffffff80088d1066 <br />
0xffffff81f49fbb10 : 0xffffff800889c75e <br />
0xffffff81f49fbbe0 : 0xffffff80088ae60c <br />
0xffffff81f49fbc00 : '''0xffffff7f8a4252e0'''<br />
0xffffff81f49fbdf0 : 0xffffff80089ffea9 <br />
net.lundman.zfs(1.0)[0EC79B06-3C9F-3529-8450-42222507F310]@'''0xffffff7f8a33c000'''->0xffffff7f8a545fff<br />
<br />
Assuming you have the same build as panic report, in this case 1.2.7<br />
# lldb<br />
(lldb) target create --no-dependents --arch x86_64 module/zfs/zfs #Binary before moved into zfs.kext<br />
(lldb) target modules load --file zfs __TEXT '''0xffffff7f8a33c000'''<br />
(lldb) image lookup --verbose --address '''0xffffff7f8a4252e0'''<br />
<br />
Address: zfs[0x00000000000e92e0] (zfs.__TEXT.__text + 950160)<br />
Summary: zfs`zfs_vnop_pageout + 1264 at zfs_vnops_osx.c:1236<br />
Module: file = "/Users/lundman/x/zfs/module/zfs/zfs", arch = "x86_64"<br />
CompileUnit: id = {0x00000000}, file = "/Users/lundman/x/zfs/module/zfs/zfs_vnops_osx.c", language = "c89"<br />
'''LineEntry''': [0xffffff7f8a4252da-0xffffff7f8a4252f0): /Users/lundman/x/zfs/module/zfs/'''zfs_vnops_osx.c:1236'''<br />
<br />
zfs_vnops_osx.c:1236<br />
tx = dmu_tx_create(zfsvfs->z_os);<br />
dmu_tx_hold_write(tx, zp->z_id, off, len);<br />
'''dmu_tx_hold_bonus(tx, zp->z_id);'''<br />
err = dmu_tx_assign(tx, TXG_NOWAIT);<br />
<br />
Or just for the kernel<br />
<br />
(lldb) target create --no-dependents --arch x86_64 mach_kernel<br />
(lldb) target modules load --file mach_kernel --slide 0x000000000b600000<br />
(lldb) image lookup -a 0xffffff800b8d6aa7<br />
<br />
=== Kernel to Userland ===<br />
<br />
Connect to crashed kernel:<br />
<br />
# Load the compiled binary, just makes it easier for lldb to find it when connecting<br />
(lldb) target create --no-dependents --arch x86_64 module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs <br />
Current executable set to 'module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs' (x86_64).<br />
# Connect to crashed VM<br />
(lldb) kdp-remote 172.16.248.128<br />
Version: Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/DEVELOPMENT_X86_64; UUID=12647AE2-57FB-35DB-AF57-4B25D060D845; stext=0xffffff802f200000<br />
<br />
In this case we have died when trying to copyinstr() from userland:<br />
<br />
(lldb) up<br />
frame #1: 0xffffff7f8db91238 zfs`history_str_get(zc=0xffffff90a8dec000) at zfs_ioctl.c:295:6<br />
292 return (NULL);<br />
293<br />
294 buf = kmem_alloc(HIS_MAX_RECORD_LEN, KM_SLEEP);<br />
-> 295 if (copyinstr((void *)(uintptr_t)zc->zc_history,<br />
296 buf, HIS_MAX_RECORD_LEN, NULL) != 0) {<br />
297 history_str_free(buf);<br />
298 return (NULL);<br />
(lldb) p zc->zc_history<br />
(uint64_t) $1 = 4413168320<br />
<br />
Find the task ptr for userprocess, a few ways;<br />
<br />
(lldb) showproc 0xffffff804afb3700<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showpid 687<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showprocinfo 0xffffff804afb3700<br />
Process 0xffffff804afb3700<br />
name zpool<br />
pid:687 task:0xffffff803bb76498 p_stat:2 parent pid: 686<br />
Cred: euid 0 ruid 0 svuid 0<br />
Flags: 0x4006<br />
0x00000002 - has a controlling tty<br />
0x00000004 - process is 64 bit<br />
0x00004000 - process has called exec<br />
<br />
You can view user process threads:<br />
<br />
(lldb) showtaskuserstacks 0xffffff803bb76498<br />
Process: zpool [687]<br />
Path: zpool<br />
Identifier: zpool<br />
Version: ??? (???)<br />
Code Type: X86-64 (Native)<br />
Parent Process: bash [686]<br />
<br />
Date/Time: 2020-05-08 09:20:50.000 -0800<br />
OS Version: Mac OS X 10.8 (18G103)<br />
Report Version: 8<br />
<br />
Exception Type: n/a<br />
Exception Codes: n/a<br />
Crashed Thread: 0<br />
<br />
Application Specific Information:<br />
Synthetic crash log generated from Kernel userstacks<br />
<br />
Binary Images:<br />
Unknown dyld all_image_infos version number 15<br />
0x10efd9000 - 0x10f018fff zpool <br />
(??? - ???) <7234AC69-6CE8-321D-9ACC-4F73BB964650> /Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool<br />
<br />
[snip]<br />
<br />
Create a gdb-server to debug zpool process:<br />
<br />
(lldb) beginusertaskdebugging 0xffffff803bb76498<br />
Starting debug session for zpool at localhost:7936.<br />
<br />
From another shell, start to debug the zpool process, <br />
using the convenience wrapper script:<br />
All it does is run "lldb zpool" after setting DYLD_LIBRARY_PATH so you can<br />
run it in the build directory.<br />
<br />
± ./scripts/debug-macos.sh zpool<br />
(lldb) target create "/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool"<br />
Current executable set to '/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool' (x86_64).<br />
(lldb) gdb-remote localhost:7936<br />
Process 687 stopped<br />
* thread #1, stop reason = signal SIGINT<br />
frame #0: 0x00007fff63fbfb5a libsystem_kernel.dylib<br />
-> 0x7fff63fbfb5a: jae 0x7fff63fbfb64<br />
0x7fff63fbfb5c: movq %rax, %rdi<br />
0x7fff63fbfb5f: jmp 0x7fff63fbf421<br />
0x7fff63fbfb64: retq<br />
<br />
(lldb) up<br />
frame #6: 0x000000010efdc434 zpool`zpool_export_one(zhp=0x00007ff51440b750, data=0x00007ffee0c25718) at zpool_main.c:1706:13<br />
1703 if (cb->hardforce) {<br />
1704 if (zpool_export_force(zhp, history_str) != 0)<br />
1705 return (1);<br />
-> 1706 } else if (zpool_export(zhp, cb->force, history_str) != 0) {<br />
1707 return (1);<br />
1708 }<br />
1709<br />
(lldb) p history_str<br />
(char [2049]) $0 = "zpool export BOOM"<br />
<br />
=== Links ===<br />
<br />
https://developer.apple.com/library/mac/qa/qa1264/_index.html<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABDGEGF<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man8/kext_logging.8.html</div>Lundmanhttps://openzfsonosx.org/wiki/PanicPanic2022-04-17T10:05:48Z<p>Lundman: /* Best effort for M1 (arm64) */</p>
<hr />
<div><br />
== Kernel panics ==<br />
<br />
One of the most useful settings to assist with debugging is telling Darwin kernel to keep the symbols from kexts. This can<br />
be set using the nvram command, and requires a reboot.<br />
<br />
First check to see if you have any special boot-args set and add the new keepsyms instruction.<br />
# nvram boot-args="keepsyms=y debug=0x144"<br />
<br />
and reboot the machine for it to take effect.<br />
<br />
[[https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABCCIDH Table 20-1]] in Apple's Kernel Programming Guide has a summary of the meaning of the debug options.<br />
<br />
<br />
=== Panic decoding ===<br />
<br />
If you get a panic but you do not have symbols enabled, it can be decoded using the atos command.<br />
<br />
In a standard panic log, you will see something like:<br />
<br />
# cd /Library/Logs/DiagnosticReports/<br />
# less Kernel_2014-03-13-093629_OSX109.panic<br />
Backtrace (CPU 0), Frame : Return Address<br />
0xffffff8088843b10 : 0xffffff7f85e25759 : '''0xffffff7f80dcf760''' <br />
0xffffff8088843b40 : 0xffffff7f85e25560 : '''0xffffff7f80dcf423''' <br />
0xffffff8088843be0 : 0xffffff7f85e08f27 : '''0xffffff7f80dc491a'''<br />
<br />
Kernel Extensions in backtrace:<br />
net.lundman.spl(1.0)[7F69C13B-C730-3475-99E9-53861AC6C54E]@0xffffff7f85d2a000->0xffffff7f85d36fff<br />
net.lundman.zfs(1.0)[5637421D-EE17-33F1-ACB2-8FA38BC5A5A6]@'''0xffffff7f80d54000'''->0xffffff7f85f38fff<br />
<br />
We can then run the command<br />
<br />
# xcrun '''atos''' -arch '''x86_64''' -l '''0xffffff7f80d54000''' -o ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs '''0xffffff7f80dcf760 0xffffff7f80dcf423 0xffffff7f80dc491a'''<br />
got symbolicator for ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs, base address 0<br />
spa_taskqs_init (in zfs) (spa.c:888)<br />
spa_create_zio_taskqs (in zfs) (spa.c:972)<br />
spa_activate (in zfs) (spa.c:1094)<br />
<br />
Which can be repeated for spl, and spl load address as well, if needed.<br />
<br />
And for kernel addresses, look for "kernel slide:" value, I assumed 0 in this example<br />
xcrun atos -arch x86_64 -d -o /Volumes/KernelDebugKit/mach_kernel -s 0 0xffffff8000222f79 0xffffff80002dc24e 0xffffff80002f3746 <br />
<br />
<br />
<br />
If you are not panicking, but would like to print the stack at a certain point in the kext, you can use<br />
<br />
OSReportWithBacktrace("I am here: vp %p\n", vp);<br />
<br />
in `printf` style notation.<br />
<br />
<br />
=== Best effort for M1 (arm64) ===<br />
<br />
org.openzfsonosx.zfs(2.1)[0BF8CB05-9B3B-3182-8DE6-AF14261D75B8]@ 0xfffffe0022410000->0xfffffe00226fffff<br />
0xfffffe0022410000 - 0x88000 = 0xFFFFFE0022388000<br />
<br />
lr: 0xfffffe002348abe4 fp: 0xfffffe3feaf526f0<br />
lr: 0xfffffe002348a9c8 fp: 0xfffffe3feaf52760<br />
<br />
# atos -o module/os/macos/zfs/zfs -arch arm64e -l 0xFFFFFE0022388000 0xfffffe002348abe4 0xfffffe002348a9c8 0xfffffe00235b3a70 0xfffffe00235a52b8 <br />
0xfffffe00234437e8 0xfffffe002348a658 0xfffffe002348a658 0xfffffe0023c3c3e8 0xfffffe0023c40888 0xfffffe00235a7294 0xfffffe00235a51e0 <br />
0xfffffe00234437e8 0xfffffe00225c2ddc 0xfffffe00225c2ddc 0xfffffe00225a9d64 0xfffffe00225a666c 0xfffffe00225a9a74 0xfffffe00225c7304 <br />
0xfffffe00225c3cf4 0xfffffe00224d7cac 0xfffffe002256b794 0xfffffe00225645e0 0xfffffe0022570d9c 0xfffffe002370be4c 0xfffffe00236fef40 <br />
0xfffffe00239b7584 0xfffffe0023a917c0 0xfffffe00235a4f94 0xfffffe00234437e8<br />
<br />
=== Alternate symbol lookup with lldb ===<br />
<br />
Panic:<br />
panic(cpu 5 caller 0xffffff80088d1066): trying to interlock destroyed mutex (0xffffff8029196000)<br />
Backtrace (CPU 5), Frame : Return Address<br />
0xffffff81f49fba80 : 0xffffff8008822fa9 <br />
0xffffff81f49fbb00 : 0xffffff80088d1066 <br />
0xffffff81f49fbb10 : 0xffffff800889c75e <br />
0xffffff81f49fbbe0 : 0xffffff80088ae60c <br />
0xffffff81f49fbc00 : '''0xffffff7f8a4252e0'''<br />
0xffffff81f49fbdf0 : 0xffffff80089ffea9 <br />
net.lundman.zfs(1.0)[0EC79B06-3C9F-3529-8450-42222507F310]@'''0xffffff7f8a33c000'''->0xffffff7f8a545fff<br />
<br />
Assuming you have the same build as panic report, in this case 1.2.7<br />
# lldb<br />
(lldb) target create --no-dependents --arch x86_64 module/zfs/zfs #Binary before moved into zfs.kext<br />
(lldb) target modules load --file zfs __TEXT '''0xffffff7f8a33c000'''<br />
(lldb) image lookup --verbose --address '''0xffffff7f8a4252e0'''<br />
<br />
Address: zfs[0x00000000000e92e0] (zfs.__TEXT.__text + 950160)<br />
Summary: zfs`zfs_vnop_pageout + 1264 at zfs_vnops_osx.c:1236<br />
Module: file = "/Users/lundman/x/zfs/module/zfs/zfs", arch = "x86_64"<br />
CompileUnit: id = {0x00000000}, file = "/Users/lundman/x/zfs/module/zfs/zfs_vnops_osx.c", language = "c89"<br />
'''LineEntry''': [0xffffff7f8a4252da-0xffffff7f8a4252f0): /Users/lundman/x/zfs/module/zfs/'''zfs_vnops_osx.c:1236'''<br />
<br />
zfs_vnops_osx.c:1236<br />
tx = dmu_tx_create(zfsvfs->z_os);<br />
dmu_tx_hold_write(tx, zp->z_id, off, len);<br />
'''dmu_tx_hold_bonus(tx, zp->z_id);'''<br />
err = dmu_tx_assign(tx, TXG_NOWAIT);<br />
<br />
Or just for the kernel<br />
<br />
(lldb) target create --no-dependents --arch x86_64 mach_kernel<br />
(lldb) target modules load --file mach_kernel --slide 0x000000000b600000<br />
(lldb) image lookup -a 0xffffff800b8d6aa7<br />
<br />
=== Kernel to Userland ===<br />
<br />
Connect to crashed kernel:<br />
<br />
# Load the compiled binary, just makes it easier for lldb to find it when connecting<br />
(lldb) target create --no-dependents --arch x86_64 module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs <br />
Current executable set to 'module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs' (x86_64).<br />
# Connect to crashed VM<br />
(lldb) kdp-remote 172.16.248.128<br />
Version: Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/DEVELOPMENT_X86_64; UUID=12647AE2-57FB-35DB-AF57-4B25D060D845; stext=0xffffff802f200000<br />
<br />
In this case we have died when trying to copyinstr() from userland:<br />
<br />
(lldb) up<br />
frame #1: 0xffffff7f8db91238 zfs`history_str_get(zc=0xffffff90a8dec000) at zfs_ioctl.c:295:6<br />
292 return (NULL);<br />
293<br />
294 buf = kmem_alloc(HIS_MAX_RECORD_LEN, KM_SLEEP);<br />
-> 295 if (copyinstr((void *)(uintptr_t)zc->zc_history,<br />
296 buf, HIS_MAX_RECORD_LEN, NULL) != 0) {<br />
297 history_str_free(buf);<br />
298 return (NULL);<br />
(lldb) p zc->zc_history<br />
(uint64_t) $1 = 4413168320<br />
<br />
Find the task ptr for userprocess, a few ways;<br />
<br />
(lldb) showproc 0xffffff804afb3700<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showpid 687<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showprocinfo 0xffffff804afb3700<br />
Process 0xffffff804afb3700<br />
name zpool<br />
pid:687 task:0xffffff803bb76498 p_stat:2 parent pid: 686<br />
Cred: euid 0 ruid 0 svuid 0<br />
Flags: 0x4006<br />
0x00000002 - has a controlling tty<br />
0x00000004 - process is 64 bit<br />
0x00004000 - process has called exec<br />
<br />
You can view user process threads:<br />
<br />
(lldb) showtaskuserstacks 0xffffff803bb76498<br />
Process: zpool [687]<br />
Path: zpool<br />
Identifier: zpool<br />
Version: ??? (???)<br />
Code Type: X86-64 (Native)<br />
Parent Process: bash [686]<br />
<br />
Date/Time: 2020-05-08 09:20:50.000 -0800<br />
OS Version: Mac OS X 10.8 (18G103)<br />
Report Version: 8<br />
<br />
Exception Type: n/a<br />
Exception Codes: n/a<br />
Crashed Thread: 0<br />
<br />
Application Specific Information:<br />
Synthetic crash log generated from Kernel userstacks<br />
<br />
Binary Images:<br />
Unknown dyld all_image_infos version number 15<br />
0x10efd9000 - 0x10f018fff zpool <br />
(??? - ???) <7234AC69-6CE8-321D-9ACC-4F73BB964650> /Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool<br />
<br />
[snip]<br />
<br />
Create a gdb-server to debug zpool process:<br />
<br />
(lldb) beginusertaskdebugging 0xffffff803bb76498<br />
Starting debug session for zpool at localhost:7936.<br />
<br />
From another shell, start to debug the zpool process, <br />
using the convenience wrapper script:<br />
All it does is run "lldb zpool" after setting DYLD_LIBRARY_PATH so you can<br />
run it in the build directory.<br />
<br />
± ./scripts/debug-macos.sh zpool<br />
(lldb) target create "/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool"<br />
Current executable set to '/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool' (x86_64).<br />
(lldb) gdb-remote localhost:7936<br />
Process 687 stopped<br />
* thread #1, stop reason = signal SIGINT<br />
frame #0: 0x00007fff63fbfb5a libsystem_kernel.dylib<br />
-> 0x7fff63fbfb5a: jae 0x7fff63fbfb64<br />
0x7fff63fbfb5c: movq %rax, %rdi<br />
0x7fff63fbfb5f: jmp 0x7fff63fbf421<br />
0x7fff63fbfb64: retq<br />
<br />
(lldb) up<br />
frame #6: 0x000000010efdc434 zpool`zpool_export_one(zhp=0x00007ff51440b750, data=0x00007ffee0c25718) at zpool_main.c:1706:13<br />
1703 if (cb->hardforce) {<br />
1704 if (zpool_export_force(zhp, history_str) != 0)<br />
1705 return (1);<br />
-> 1706 } else if (zpool_export(zhp, cb->force, history_str) != 0) {<br />
1707 return (1);<br />
1708 }<br />
1709<br />
(lldb) p history_str<br />
(char [2049]) $0 = "zpool export BOOM"<br />
<br />
=== Links ===<br />
<br />
https://developer.apple.com/library/mac/qa/qa1264/_index.html<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABDGEGF<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man8/kext_logging.8.html</div>Lundmanhttps://openzfsonosx.org/wiki/PanicPanic2022-04-17T10:05:14Z<p>Lundman: </p>
<hr />
<div><br />
== Kernel panics ==<br />
<br />
One of the most useful settings to assist with debugging is telling Darwin kernel to keep the symbols from kexts. This can<br />
be set using the nvram command, and requires a reboot.<br />
<br />
First check to see if you have any special boot-args set and add the new keepsyms instruction.<br />
# nvram boot-args="keepsyms=y debug=0x144"<br />
<br />
and reboot the machine for it to take effect.<br />
<br />
[[https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABCCIDH Table 20-1]] in Apple's Kernel Programming Guide has a summary of the meaning of the debug options.<br />
<br />
<br />
=== Panic decoding ===<br />
<br />
If you get a panic but you do not have symbols enabled, it can be decoded using the atos command.<br />
<br />
In a standard panic log, you will see something like:<br />
<br />
# cd /Library/Logs/DiagnosticReports/<br />
# less Kernel_2014-03-13-093629_OSX109.panic<br />
Backtrace (CPU 0), Frame : Return Address<br />
0xffffff8088843b10 : 0xffffff7f85e25759 : '''0xffffff7f80dcf760''' <br />
0xffffff8088843b40 : 0xffffff7f85e25560 : '''0xffffff7f80dcf423''' <br />
0xffffff8088843be0 : 0xffffff7f85e08f27 : '''0xffffff7f80dc491a'''<br />
<br />
Kernel Extensions in backtrace:<br />
net.lundman.spl(1.0)[7F69C13B-C730-3475-99E9-53861AC6C54E]@0xffffff7f85d2a000->0xffffff7f85d36fff<br />
net.lundman.zfs(1.0)[5637421D-EE17-33F1-ACB2-8FA38BC5A5A6]@'''0xffffff7f80d54000'''->0xffffff7f85f38fff<br />
<br />
We can then run the command<br />
<br />
# xcrun '''atos''' -arch '''x86_64''' -l '''0xffffff7f80d54000''' -o ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs '''0xffffff7f80dcf760 0xffffff7f80dcf423 0xffffff7f80dc491a'''<br />
got symbolicator for ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs, base address 0<br />
spa_taskqs_init (in zfs) (spa.c:888)<br />
spa_create_zio_taskqs (in zfs) (spa.c:972)<br />
spa_activate (in zfs) (spa.c:1094)<br />
<br />
Which can be repeated for spl, and spl load address as well, if needed.<br />
<br />
And for kernel addresses, look for "kernel slide:" value, I assumed 0 in this example<br />
xcrun atos -arch x86_64 -d -o /Volumes/KernelDebugKit/mach_kernel -s 0 0xffffff8000222f79 0xffffff80002dc24e 0xffffff80002f3746 <br />
<br />
<br />
<br />
If you are not panicking, but would like to print the stack at a certain point in the kext, you can use<br />
<br />
OSReportWithBacktrace("I am here: vp %p\n", vp);<br />
<br />
in `printf` style notation.<br />
<br />
<br />
=== Best effort for M1 (arm64) ===<br />
<br />
org.openzfsonosx.zfs(2.1)[0BF8CB05-9B3B-3182-8DE6-AF14261D75B8]@ 0xfffffe0022410000->0xfffffe00226fffff<br />
0xfffffe0022410000 - 0x88000 = 0xFFFFFE0022388000<br />
<br />
lr: 0xfffffe002348abe4 fp: 0xfffffe3feaf526f0<br />
lr: 0xfffffe002348a9c8 fp: 0xfffffe3feaf52760<br />
<br />
# atos -o module/os/macos/zfs/zfs -arch arm64e -l 0xFFFFFE0022388000 0xfffffe002348abe4 0xfffffe002348a9c8 0xfffffe00235b3a70 0xfffffe00235a52b8 <br />
0xfffffe00234437e8 0xfffffe002348a658 0xfffffe002348a658 0xfffffe0023c3c3e8 0xfffffe0023c40888 0xfffffe00235a7294 0xfffffe00235a51e0 <br />
0xfffffe00234437e8 0xfffffe00225c2ddc 0xfffffe00225c2ddc 0xfffffe00225a9d64 0xfffffe00225a666c 0xfffffe00225a9a74 0xfffffe00225c7304 <br />
0xfffffe00225c3cf4 0xfffffe00224d7cac 0xfffffe002256b794 0xfffffe00225645e0 0xfffffe0022570d9c 0xfffffe002370be4c 0xfffffe00236fef40 <br />
0xfffffe00239b7584 0xfffffe0023a917c0 0xfffffe00235a4f94 0xfffffe00234437e8<br />
<br />
<br />
<br />
<br />
=== Alternate symbol lookup with lldb ===<br />
<br />
Panic:<br />
panic(cpu 5 caller 0xffffff80088d1066): trying to interlock destroyed mutex (0xffffff8029196000)<br />
Backtrace (CPU 5), Frame : Return Address<br />
0xffffff81f49fba80 : 0xffffff8008822fa9 <br />
0xffffff81f49fbb00 : 0xffffff80088d1066 <br />
0xffffff81f49fbb10 : 0xffffff800889c75e <br />
0xffffff81f49fbbe0 : 0xffffff80088ae60c <br />
0xffffff81f49fbc00 : '''0xffffff7f8a4252e0'''<br />
0xffffff81f49fbdf0 : 0xffffff80089ffea9 <br />
net.lundman.zfs(1.0)[0EC79B06-3C9F-3529-8450-42222507F310]@'''0xffffff7f8a33c000'''->0xffffff7f8a545fff<br />
<br />
Assuming you have the same build as panic report, in this case 1.2.7<br />
# lldb<br />
(lldb) target create --no-dependents --arch x86_64 module/zfs/zfs #Binary before moved into zfs.kext<br />
(lldb) target modules load --file zfs __TEXT '''0xffffff7f8a33c000'''<br />
(lldb) image lookup --verbose --address '''0xffffff7f8a4252e0'''<br />
<br />
Address: zfs[0x00000000000e92e0] (zfs.__TEXT.__text + 950160)<br />
Summary: zfs`zfs_vnop_pageout + 1264 at zfs_vnops_osx.c:1236<br />
Module: file = "/Users/lundman/x/zfs/module/zfs/zfs", arch = "x86_64"<br />
CompileUnit: id = {0x00000000}, file = "/Users/lundman/x/zfs/module/zfs/zfs_vnops_osx.c", language = "c89"<br />
'''LineEntry''': [0xffffff7f8a4252da-0xffffff7f8a4252f0): /Users/lundman/x/zfs/module/zfs/'''zfs_vnops_osx.c:1236'''<br />
<br />
zfs_vnops_osx.c:1236<br />
tx = dmu_tx_create(zfsvfs->z_os);<br />
dmu_tx_hold_write(tx, zp->z_id, off, len);<br />
'''dmu_tx_hold_bonus(tx, zp->z_id);'''<br />
err = dmu_tx_assign(tx, TXG_NOWAIT);<br />
<br />
Or just for the kernel<br />
<br />
(lldb) target create --no-dependents --arch x86_64 mach_kernel<br />
(lldb) target modules load --file mach_kernel --slide 0x000000000b600000<br />
(lldb) image lookup -a 0xffffff800b8d6aa7<br />
<br />
=== Kernel to Userland ===<br />
<br />
Connect to crashed kernel:<br />
<br />
# Load the compiled binary, just makes it easier for lldb to find it when connecting<br />
(lldb) target create --no-dependents --arch x86_64 module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs <br />
Current executable set to 'module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs' (x86_64).<br />
# Connect to crashed VM<br />
(lldb) kdp-remote 172.16.248.128<br />
Version: Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/DEVELOPMENT_X86_64; UUID=12647AE2-57FB-35DB-AF57-4B25D060D845; stext=0xffffff802f200000<br />
<br />
In this case we have died when trying to copyinstr() from userland:<br />
<br />
(lldb) up<br />
frame #1: 0xffffff7f8db91238 zfs`history_str_get(zc=0xffffff90a8dec000) at zfs_ioctl.c:295:6<br />
292 return (NULL);<br />
293<br />
294 buf = kmem_alloc(HIS_MAX_RECORD_LEN, KM_SLEEP);<br />
-> 295 if (copyinstr((void *)(uintptr_t)zc->zc_history,<br />
296 buf, HIS_MAX_RECORD_LEN, NULL) != 0) {<br />
297 history_str_free(buf);<br />
298 return (NULL);<br />
(lldb) p zc->zc_history<br />
(uint64_t) $1 = 4413168320<br />
<br />
Find the task ptr for userprocess, a few ways;<br />
<br />
(lldb) showproc 0xffffff804afb3700<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showpid 687<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showprocinfo 0xffffff804afb3700<br />
Process 0xffffff804afb3700<br />
name zpool<br />
pid:687 task:0xffffff803bb76498 p_stat:2 parent pid: 686<br />
Cred: euid 0 ruid 0 svuid 0<br />
Flags: 0x4006<br />
0x00000002 - has a controlling tty<br />
0x00000004 - process is 64 bit<br />
0x00004000 - process has called exec<br />
<br />
You can view user process threads:<br />
<br />
(lldb) showtaskuserstacks 0xffffff803bb76498<br />
Process: zpool [687]<br />
Path: zpool<br />
Identifier: zpool<br />
Version: ??? (???)<br />
Code Type: X86-64 (Native)<br />
Parent Process: bash [686]<br />
<br />
Date/Time: 2020-05-08 09:20:50.000 -0800<br />
OS Version: Mac OS X 10.8 (18G103)<br />
Report Version: 8<br />
<br />
Exception Type: n/a<br />
Exception Codes: n/a<br />
Crashed Thread: 0<br />
<br />
Application Specific Information:<br />
Synthetic crash log generated from Kernel userstacks<br />
<br />
Binary Images:<br />
Unknown dyld all_image_infos version number 15<br />
0x10efd9000 - 0x10f018fff zpool <br />
(??? - ???) <7234AC69-6CE8-321D-9ACC-4F73BB964650> /Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool<br />
<br />
[snip]<br />
<br />
Create a gdb-server to debug zpool process:<br />
<br />
(lldb) beginusertaskdebugging 0xffffff803bb76498<br />
Starting debug session for zpool at localhost:7936.<br />
<br />
From another shell, start to debug the zpool process, <br />
using the convenience wrapper script:<br />
All it does is run "lldb zpool" after setting DYLD_LIBRARY_PATH so you can<br />
run it in the build directory.<br />
<br />
± ./scripts/debug-macos.sh zpool<br />
(lldb) target create "/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool"<br />
Current executable set to '/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool' (x86_64).<br />
(lldb) gdb-remote localhost:7936<br />
Process 687 stopped<br />
* thread #1, stop reason = signal SIGINT<br />
frame #0: 0x00007fff63fbfb5a libsystem_kernel.dylib<br />
-> 0x7fff63fbfb5a: jae 0x7fff63fbfb64<br />
0x7fff63fbfb5c: movq %rax, %rdi<br />
0x7fff63fbfb5f: jmp 0x7fff63fbf421<br />
0x7fff63fbfb64: retq<br />
<br />
(lldb) up<br />
frame #6: 0x000000010efdc434 zpool`zpool_export_one(zhp=0x00007ff51440b750, data=0x00007ffee0c25718) at zpool_main.c:1706:13<br />
1703 if (cb->hardforce) {<br />
1704 if (zpool_export_force(zhp, history_str) != 0)<br />
1705 return (1);<br />
-> 1706 } else if (zpool_export(zhp, cb->force, history_str) != 0) {<br />
1707 return (1);<br />
1708 }<br />
1709<br />
(lldb) p history_str<br />
(char [2049]) $0 = "zpool export BOOM"<br />
<br />
=== Links ===<br />
<br />
https://developer.apple.com/library/mac/qa/qa1264/_index.html<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABDGEGF<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man8/kext_logging.8.html</div>Lundmanhttps://openzfsonosx.org/wiki/PanicPanic2022-04-17T10:04:46Z<p>Lundman: </p>
<hr />
<div><br />
== Kernel panics ==<br />
<br />
One of the most useful settings to assist with debugging is telling Darwin kernel to keep the symbols from kexts. This can<br />
be set using the nvram command, and requires a reboot.<br />
<br />
First check to see if you have any special boot-args set and add the new keepsyms instruction.<br />
# nvram boot-args="keepsyms=y debug=0x144"<br />
<br />
and reboot the machine for it to take effect.<br />
<br />
[[https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABCCIDH Table 20-1]] in Apple's Kernel Programming Guide has a summary of the meaning of the debug options.<br />
<br />
<br />
=== Panic decoding ===<br />
<br />
If you get a panic but you do not have symbols enabled, it can be decoded using the atos command.<br />
<br />
In a standard panic log, you will see something like:<br />
<br />
# cd /Library/Logs/DiagnosticReports/<br />
# less Kernel_2014-03-13-093629_OSX109.panic<br />
Backtrace (CPU 0), Frame : Return Address<br />
0xffffff8088843b10 : 0xffffff7f85e25759 : '''0xffffff7f80dcf760''' <br />
0xffffff8088843b40 : 0xffffff7f85e25560 : '''0xffffff7f80dcf423''' <br />
0xffffff8088843be0 : 0xffffff7f85e08f27 : '''0xffffff7f80dc491a'''<br />
<br />
Kernel Extensions in backtrace:<br />
net.lundman.spl(1.0)[7F69C13B-C730-3475-99E9-53861AC6C54E]@0xffffff7f85d2a000->0xffffff7f85d36fff<br />
net.lundman.zfs(1.0)[5637421D-EE17-33F1-ACB2-8FA38BC5A5A6]@'''0xffffff7f80d54000'''->0xffffff7f85f38fff<br />
<br />
We can then run the command<br />
<br />
# xcrun '''atos''' -arch '''x86_64''' -l '''0xffffff7f80d54000''' -o ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs '''0xffffff7f80dcf760 0xffffff7f80dcf423 0xffffff7f80dc491a'''<br />
got symbolicator for ../zfs/module/zfs/zfs.kext/Contents/MacOS/zfs, base address 0<br />
spa_taskqs_init (in zfs) (spa.c:888)<br />
spa_create_zio_taskqs (in zfs) (spa.c:972)<br />
spa_activate (in zfs) (spa.c:1094)<br />
<br />
Which can be repeated for spl, and spl load address as well, if needed.<br />
<br />
And for kernel addresses, look for "kernel slide:" value, I assumed 0 in this example<br />
xcrun atos -arch x86_64 -d -o /Volumes/KernelDebugKit/mach_kernel -s 0 0xffffff8000222f79 0xffffff80002dc24e 0xffffff80002f3746 <br />
<br />
<br />
<br />
If you are not panicking, but would like to print the stack at a certain point in the kext, you can use<br />
<br />
OSReportWithBacktrace("I am here: vp %p\n", vp);<br />
<br />
in `printf` style notation.<br />
<br />
<br />
=== Best effort for M1 (arm64)<br />
<br />
org.openzfsonosx.zfs(2.1)[0BF8CB05-9B3B-3182-8DE6-AF14261D75B8]@ 0xfffffe0022410000->0xfffffe00226fffff<br />
0xfffffe0022410000 - 0x88000 = 0xFFFFFE0022388000<br />
<br />
lr: 0xfffffe002348abe4 fp: 0xfffffe3feaf526f0<br />
lr: 0xfffffe002348a9c8 fp: 0xfffffe3feaf52760<br />
<br />
# atos -o module/os/macos/zfs/zfs -arch arm64e -l 0xFFFFFE0022388000 0xfffffe002348abe4 0xfffffe002348a9c8 0xfffffe00235b3a70 0xfffffe00235a52b8 <br />
0xfffffe00234437e8 0xfffffe002348a658 0xfffffe002348a658 0xfffffe0023c3c3e8 0xfffffe0023c40888 0xfffffe00235a7294 0xfffffe00235a51e0 <br />
0xfffffe00234437e8 0xfffffe00225c2ddc 0xfffffe00225c2ddc 0xfffffe00225a9d64 0xfffffe00225a666c 0xfffffe00225a9a74 0xfffffe00225c7304 <br />
0xfffffe00225c3cf4 0xfffffe00224d7cac 0xfffffe002256b794 0xfffffe00225645e0 0xfffffe0022570d9c 0xfffffe002370be4c 0xfffffe00236fef40 <br />
0xfffffe00239b7584 0xfffffe0023a917c0 0xfffffe00235a4f94 0xfffffe00234437e8<br />
<br />
<br />
<br />
<br />
=== Alternate symbol lookup with lldb ===<br />
<br />
Panic:<br />
panic(cpu 5 caller 0xffffff80088d1066): trying to interlock destroyed mutex (0xffffff8029196000)<br />
Backtrace (CPU 5), Frame : Return Address<br />
0xffffff81f49fba80 : 0xffffff8008822fa9 <br />
0xffffff81f49fbb00 : 0xffffff80088d1066 <br />
0xffffff81f49fbb10 : 0xffffff800889c75e <br />
0xffffff81f49fbbe0 : 0xffffff80088ae60c <br />
0xffffff81f49fbc00 : '''0xffffff7f8a4252e0'''<br />
0xffffff81f49fbdf0 : 0xffffff80089ffea9 <br />
net.lundman.zfs(1.0)[0EC79B06-3C9F-3529-8450-42222507F310]@'''0xffffff7f8a33c000'''->0xffffff7f8a545fff<br />
<br />
Assuming you have the same build as panic report, in this case 1.2.7<br />
# lldb<br />
(lldb) target create --no-dependents --arch x86_64 module/zfs/zfs #Binary before moved into zfs.kext<br />
(lldb) target modules load --file zfs __TEXT '''0xffffff7f8a33c000'''<br />
(lldb) image lookup --verbose --address '''0xffffff7f8a4252e0'''<br />
<br />
Address: zfs[0x00000000000e92e0] (zfs.__TEXT.__text + 950160)<br />
Summary: zfs`zfs_vnop_pageout + 1264 at zfs_vnops_osx.c:1236<br />
Module: file = "/Users/lundman/x/zfs/module/zfs/zfs", arch = "x86_64"<br />
CompileUnit: id = {0x00000000}, file = "/Users/lundman/x/zfs/module/zfs/zfs_vnops_osx.c", language = "c89"<br />
'''LineEntry''': [0xffffff7f8a4252da-0xffffff7f8a4252f0): /Users/lundman/x/zfs/module/zfs/'''zfs_vnops_osx.c:1236'''<br />
<br />
zfs_vnops_osx.c:1236<br />
tx = dmu_tx_create(zfsvfs->z_os);<br />
dmu_tx_hold_write(tx, zp->z_id, off, len);<br />
'''dmu_tx_hold_bonus(tx, zp->z_id);'''<br />
err = dmu_tx_assign(tx, TXG_NOWAIT);<br />
<br />
Or just for the kernel<br />
<br />
(lldb) target create --no-dependents --arch x86_64 mach_kernel<br />
(lldb) target modules load --file mach_kernel --slide 0x000000000b600000<br />
(lldb) image lookup -a 0xffffff800b8d6aa7<br />
<br />
=== Kernel to Userland ===<br />
<br />
Connect to crashed kernel:<br />
<br />
# Load the compiled binary, just makes it easier for lldb to find it when connecting<br />
(lldb) target create --no-dependents --arch x86_64 module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs <br />
Current executable set to 'module/os/macos/zfs/zfs.kext/Contents/MacOS/zfs' (x86_64).<br />
# Connect to crashed VM<br />
(lldb) kdp-remote 172.16.248.128<br />
Version: Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/DEVELOPMENT_X86_64; UUID=12647AE2-57FB-35DB-AF57-4B25D060D845; stext=0xffffff802f200000<br />
<br />
In this case we have died when trying to copyinstr() from userland:<br />
<br />
(lldb) up<br />
frame #1: 0xffffff7f8db91238 zfs`history_str_get(zc=0xffffff90a8dec000) at zfs_ioctl.c:295:6<br />
292 return (NULL);<br />
293<br />
294 buf = kmem_alloc(HIS_MAX_RECORD_LEN, KM_SLEEP);<br />
-> 295 if (copyinstr((void *)(uintptr_t)zc->zc_history,<br />
296 buf, HIS_MAX_RECORD_LEN, NULL) != 0) {<br />
297 history_str_free(buf);<br />
298 return (NULL);<br />
(lldb) p zc->zc_history<br />
(uint64_t) $1 = 4413168320<br />
<br />
Find the task ptr for userprocess, a few ways;<br />
<br />
(lldb) showproc 0xffffff804afb3700<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showpid 687<br />
task vm_map ipc_space #acts flags pid process io_policy wq_state command<br />
0xffffff803bb76498 0xffffff804056cf00 0xffffff803bbd4200 2 D 687 0xffffff804afb3700 1 1 0 zpool<br />
<br />
(lldb) showprocinfo 0xffffff804afb3700<br />
Process 0xffffff804afb3700<br />
name zpool<br />
pid:687 task:0xffffff803bb76498 p_stat:2 parent pid: 686<br />
Cred: euid 0 ruid 0 svuid 0<br />
Flags: 0x4006<br />
0x00000002 - has a controlling tty<br />
0x00000004 - process is 64 bit<br />
0x00004000 - process has called exec<br />
<br />
You can view user process threads:<br />
<br />
(lldb) showtaskuserstacks 0xffffff803bb76498<br />
Process: zpool [687]<br />
Path: zpool<br />
Identifier: zpool<br />
Version: ??? (???)<br />
Code Type: X86-64 (Native)<br />
Parent Process: bash [686]<br />
<br />
Date/Time: 2020-05-08 09:20:50.000 -0800<br />
OS Version: Mac OS X 10.8 (18G103)<br />
Report Version: 8<br />
<br />
Exception Type: n/a<br />
Exception Codes: n/a<br />
Crashed Thread: 0<br />
<br />
Application Specific Information:<br />
Synthetic crash log generated from Kernel userstacks<br />
<br />
Binary Images:<br />
Unknown dyld all_image_infos version number 15<br />
0x10efd9000 - 0x10f018fff zpool <br />
(??? - ???) <7234AC69-6CE8-321D-9ACC-4F73BB964650> /Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool<br />
<br />
[snip]<br />
<br />
Create a gdb-server to debug zpool process:<br />
<br />
(lldb) beginusertaskdebugging 0xffffff803bb76498<br />
Starting debug session for zpool at localhost:7936.<br />
<br />
From another shell, start to debug the zpool process, <br />
using the convenience wrapper script:<br />
All it does is run "lldb zpool" after setting DYLD_LIBRARY_PATH so you can<br />
run it in the build directory.<br />
<br />
± ./scripts/debug-macos.sh zpool<br />
(lldb) target create "/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool"<br />
Current executable set to '/Users/lundman/src/zfs/openzfs/scripts/..//cmd/zpool/.libs/zpool' (x86_64).<br />
(lldb) gdb-remote localhost:7936<br />
Process 687 stopped<br />
* thread #1, stop reason = signal SIGINT<br />
frame #0: 0x00007fff63fbfb5a libsystem_kernel.dylib<br />
-> 0x7fff63fbfb5a: jae 0x7fff63fbfb64<br />
0x7fff63fbfb5c: movq %rax, %rdi<br />
0x7fff63fbfb5f: jmp 0x7fff63fbf421<br />
0x7fff63fbfb64: retq<br />
<br />
(lldb) up<br />
frame #6: 0x000000010efdc434 zpool`zpool_export_one(zhp=0x00007ff51440b750, data=0x00007ffee0c25718) at zpool_main.c:1706:13<br />
1703 if (cb->hardforce) {<br />
1704 if (zpool_export_force(zhp, history_str) != 0)<br />
1705 return (1);<br />
-> 1706 } else if (zpool_export(zhp, cb->force, history_str) != 0) {<br />
1707 return (1);<br />
1708 }<br />
1709<br />
(lldb) p history_str<br />
(char [2049]) $0 = "zpool export BOOM"<br />
<br />
=== Links ===<br />
<br />
https://developer.apple.com/library/mac/qa/qa1264/_index.html<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-BABDGEGF<br />
<br />
https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man8/kext_logging.8.html</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-04-15T06:20:54Z<p>Lundman: </p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty2.exe 2022/04/15 filename parsing fix! this one!<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundmanhttps://openzfsonosx.org/wiki/Windows_buildsWindows builds2022-04-15T04:17:35Z<p>Lundman: </p>
<hr />
<div><br />
== Nightly builds ==<br />
<br />
We do not have nightly builds. But occasional-builds.<br />
<br />
=== Fully code-signed ===<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty.exe 2022/04/12 fixes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-981-gba75bdc80-dirty.exe 2022/04/05 Eldask: Add tunables<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-968-g32152cd8a-dirty.exe 2022/02/27 REPACK.PROPER<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.0-2041-gfbc23d71b-dirty.exe 2021/12/16 Win10 First fully signed installer<br />
<br />
=== Partially code-signed ===<br />
<br />
Use the Advanced Boot options and select to "disable driver signature enforcement"<br />
<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-988-g03d09b068-dirty.exe 2022/04/15 lots of fixes, this is the one<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-984-gb95b51b57-dirty2.exe 2022/04/13 Wrap CcSetFileSizes<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-970-gc93310a05-dirty.exe 2022/03/14 add stack remaining kstats<br />
https://www.lundman.net/OpenZFSOnWindows-debug-2.1.99-969-gb919e8c14-dirty.exe 2022/03/11 Lots of pool-import work, REPACK<br />
<br />
=== Not so relevant now ===<br />
<br />
https://support.viewsonic.com/en/support/solutions/articles/33000252416-how-to-install-unsigned-drivers-in-windows-10<br />
<br />
Or enable developer mode:<br />
<br />
https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/</div>Lundman