Contribute
Register

File structure - Some of the things I wish I knew before starting

Status
Not open for further replies.
Joined
Jan 21, 2012
Messages
991
Motherboard
HP 8300 Elite
CPU
i5-3570
Graphics
GT 710
Mobile Phone
  1. Android
This is a brief and incomplete guide to how most hackintosh builds are structured. It has been written by a novice to hackintoshing about some of the things he wish he knew before he started.

It is important to note there are other ways of making a hackintosh where the following description does not apply: but it gives a broad stroke description of the default setup for most modern hackintoshes at the cost of over-simplifying some of the details. If you can see how your machine is different to the idealised machine described here or can spot the over-simplifications it contains, then this guide is probably not intended for you.

Sections
  1. Installation Process
  2. UEFI – is Good, And Why You Enter the bios on A UEFI Machine
  3. Disk Format – Hidden Partition
  4. EFI - The First Partition
  5. Clover - The first program to run on boot
  6. File Structure
1. Installation Process
  • Make an Install USB on a Mac
  • Setup the UEFI settings on the computer
  • Use Install USB to install macOS
  • Install & Configure Clover
  • Install and configure the other things you need
2. UEFI - is Good, And Why You Enter the BIOS on a UEFI Machine
Most PC's that have a 3rd generation Intel CPU and just about every motherboard made for the 4th generation CPU's onward, and all modern Macs, have a UEFI interface that deals with hardware settings when the machine is turned on. Having a UEFI system generally makes turning a PC into an effective hackintosh more likely.

Older PC's did have a 'BIOS' which performed a similar role, and the language we used then still remains, so you will often see the phrase "Enter the BIOS" and you should not let this confuse - as long as you see your machine has 'UEFI' written somewhere in its description then you have a UEFI capable machine and the phrase 'entering the BIOS' is equivalent to "entering the motherboards UEFI setup utility".

If you don’t have a UEFI system, much of the following does not apply.

3. Disk Format – Hidden Partition
When you follow the instructions for formatting your disk or USB stick to prepare for hackintoshing, it appears that you are only making One partition but normally Two partitions are created but one is quite small and is silently created and hidden from you: this hidden partition is always called 'EFI'.

4. EFI - The First Partition
On the first boot device, this hidden EFI partition is used to further configure the machine before the main operating system runs. It is used on hackintoshes to run the Clover program.

5. Clover - The First Program to Run on Boot
The Clover program takes control early in the boot process. By default Clover reads from and uses the settings found in a configuration file named config.plist. The config.plist settings file, directs how Clover alters the configuration of the computer before it loads the main operating system. Configuring Clover’s settings is a big part of getting hackintoshes working right.

You can interrupt the boot process at the ‘Clover Screen’ (by pressing any arrow key) and Clover then allows for;
  • some settings held in config.plist to be altered or ignored, or
  • to use a different file from config.plist to read the settings from, or
  • selecting which partition to load the operating system from,
    for that boot only.
That is, changes you make at the Clover Screen are applied during the current boot process but not saved as part of the configuration for the next boot.

Clover has other uses including being able to dump information about the system into files on the EFI partition.

Clover Configurator” is a separate companion program to Clover that can only be run once OSX is installed as it is a normal Mac program. Clover Configurator is designed to make editing Clover's persistent settings easier.

6. File Structure
System Drives that have a hackintosh install on, by default have two partitions - 1. the hidden EFI partition and 2. the main partition that OSX is installed on.

1. On Hidden EFI Partition

\\EFI (Hidden Partition)
----\EFI (Folder)
--------\Clover
--------
config.plist
-----------\ACPI
---------------\Original
---------------\Patched
-----------\Kexts
---------------\OSX10.x.x
---------------\Other

The hidden partition named ‘EFI’
is where most of the configuration is prepared and as the EFI partition is hidden, we need to take steps to mount it so we can see its contents. To mount this hidden partition, you can use programs like “EFI Mounter” or “Clover Configurator”. Any files copied over to EFI must go in the right folder, but no other special installation process is required.

The EFI partition always has a folder named ‘EFI’ within it.
It is sometimes referred to as ‘//EFI/EFI’ but more often referred to as ‘the EFI folder’.

When Clover is installed, it creates a folder called ‘Clover’ inside the EFI folder - often referred to as the ‘Clover folder’.

//EFI/EFI/Clover is used to hold the main configuration file called “config.plist” we generally edit this file using the program ‘Clover Configurator

Inside the Clover folder there is a folder called Kexts which has sub folders named after versions of OSX and a folder called 'Other'

//EFI/EFI/Clover/Kexts/Other is used to hold kexts that are essential to the booting of the machine and will be loaded no matter which version of macOS is being loaded. The folders named after the macOS versions may also contain kexts and will be loaded dependent upon the version of macOS being loaded.

Also in the Clover folder, is a folder called ACPI, which has two sub folders – ‘Original’ and ‘Patched’
//EFI/EFI/Clover/ACPI/Original can be used by Clover to hold the machines Original ACPI configuration
//EFI/EFI/Clover/ACPI/Patched can be used to hold Patches that are applied to the ACPI configuration by Clover.

Other folders in //EFI/EFI and //EFI/EFI/Clover contain other critical files but it is rare that a new build will require knowledge of them and they are best ignored until you find a reason to do otherwise.

2. On Main Partition
On the partition that macOS is installed on, the main folder that is used for hackintosh purposes is ‘/Library/Extensions/’ which is used to hold .kext configuration files. The files in here need to be specially installed, simply copying the files over does not work. This special install process can be done from the command line or using a kext installation program like ‘KextBeast’.

Kexts can go on both the EFI partition in EFI/CLOVER/kexts/other/ and on the OSX partition in /Library/Extensions/, which files go where is sometimes critical and sometimes a matter of preference, instructions will normally make the install location clear but should you find that you have the same kext in /Library/Extensions and in /EFI/Clover/kexts then they MUST be the same versions to prevent problems.



Any suggestions as to what else might go in this description appreciated.
 
Last edited:
This is a brief and incomplete guide to how most hackintosh builds are structured. It has been written by a novice to hackintoshing about some of the things he wish he knew before he started.

It is important to note there are other ways of making a hackintosh where the following description does not apply: but it gives a broad stroke description of the default setup for most modern hackintoshes at the cost of over-simplifying some of the details. If you can see how your machine is different to the idealised machine described here or can spot the over-simplifications it contains, then this guide is probably not intended for you.

Sections
  1. Installation Process
  2. UEFI – is Good, And Why You Enter the bios on A UEFI Machine
  3. Disk Format – Hidden Partition
  4. EFI - The First Partition
  5. Clover - The first program to run on boot
  6. File Structure
1. Installation Process
  • Make an Install USB on a Mac
  • Setup the UEFI settings on the computer
  • Use Install USB to install macOS
  • Install & Configure Clover
  • Install and configure the other things you need
2. UEFI - is Good, And Why You Enter the BIOS on a UEFI Machine
Most PC's that have a 3rd generation Intel CPU and just about every motherboard made for the 4th generation CPU's onward, and all modern Macs, have a UEFI interface that deals with hardware settings when the machine is turned on. Having a UEFI system generally makes turning a PC into an effective hackintosh more likely.

Older PC's did have a 'BIOS' which performed a similar role, and the language we used then still remains, so you will often see the phrase "Enter the BIOS" and you should not let this confuse - as long as you see your machine has 'UEFI' written somewhere in its description then you have a UEFI capable machine and the phrase 'entering the BIOS' is equivalent to "entering the motherboards UEFI setup utility".

If you don’t have a UEFI system, much of the following does not apply.

3. Disk Format – Hidden Partition
When you follow the instructions for formatting your disk or USB stick to prepare for hackintoshing, it appears that you are only making One partition but normally Two partitions are created but one is quite small and is silently created and hidden from you: this hidden partition is always called 'EFI'.

