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

	<entry>
		<id>https://openzfsonosx.org/wiki/ZVOL_boot</id>
		<title>ZVOL boot</title>
		<link rel="alternate" type="text/html" href="https://openzfsonosx.org/wiki/ZVOL_boot"/>
				<updated>2025-03-03T19:13:07Z</updated>
		
		<summary type="html">&lt;p&gt;95.222.158.219: /* Clone root */ Mention the noowners problem.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== ZVOL Boot ===&lt;br /&gt;
&lt;br /&gt;
Using the same steps to create the boot helper partition as [[ZFS on Boot]], you may install Mac OS X onto a ZVOL device and use it as your boot volume.&lt;br /&gt;
&lt;br /&gt;
==== Disable bootfs ====&lt;br /&gt;
&lt;br /&gt;
zvol boot does not currently co-exist with zfs boot (planned to be fixed). The presence of the '''bootfs''' property will take precedence at boot time.&lt;br /&gt;
&lt;br /&gt;
You will need to clear bootfs when using zvol boot:&lt;br /&gt;
&lt;br /&gt;
 # &amp;lt;nowiki&amp;gt;sudo zpool set bootfs='' poolname&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using two single quotes will remove the previous bootfs.&lt;br /&gt;
&lt;br /&gt;
==== Create zvol ====&lt;br /&gt;
 # zfs create -sV 80g rpool/ZVOL/MacOS&lt;br /&gt;
&lt;br /&gt;
Get the diskN for that device&lt;br /&gt;
 # zvol=`ioreg -trn &amp;quot;ZVOL rpool/ZVOL/MacOS Media&amp;quot; | grep &amp;quot;BSD Name&amp;quot; | awk -F'&amp;quot;' '{print $4}'`&lt;br /&gt;
   (it would be nice if we could just # zfs get zvol-disk rpool/ZVOL/MacOS)&lt;br /&gt;
&lt;br /&gt;
Erase and create a volume&lt;br /&gt;
&lt;br /&gt;
With partition map:&lt;br /&gt;
 # diskutil eraseDisk JHFS+ MacOS ${zvol}&lt;br /&gt;
   Note: direct OS install may only be allowed with a partition map, testing needed&lt;br /&gt;
&lt;br /&gt;
Without partitions:&lt;br /&gt;
 # diskutil eraseVolume JHFS+ MacOS ${zvol}&lt;br /&gt;
&lt;br /&gt;
Alternate method, also without partitions and using zvol symlink:&lt;br /&gt;
 # newfs_hfs -J -v &amp;quot;MacOS&amp;quot; /var/run/zfs/zvol/rpool/ZVOL/MacOS&lt;br /&gt;
&lt;br /&gt;
==== Clone root ====&lt;br /&gt;
Ensure ownership is enabled on your HFS+ volume:&lt;br /&gt;
 # mount | grep /Volumes/MacOS&lt;br /&gt;
 /dev/disk6s2 on /Volumes/MacOS (hfs, local, nodev, nosuid, journaled)&lt;br /&gt;
If it mentions &amp;quot;noowners&amp;quot;, you need to enable ownership for the volume in the &amp;quot;Get Info&amp;quot; dialog before proceeding with cloning.&lt;br /&gt;
&lt;br /&gt;
Clone an existing Mac OS&lt;br /&gt;
 # rsync -axH --exclude=&amp;quot;.Spotlight-V100&amp;quot; --exclude=&amp;quot;.fseventsd&amp;quot; \&lt;br /&gt;
  --exclude=&amp;quot;.vol&amp;quot; &amp;quot;/Volumes/Macintosh HD/&amp;quot; &amp;quot;/Volumes/MacOS/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Or use Apple System Restore&lt;br /&gt;
 # asr --source &amp;quot;/Volumes/Macintosh HD&amp;quot; --target &amp;quot;/Volumes/MacOS&amp;quot; --erase&lt;br /&gt;
&lt;br /&gt;
==== New install ====&lt;br /&gt;
It is possible, but requires a few steps, to install Mac OS onto a ZVOL with the standard Apple installer.&lt;br /&gt;
Download the installer from the App Store, and create an installer flash drive.&lt;br /&gt;
Boot into the Installer, with a standard Mac OS disk available '''Macintosh HD''' (that has ZFS installed).&lt;br /&gt;
&lt;br /&gt;
From '''Utilities-&amp;gt;Terminal''' you can:&lt;br /&gt;
 # kextload &amp;quot;/Volumes/Macintosh HD/Library/Extensions/spl.kext&amp;quot;&lt;br /&gt;
 # kextload &amp;quot;/Volumes/Macintosh HD/Library/Extensions/zfs.kext&amp;quot;&lt;br /&gt;
&lt;br /&gt;
At that point you need access to the zpool and zfs commands, which require the libzfs and libzpool libraries. To work around the install environment, simply:&lt;br /&gt;
 # chroot &amp;quot;/Volumes/Macintosh HD&amp;quot;&lt;br /&gt;
 # zpool import&lt;br /&gt;
Or if necessary&lt;br /&gt;
 # /usr/local/sbin/zpool import&lt;br /&gt;
&lt;br /&gt;
This worked with El Capitan Install 10.11 and the signed O3x from [[Downloads]].&lt;br /&gt;
I don't remember which version of O3x, but I believe it was 1.4.5 or so.&lt;br /&gt;
&lt;br /&gt;
==== Setup boot helper ====&lt;br /&gt;
&lt;br /&gt;
Boot helper can be setup similar to the boot helper for [[ZFS on Boot]] with some differences.&lt;br /&gt;
&lt;br /&gt;
Root UUID must be set to the Volume UUID of the zvol. You can retrieve this by:&lt;br /&gt;
&lt;br /&gt;
 # diskutil info diskN | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For a volume directly within a zvol, or&lt;br /&gt;
&lt;br /&gt;
 # diskutil info diskNsN | grep &amp;quot;Volume UUID&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For a zvol with a partition map.&lt;br /&gt;
&lt;br /&gt;
Kernel Flags should contain &amp;quot;zfs_boot=poolname&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See [[Boot.plist]] for sample plist files.&lt;br /&gt;
&lt;br /&gt;
At this time zfs_boot=poolname/zvol or poolname/dataset/zvol will only import the zpool &amp;quot;poolname&amp;quot; and does not check or mount the zvol specified. Correctly setting Root UUID to match will inform the OS to locate the root volume.&lt;br /&gt;
&lt;br /&gt;
In the future, it will be possible to specify a zvol by name, which will then be inspected for matching volume UUID and presented for mount. This would prevent any duplicate UUID clashes due to `zfs clone` copies. To do so will require an additional property zfs_root_uuid=&amp;lt;uuid&amp;gt;, or perhaps zfs_root_partition=N, so that the OS does not try to automatically load the first matching volume.&lt;/div&gt;</summary>
		<author><name>95.222.158.219</name></author>	</entry>

	</feed>