Current Version: 0.4.1
Enterprise can be obtained from the official repository on GitHub. Click on the links below to be directed to the appropriate pages:
There are currently no stable releases.
Version 0.4.1 (18 December 2017)
Version 0.4.0 (23 December 2016)
Version 0.3.2 (28 November 2015)
Version 0.3.1 (24 August 2015)
Version 0.3.0 (30 June 2015)
Please note that obtaining Enterprise in this fashion means doing lots of setup work. If you simply want to create a bootable USB, please consider using Mac Linux USB Loader, which sets up Enterprise for you.
Enterprise (named after the Starship Enterprise from Star Trek) is an EFI program that is designed to assist in booting Linux distributions from USB sticks on UEFI-based PCs and Macs, something that is continously regarded as being near to impossible due to quirks in vendors' EFI implementations and really quite poor support from Linux distributions. Using Enterprise, you can create bootable USB drives that boot on a UEFI-based computer without needing rEFIt or rEFInd to be installed.
The program is quite unique. It is written in C, and can be compiled to run on both 32-bit and 64-bit EFI firmware types. Right now, all official downloads are for 64-bit EFI firmware architectures only. Be aware that certain 64-bit Macs have 32-bit EFI firmwares, and the supplied Enterprise binaries won't work on these platforms.
Enterprise was originally designed to compliment Mac Linux USB Loader, though it can also be used separately on any UEFI-based computer. The purpose of Enterprise is as the first stage in a two-stage booting process for Mac Linux USB Loader-created USB drives.
Please note that this page is oriented for technical users, such as hardware and/or software enthuasists, programmers, and people who like to hack their firmware. It is not intended for casual users - beware!
Once upon a time, everything was happy in computer-land. Our PCs were booting, our memory sufficed, and the children were happy. But then Mr. Turing had to curse us with the <sarcasm> evil of technological progress <⁄sarcasm>, and eventually our nice, peaceful solutions didn't work anymore. All of a sudden, our multi-terabyte drives couldn't be booted from, and our old 16-bit BIOSes couldn't boot our cool, newfangled 64-bit multicore operating systems. Woe was us!
But our computer engineers, clever as they are, dug up an old, largely forgotten future-proof boot specification, UEFI. And from there, the rest is history.
Enterprise is not really intended to be installed in the same manner as one would install a traditional bootloader like GRUB. Owing to its origins and nature, Enterprise is fairly easy to configure and doesn't require writing anything to the Master Boot Record of a hard drive, and it only consists of a few files which can be trivially copied in any sane operating system.
If you want to get the best performance from Enterprise and take advantage of any super cool stuff I add to it, you should download the source code, as the official repository includes a number of tools to assist in setup.
However, for beginners and casual users, you should begin by
downloading the Enterprise binaries. You can do that at the pane to the
left. Then you need to set up a configuration file on your USB drive
enterprise.cfg which tells Enterprise details about
the distribution that you want to boot from your USB drive. Here's a
In order to function properly, Enterprise needs to know the location of the Linux kernel and the initial RAM disc inside of the ISO file. The configuration file gives this information to Enterprise, which then passes this information along to the boot loader when it is time to load the operating system.
The configuration file consists of a number of
of which defines a particular distribution or option which you want to
have. At the very minimum, each
entry should contain at
family parameter. This tells Enterprise which
distribution you are trying to boot and loads default options based on
this. All of these default options can be overwritten. Currently, the
options accepted by the
family parameter are:
|Distribution Family||Default Values|
can be altered by adding the respective line to the
enterprise.cfg file. This is demonstrated above with the
kernel parameter. You can pass a variety of additional
|entry||Used to mark the start of a new boot option. All future options will apply to the newly-created entry. There must be at least one entry in a file for it to be valid.|
|family||Specifies the distribution family (e.g Ubuntu, Debian, etc) and sets the other options accordingly. This parameter is required if you do not want to specify any other options.|
|initrd||Specifies, relative to the root of the ISO, the absolute path to the Linux initial RAM disc.|
|iso||The path to the ISO that you wish to associate with this
particular entry relative to the location of the Enterprise
binary. If not specified, it defaults to
Warning: The behavior of this parameter may change in the future.
|kernel||Specifies, relative to the root of the ISO, the absolute
path to the Linux kernel.
Note: It is possible to pass custom options to this kernel by specifying them after the path. See above for an example.
|root||Specifies the location of the kernel and initrd. Passed
to the Linux kernel as
Have questions or comments? Feel free to contact me with any requests, etc.
For those of you in the know, I code using a style called 1TBS - or, the one true brace style. I quite like it. So much so, in fact, that it's the required syntax style (just so things don't get messy). For those of you who are not familiar with it, it is best demonstrated with an example:
That should suffice for an explanation. Looking forward to seeing how everyone uses this!