---
title: GNU+Linux Installation Instructions
...

At present, this section assumes that you use the GNU GRUB bootloader as
default payload on your Retroboot system. Other payloads such as SeaBIOS and
Tianocore are much more intuitive, to the point where end users don't need as
much support (they work similarly to what people are user to already, unlike
bare metal GNU GRUB coreboot payload).

If you use SeaBIOS or Tianocore, refer to the websites of those projects for
now. We will have SeaBIOS and Tianocore documentation included on the Retroboot
website at a later date.

This section explains how to deal with various operating systems (both
GNU+Linux and non-GNU+Linux) in Retroboot (e.g., Creating bootable USB drives,
Installing Operating Systems, Changing the default GRUB menu, etc.).

Retroboot uses the GRUB payload by default, which means that the GRUB
configuration file (where your GRUB menu comes from) is stored directly
alongside Retroboot and its GRUB payload executable, inside the flash chip. In
context, this means that installing distributions and managing them is handled
slightly differently compared to traditional BIOS systems.

On most systems, `/boot` (the folder that contains all the files needed for
your operating system to boot) has to be on its own partition, and left
unencrypted (while the other partitions are encrypted); this is so that GRUB
(and therefore the kernel) can be loaded and executed, since traditional
firmware can't open a LUKS volume.

However, with Retroboot, GRUB is already included directly (as a payload), so
even `/boot` can be encrypted; this protects `/boot` from tampering by someone
with physical access to the machine.

- [How to Prepare and Boot a USB GNU+Linux Installer in Retroboot
  Systems](grub_boot_installer.md)

- [Modifying the GRUB configuration in CBFS when using GNU GRUB
  payload](grub_cbfs.md)

- [Guix System with Full-Disk Encryption on Retroboot](guix_system.md)

- [Installing Hyperbola GNU+Linux, with Full-Disk Encryption
  (including /boot)](https://wiki.hyperbola.info/en:guide:encrypted_installation)

- [Installing Debian or Devuan GNU+Linux-Libre, with Full-Disk Encryption
  (including /boot)](encrypted_debian.md)

- [GNU GRUB security hardening](grub_hardening.md)

Fedora won't boot (GNU GRUB payload)?
-------------------------------------

If you're using SeaBIOS or Tianocore, ignore this section.

This may also apply to CentOS or Redhat. Chroot guide can be found on
[fedora website](https://docs.fedoraproject.org/en-US/quick-docs/bootloading-with-grub2/#restoring-bootloader-using-live-disk)

### linux16 issue

When you use Retroboot's default GRUB config, and retroboot's grub uses
Fedora's default `grub.cfg` (in `/boot/grub2/grub.cfg`), fedora by default
makes use of the `linux16` command, whereas it should be saying `linux`

Do this in fedora:

Open `/etc/grub.d/10_linux`

Set the `sixteenbit` variable to an empty string, then run:

    `grub2-mkconfig -o /boot/grub2/grub.cfg`

### BLS issue

With [newer versions of
fedora](https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault),
scripts from grub package default to generating
[BLS](https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/) instead
of `grub.cfg`. To change that behaviour add following line
to `/etc/default/grub` (or modify existing one if it already exists):

    `GRUB_ENABLE_BLSCFG=false`

Then generate `grub.cfg` with:

    `grub2-mkconfig -o /boot/grub2/grub.cfg`

Copyright © 2014, 2015, 2020 Leah Rowe <info@minifree.org>

Copyright © 2017 Elijah Smith <esmith1412@posteo.net>

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License Version 1.3 or any later
version published by the Free Software Foundation
with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts.
A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md)
