-
-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add more instructions for bootloaders, and list of codecs (#41)
- Loading branch information
1 parent
4385376
commit da43825
Showing
4 changed files
with
108 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
--- | ||
title: Advanced Post-Installation Steps | ||
description: Learn how to further configure your Ultramarine Linux installation. | ||
--- | ||
|
||
import Alert from "../../../../components/Docs/Alert.astro"; | ||
|
||
## Use systemd-boot as the bootloader | ||
|
||
Ultramarine Linux currently still uses GRUB as the default bootloader for compatibility reasons. However, if you have a UEFI system, you can simply switch to | ||
systemd-boot, which is a more modern bootloader. | ||
|
||
<Alert type="warning"> | ||
This step is optional. You can skip this step if you don't want to use systemd-boot. | ||
Make sure to back up your data and have a live USB ready in case something goes wrong. | ||
Incorrectly configuring a new bootloader can make your OS unbootable. | ||
</Alert> | ||
|
||
1. Make sure you turn off Secure Boot in your UEFI settings for now, You can re-enable it later after [Setting up Secure Boot](#set-up-secure-boot) | ||
2. Remove GRUB from protected packages: | ||
```bash | ||
sudo rm /etc/dnf/protected.d/grub* | ||
``` | ||
3. Start uninstalling GRUB: | ||
```bash | ||
sudo dnf remove -y grubby grub2\* memtest86\* && sudo rm -rf /boot/grub2 && sudo rm -rf /boot/loader | ||
``` | ||
4. Install unsigned systemd-boot binaries and the `sdubby` tool: | ||
```bash | ||
sudo dnf install systemd-boot-unsigned sdubby | ||
``` | ||
5. Install systemd-boot to the ESP: | ||
```bash | ||
# Copy your current cmdline options just in case | ||
cat /proc/cmdline | cut -d ' ' -f 2- | sudo tee /etc/kernel/cmdline | ||
# Install systemd-boot | ||
sudo bootctl install | ||
# Now, reinstall and regenerate the current kernel entry | ||
sudo kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz | ||
# Reinstall the kernel again, just in case we need to trigger some hooks | ||
sudo dnf reinstall -y kernel-core | ||
``` | ||
6. Reboot your system and make sure it boots correctly, run `sudo bootctl` to check if the boot process is correct. | ||
7. (Optional) Proceed to [Set up Secure Boot](#set-up-secure-boot) if you want to re-enable Secure Boot. | ||
|
||
|
||
|
||
## Set up Secure Boot | ||
|
||
[Secure Boot] is a UEFI security protocol that secures the boot process by ensuring that | ||
only signed executables are allowed to boot. While Ultramarine Linux's bootloader shim is signed by Microsoft and Red Hat, | ||
you may want to use a different bootloader (i.e systemd-boot or rEFInd) or kernel. In that case, you will need to manually enroll | ||
and sign the files with your own keys. | ||
|
||
Fortunately, there's a tool to automate this called [sbctl]. You can install it from the Terra repository: | ||
|
||
<Alert type="info"> | ||
`sbctl` is only available on Ultramarine/Fedora 40 and later. | ||
</Alert> | ||
|
||
```bash | ||
sudo dnf install sbctl | ||
``` | ||
|
||
After installing `sbctl`, you can use it to enroll, sign, and manage your Secure Boot keys. For example, to generate a new key and enroll it in your UEFI firmware: | ||
|
||
```bash | ||
# Generate a new key | ||
sudo sbctl create-keys | ||
# Enroll the key | ||
sudo sbctl enroll-keys | ||
``` | ||
|
||
You can then use `sbctl sign` to sign your kernel, initramfs, and bootloader binaries. For example: | ||
|
||
```bash | ||
# Sign the kernel | ||
sudo sbctl sign /boot/vmlinuz-$(uname -r) | ||
``` | ||
|
||
However, once you have installed sbctl, it should've already set up a hook to sign the kernel, initramfs and bootloader binaries automatically on kernel updates. | ||
|
||
After signing the necessary files and enrolling them in your firmware, you can re-enable Secure Boot in your UEFI settings. | ||
|
||
|
||
[Secure Boot]: https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-secure-boot | ||
[sbctl]: https://github.com/Foxboron/sbctl | ||
|
||
#### [← Back To: Post-installation](/en/installation/postinstall) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters