Contribute
Register

[Guide] Avoid APFS conversion on High Sierra update or fresh install

RehabMan

Moderator
Joined
May 2, 2012
Messages
181,058
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
As you already know, macOS High Sierra includes a new file system APFS. If your system drive is solid state, the installer will convert from HFS+J to APFS in both a fresh install scenario and an update scenario.

Fortunately, there a ways around this automatic conversion. It is controlled by the ConvertToAPFS option in /macOS Install Data/minstallconfig.xml, which can be controlled by using 'startosinstall' from Terminal, or edited after the fact (see post #2).

Note: This guide does not apply to macOS Mojave (or later). Apple has removed this option and will force APFS conversion. You can use CCC (Carbon Copy Cloner) to clone from APFS to HFS+J, but that may be a fight you have to take on every update going forward. So,... If you're running Mojave, you will probably end up adopting APFS.


Update scenario using 'startosinstall'

After downloading the 10.13 installer, instead of running it, quit.

Then in Terminal:
Code:
/Applications/"Install macOS High Sierra.app"/Contents/Resources/startosinstall --converttoapfs NO --agreetolicense

The system will copy some files, then reboot, and you'll be able to start the installer (without APFS conversion) by booting the "Boot macOS Install from ..." option in Clover.


Fresh install scenario (or update) using 'startosinstall'

You may be able to use the startosinstall in the fresh install scenario by invoking it from Terminal after booting the installer from USB. But when I tested it in the betas, it did not work, likely due to a bug in the startosinstall code that prevented it from running from the installer. It seems to be fixed by Apple in later releases of the 10.13 installer.

Terminal is available from the "Utilities" menu within the macOS installer.

If you were to attempt it, the USB installer volume (install_osx if following my guide), appears to be mounted at /Volumes/"Image Volume":
Code:
/Volumes/"Image Volume/Install macOS High Sierra.app"/Contents/Resources/startosinstall --volume the_target_volume --converttoapfs NO --agreetolicense

Note: Change the_target_volume as appropriate for the actual name you decided to use for your macOS target volume. Hopefully it is obvious that the target volume must already be formatted as HFS+J.

The --volume option is not available unless running with SIP disabled. Settings for disabling SIP are provided in the plists linked by the Clover laptop guide: https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/


Alternative methods

Read post #2:
https://www.tonymacx86.com/threads/...-update-or-fresh-install.232855/#post-1602625


Background information

https://forums.developer.apple.com/thread/48793
http://www.insanelymac.com/forum/topic/324194-pre-release-macos-high-sierra/page-191#entry2497909
 
Last edited:
The recommended methods are in post #1.

This post contains alternatives that may still be useful in scenarios that post #1 methods may not be possible.


Fresh install scenario (or update), modifying minstallconfig.xml using PlistBuddy

Refer to this guide for an overview of the installation process from USB:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

The process involves creating an installer USB with createinstallmedia, then booting that USB (via Clover on the same USB). You then run the installer, create an HFS+J partition suitable for macOS with Disk Utility, then point the installer to that partition.

Even though you create a new HFS+J partition, if the target is an SSD, the installer will still convert it to APFS.

To avoid that, after running the installer, and upon the first reboot where you would be normally directing Clover to boot the next stage of the installer by selecting "Boot macOS Install from ...", instead, boot the "install_osx" partition on USB again. When that is finished booting, choose Terminal from the Utilities menu.

Now, in Terminal, navigate to your target volume:
Code:
# list /Volumes to remind yourself of the name you gave it
ls -l /Volumes
# then change your working directory to it (in my case, I used '1013')
cd /Volumes/1013
# now change to the "macOS Install Data" directory
cd "macOS Install Data"
# now fix the minstallconfig.xml with PlistBuddy
/usr/libexec/PlistBuddy -c "Set :ConvertToAPFS false" minstallconfig.xml

That's it! Now you're ready to quit Terminal, reboot, and continue the installation process by booting the "Boot macOS Install from ..." partition. When you're done, you'll have a fresh install on HFS+J instead of APFS.


Fresh install scenario (or update), modifying minstallconfig.xml using vi


Refer to this guide for an overview of the installation process from USB:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

The process involves creating an installer USB with createinstallmedia, then booting that USB (via Clover on the same USB). You then run the installer, create an HFS+J partition suitable for macOS with Disk Utility, then point the installer to that partition.

Even though you create a new HFS+J partition, if the target is an SSD, the installer will still convert it to APFS.

To avoid that, after running the installer, and upon the first reboot where you would be normally directing Clover to boot the next stage of the installer by selecting "Boot macOS Install from ...", instead, boot the "install_osx" partition on USB again. When that is finished booting, choose Terminal from the Utilities menu.

Now, in Terminal, navigate to your target volume:
Code:
# list /Volumes to remind yourself of the name you gave it
ls -l /Volumes
# then change your working directory to it (in my case, I used '1013')
cd /Volumes/1013
# now change to the "macOS Install Data" directory
cd "macOS Install Data"

Now, still in Terminal, edit the minstallconfig.xml file with vi:
Code:
vi minstallconfig.xml

You will find code:
Code:
    <key>ConvertToAPFS</key>
    <true/>

Your goal is to change the true to false.

If you know how to use vi, this will not be a problem. Otherwise, follow the instructions below very carefully:
- arrow such that the cursor is at the 't' in 'true'
- press the Del key (forward delete) four times (this removes 'true')
- press i (this puts vi into insert mode)
- type 'false' (without the quotes)
- press Esc (this takes vi out of insert mode)

The result should look like:
Code:
    <key>ConvertToAPFS</key>
    <false/>

No other changes should be made.

If the file looks good:
- press ':wq' (without the quotes) and press enter (':wq' saves the file and exits vi)

If the file doesn't look right, don't save it:
- press ':q!' (without the quotes) and press enter

That's it! Now you're ready to quit Terminal, reboot, and continue the installation process by booting the "Boot macOS Install from ..." partition. When you're done, you'll have a fresh install on HFS+J instead of APFS.
 
Last edited:
As you already know, macOS High Sierra includes a new file system APFS. If your system drive is solid state, the installer will convert from HFS+J to APFS in both a fresh install scenario and an update scenario.

Fortunately, there a ways around this automatic conversion. It is controlled by the ConvertToAPFS option in /macOS Install Data/minstallconfig.xml.


Update scenario

The update scenario is a little bit easier than the fresh install procedures, as there is a command line tool we can run that sets ConvertToAPFS false with a command line option.

After downloading the 10.13 installer, instead of running it, quit.

Then in Terminal:
Code:
/Applications/"Install macOS High Sierra.app"/Contents/Resources/startosinstall --converttoapfs NO --agreetolicense

The system will copy some files, then reboot, and you'll be able to start the installer (without APFS conversion) by booting the "Boot macOS Install from ..." option in Clover.


Fresh install scenario

Refer to this guide for an overview of the installation process from USB:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

The process involves creating an installer USB with createinstallmedia, then booting that USB (via Clover on the same USB). You then run the installer create an HFS+J partition suitable for macOS with Disk Utility, then point the installer to that partition.

Even though you create a new HFS+J partition, if the target is an SSD, the installer will still convert it to APFS.

To avoid that, after running the installer, and upon the first reboot where you would be normally directing Clover to boot the next stage of the installer by selecting "Boot macOS Install from ...", instead boot the "install_osx" partition on USB again. When that is finished booting, choose Terminal from the Utilities menu.

Now, in Terminal, navigate to your target volume:
Code:
# list /Volumes to remind yourself of the name you gave it
ls -l /Volumes
# then change your working directory to it (in my case, I used '1013')
cd /Volumes/1013
# now change to the "macOS Install Data" directory
cd "macOS Install Data"

Now, still in Terminal, edit the minstallconfig.xml file with vi:
Code:
vi minstallconfig.xml

You will find code:
Code:
    <key>ConvertToAPFS</key>
    <true/>

Your goal is to change the true to false.

If you know how to use vi, this will not be a problem. Otherwise, follow the instructions below very carefully:
- arrow such that the cursor is at the 't' in 'true'
- press the Del key (forward delete) four times (this removes 'true')
- press i (this puts you in insert mode)
- type 'false' (without the quotes)
- press Esc (this takes you out of insert mode)

The result should look like:
Code:
    <key>ConvertToAPFS</key>
    <false/>

If the file looks good:
- press ':wq' (without the quotes) and press enter :)wq saves the file and exits vi)

