pfix v3.0 Released
This version is now depreciated, consult the downloads page for a link to the latest version.
This is a complete rewrite of the pfix utility. In my last few revisions of the 2.x branch a number of potential problems were revealed to me. Of the reproducible errors – errors due to problems with kextd were the main culprit, even when forced rebuilding of kextcache was done. Though failures such as these were limited to a small number of end users any failure of pfix is unacceptable to me. After extensive testing of many different new methods to resolve all of these issues pfix 3.0 is ready for public release.
This version will take longer to execute than previous versions when correcting permissions and rebuilding caches for a root system volume but it will do so with virtually no possibility of errors. If all you are doing is swapping around a few kexts in /Extra however I have introduced a flag to skip the repair of the system permissions and caches for a very quick operation. Additionally pfix is now designed to operate from /usr/sbin/ like a standard *nix utility and includes a usage output viewable by running “pfix –help” (without the quotes) from a terminal.
Basic Usage: pfix [option]
Example Usage: pfix -s -v 1 -t /Option GNU long option Meaning
-h –help Show this message
-s –skipsystem Don’t repair /system/library/extensions
-v <level> –verbose <level> Set kextcache output’s verbosity level
-t <path> –target <path> Path to target partition to run pfix on
A complete list of the changes in v3.0 are as follows:
- -Completely re-written and restructured code with much cleaner syntax and improved functionality
- -Improved terminal log output information and format
- -Added run time flags
- -Added help flag and usage output
- -Added skip system repair flag (if you only need to quickly repair /Extra)
- -Added kextcache/diskutil verbosity flag (no verbosity by default [quiet])
- -Added target flag (a list of available targets will be displayed by default)
- -Debugged several functions for improved operation and log output when run from OS X installation devices.
- -Now removes all system caches prior to rebuilding instead of only removing kext caches.
- -Repair permissions using diskutil prior to rebuilding caches when targeting root partition. [no longer optional]
- -Updates prelinked kernel cache & kext info caches prior to rebuilding system kext caches when targeting root.
- -Created installation package to properly install pfix to /usr/sbin/ so that it is available from any terminal path.
Tags: Hackint0sh, OS X, Snow Leopard, Troubleshooting
This entry was posted on Tuesday, March 2nd, 2010 at 16:52 by Conti and is filed under myHack Utilities. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Brian Richmond: If you run pfix 3 without any flags it should prompt you to select from a numbered list, if you enter the number of the volume you wish to repair it will do so, for example if I run pfix without any flags from my USB Installer I am prompted with a list that includes / and /Volumes/OSx86 – being my internal drive that I wish to repair. / is number 1, /Volumes/0Sx86 is number 2, so I simply press the number 2 and then enter and it repairs the correct volume.
If it does not do this for you, you may want to double check that you have the latest version of pfix and/or download the pfix installer or myhack installer and ensure that it is installed correctly to your system path.
I ran Pfix 3 from the terminal with the -t command and it fixed permissions on the correct partition. Why doesn’t it do that when just clicking on Pfix? ( See my previous posting )
I tried to use Pfix 3 to fix permissions of an OSX86 installation on another partition ( /Volumes/Untitled 2 ) but it always reverts to the booted OSX86 partition ( / )
I used an earlier version, Pfix 2.3 which indicates that it is repairing the /Volumes/Untitled 2 partition.
Is there something wrong or does Pfix 3 always indicate that it is repairing the / partition regardless of what’s entered? If there is a problem, how may I fix it?
I am having the exact same problem as Geoff and Rowan and tried both of the listed methods with no luck. I receive the same message, ‘ illegal operation –q’.
Using leopard 10.5.8, but on a powerpc if this matters.
Any help greatly appreciated, thanks.
I am running on 10.5.8, similar error “kextcache: illegal option — q”
regards,
tan