4. EFI - The First Partition
On the first boot device, this hidden EFI partition is used to further configure the machine before the main operating system runs. It is used on hackintoshes to run the Clover program.

5. Clover - The First Program to Run on Boot
The Clover program takes control early in the boot process. By default Clover reads from and uses the settings found in a configuration file named config.plist. The config.plist settings file, directs how Clover alters the configuration of the computer before it loads the main operating system. Configuring Clover’s settings is a big part of getting hackintoshes working right.

You can interrupt the boot process at the ‘Clover Screen’ (by pressing any arrow key) and Clover then allows for;
  • some settings held in config.plist to be altered or ignored, or
  • to use a different file from config.plist to read the settings from, or
  • selecting which partition to load the operating system from,
    for that boot only.
That is, changes you make at the Clover Screen are applied during the current boot process but not saved as part of the configuration for the next boot.

Clover has other uses including being able to dump information about the system into files on the EFI partition.

Clover Configurator” is a separate companion program to Clover that can only be run once OSX is installed as it is a normal Mac program. Clover Configurator is designed to make editing Clover's permanent settings easier.

6. File Structure
System Drives that have a hackintosh install on, by default have two partitions - 1. the hidden EFI partition and 2. the main partition that OSX is installed on.

1. On Hidden EFI Partition

\\EFI (Hidden Partition)
----\EFI (Folder)
--------\Clover
--------
config.plist
-----------\ACPI
---------------\Original
---------------\Patched
-----------\Kexts
---------------\OSX10.x.x
---------------\Other

The hidden partition named ‘EFI’
is where most of the configuration is prepared and as the EFI partition is hidden, we need to take steps to mount it so we can see its contents. To mount this hidden partition, you can use programs like “EFI Mounter” or “Clover Configurator”. Any files copied over to EFI must go in the right folder, but no other special installation process is required.

The EFI partition always has a folder named ‘EFI’ within it.
It is sometimes referred to as ‘//EFI/EFI’ but more often referred to as ‘the EFI folder’.

When Clover is installed, it creates a folder called ‘Clover’ inside the EFI folder - often referred to as the ‘Clover folder’.

//EFI/EFI/Clover is used to hold the main configuration file called “config.plist” we generally edit this file using the program ‘Clover Configurator

Inside the Clover folder there is a folder called Kexts which has sub folders named after versions of OSX and a folder called 'Other'

//EFI/EFI/Clover/Kexts/Other is used to hold kexts that are essential to the booting of the machine and will be loaded no matter which version of macOS is being loaded. The folders named after the macOS versions may also contain kexts and will be loaded dependent upon the version of macOS being loaded.

Also in the Clover folder, is a folder called ACPI, which has two sub folders – ‘Original’ and ‘Patched’
//EFI/EFI/Clover/ACPI/Original can be used by Clover to hold the machines Original ACPI configuration
//EFI/EFI/Clover/ACPI/Patched can be used to hold Patches that are applied to the ACPI configuration by Clover.

Other folders in //EFI/EFI and //EFI/EFI/Clover contain other critical files but it is rare that a new build will require knowledge of them and they are best ignored until you find a reason to do otherwise.

2. On Main Partition
On the partition that macOS is installed on, the main folder that is used for hackintosh purposes is ‘/Library/Extensions/’ which is used to hold .kext configuration files. The files in here need to be specially installed, simply copying the files over does not work. This special install process can be done from the command line or using a kext installation program like ‘KextBeast’.

Kexts can go on both the EFI/CLOVER/kexts/other/ and /Library/Extensions/, which files go where is sometimes critical and sometimes a matter of preference, instructions will normally make the install location clear.

Any suggestions as to what else might go in this description appreciated.

Very good explanation to help beginners see the "big picture" of what happens when creating a hackintosh. :thumbup:
One other important point to make. The kexts that get installed into the "other" folder and to /Library/Extensions should be the exact same version or that may cause problems. If Lilu 1.3.6 is in one of those two places and another version is also installed that may create issues.
 
Status
Not open for further replies.
Back
Top