If the file doesn't look right, don't save it:
- press ':q!' (without the quotes) and press enter

That's it! Now you're ready to quit Terminal, reboot, and continue the installation process by booting the "Boot macOS Install from ..." partition. When you're done, you'll have a fresh install on HFS+J instead of APFS.


Background information

https://forums.developer.apple.com/thread/48793
http://www.insanelymac.com/forum/topic/324194-pre-release-macos-high-sierra/page-191#entry2497909
Thank you once again for this great guide! My laptop has an HDD. So I don't need to follow this guide. Right?
 
Thank you once again for this great guide! My laptop has an HDD. So I don't need to follow this guide. Right?

APFS conversion is only automatic for solid state.
I suppose you could force APFS on an HDD if you wanted to, but last I checked APFS is quite slow on HDD.
 
Hello, im updated from 10.12.6 to 10.13. All works fine, but my ssd not converted to apfs.
If I try to manual converting I get an error com.apple.DiskManagement -error 69546.
Any idea?
 
Thanks for your tip RehabMan, but please could you explain why someone should avoid the conversion? I mean, what are the drawbacks leaving system convert the partition to the new file system?
 
Hello, im updated from 10.12.6 to 10.13. All works fine, but my ssd not converted to apfs.
If I try to manual converting I get an error com.apple.DiskManagement -error 69546.
Any idea?

