Because some Intel Apollo Lake devices do not have an option in the BIOS that allows booting Linux based operating systems it make using any Linux on these devices too complicated for some. Previously I've provided a script '
isorespin.sh' that can respin an official Ubuntu based ISO suitable for use and installation on Apollo Lake mini PCs. Now I've created a similar script called '
isofrespin.sh' for Fedora ISOs.
At this stage the script is very simple. It respins a Fedora ISO making it bootable when used to create a LiveUSB and you can also optionally add my bootloader script which when run after installing Fedora enables subsequent booting.
When installing Fedora from a respun ISO (and as mentioned for Ubuntu) it is necessary to make sure the EFI partition is large enough to store the bootable EFI file when dual booting with Windows. Some Windows installations only create a 60MB partition which after installing the Windows EFI files leaves only around 30MB. With the later Linux kernel releases the size and number of modules have increased and the available space may not be enough. If there is insufficient space the resultant installation will not boot so the solution is to increase the size of the EFI partition first by following the instructions posted
here.
Invocation
Running the script is simple as there are not a lot of options at this stage:
Usage: isofrespin.sh -i <ISO> [ -b Linuxium | --apollo ] [ -w <directory> ]
If you respin an official Fedora ISO just using the '-b Linuxium' option then it will only add my 'Linuxium' bootscript to make the ISO capable of booting.
If you respin with the '--apollo' option it will add my 'Linuxium' bootscript and another script called 'linuxium-update-bootloader' which can be used to add or update my 'Linuxium' bootscript used for booting. This option also installs the 'binutils' package whch is required by the script.
Limitations
At this stage I've only tested it with the Fedora 27 Workstation ISO and further testing is required for other Fedora releases and ISOs.
Example
In the following example I have downloaded the ISO 'Fedora-Workstation-Live-x86_64-27-1.6.iso' and respun it with the '--apollo' option creating the respun ISO 'linuxium-apollo-Fedora-Workstation-Live-x86_64-27-1.6.iso' which I wrote to a USB using 'dd'.
First I booted my Apollo Lake device into Windows:
and created some free space for the Fedora installation:
Then I rebooted to the LiveUSB:
Before commencing the installation I opened a 'terminal' window to see what file systems were mounted:
I then started the installation:
After the initial question for 'Installation Destination' I selected the device's eMMC as the drive with 'Automatic' storage configuration:
I also set the host name:
and then started the install:
followed by creating a user:
making sure they were an administrator:
and then waited for the installation to finish:
But instead of clicking on 'Quit' I switched back to the terminal window:
Looking at the newly mounted file systems I made a note of where Fedora had been installed ('/mnt/sysimage'):
and what kernel version had been installed ('4.13.9-300.fc27.x86_64'):
The next step is to replace the currently installed GRUB with my bootscript generated bootable EFI file. To do this I run 'linuxium-update-bootloader' with parameters of the kernel version and target destination (as it is different to '/boot') using the values I noted above:
which creates the bootable EFI file ('shimx64.efi'):
As this now completes the installation I restarted:
and having removed the LiveUSB I booted Fedora:
and logged in:
answered the setup questions:
and started using Fedora.
This is the resultant installed file system:
Anyone wanting to try Fedora can download an ISO and respin using my '
isofrespin.sh' script with the above option.