Attach output of 'diskutil list'.
 
Thanks for your tip RehabMan, but please could you explain why someone should avoid the conversion? I mean, what are the drawbacks leaving system convert the partition to the new file system?

It is new, likely buggy. Some may want to avoid until a later release. Like I saw written elsewhere, "now the true beta test begins".

Also, since it is new, it is likely there are various 3rd party tools/utilities that will not work with it until the software vendor updates.

Noticed on one of my systems (Crucial M4 SSD) that I had to disable the TRIM patch. With TRIM, getting slow boots, I think fsck was running each time, so slow that battery status failed (due to battery code starting too soon, before the system was ready, was able to fix that by changing "FirstPollDelay" from 4000 to 16000, but that problem went away when I disabled TRIM). For now, running that system withou the TRIM patch.
 
It is new, likely buggy. Some may want to avoid until a later release. Like I saw written elsewhere, "now the true beta test begins".

Also, since it is new, it is likely there are various 3rd party tools/utilities that will not work with it until the software vendor updates.

Noticed on one of my systems (Crucial M4 SSD) that I had to disable the TRIM patch. With TRIM, getting slow boots, I think fsck was running each time, so slow that battery status failed (due to battery code starting too soon, before the system was ready, was able to fix that by changing "FirstPollDelay" from 4000 to 16000, but that problem went away when I disabled TRIM). For now, running that system withou the TRIM patch.
I had the same issues with battery. The battery icon wouldn't "remember" to show on reboots, wouldn't update when plugging/unplugging power and wouldn't change numbers while charging or discharging. Disabled the trim patch and now (touch wood) seems to behaving itself

i may wipe and reinstall and use this guide to not use the APFS system

unless there is a way to convert back?
 
I had the same issues with battery. The battery icon wouldn't "remember" to show on reboots, wouldn't update when plugging/unplugging power and wouldn't change numbers while charging or discharging. Disabled the trim patch and now (touch wood) seems to behaving itself

Yup.
TRIM causes issues with APFS and non-Apple SSD hardware more than it did with HFS+J.

unless there is a way to convert back?

Converting back to HFS+ requires a fresh install.
 
Back
Top