Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create change_kernel_boot.rst #1274

Merged
merged 2 commits into from
May 30, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
234 changes: 234 additions & 0 deletions source/guides/kernel/change_kernel_boot.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
.. _change_kernel_boot:

Change Kernel Boot
########################

This tutorial explains the process of change kernel boot entry |CL-ATTR|.

.. contents::
:local:
:depth: 1

Description
***********

For this tutorial, you will modify your kernel list to boot with the kernel you want to use. This process is valid when you cannot compile third-party kernel modules and need to come back to old, or if you compile your custom kernel.


Get the current boot status
***************************

.. code-block:: bash

bootctl status

This is an example output:

.. code-block:: bash

System:
Firmware: UEFI 2.70 (HP 265.256)
Firmware Arch: x64
Secure Boot: disabled
TPM2 Support: yes
Measured UKI: no
Boot into FW: supported

Current Boot Loader:
Product: systemd-boot 255
Features: ✓ Boot counting
✓ Menu timeout control
✓ One-shot menu timeout control
✓ Default entry control
✓ One-shot entry control
✓ Support for XBOOTLDR partition
✓ Support for passing random seed to OS
✓ Load drop-in drivers
✓ Support Type #1 sort-key field
✓ Support @saved pseudo-entry
✓ Support Type #1 devicetree field
✓ Enroll SecureBoot keys
✓ Retain SHIM protocols
✓ Menu can be disabled
✓ Boot loader sets ESP information
ESP: /dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5
File: └─/EFI/org.clearlinux/loaderx64.efi

Random Seed:
System Token: set
Exists: yes

Available Boot Loaders on ESP:
ESP: /boot (/dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5)
File: ├─/EFI/systemd/systemd-bootx64.efi (systemd-boot 255)
└─/EFI/BOOT/BOOTX64.EFI (systemd-boot 255)

Boot Loaders Listed in EFI Variables:
Title: Linux bootloader
ID: 0x0007
Status: active, boot-order
Partition: /dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5
File: └─/EFI/org.clearlinux/bootloaderx64.efi

Title: Linux Boot Manager
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5
File: └─/EFI/systemd/systemd-bootx64.efi

Title: Windows Boot Manager
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/48d8a9eb-d84d-4a62-8302-edff383290e5
File: └─/EFI/Microsoft/Boot/bootmgfw.efi

Boot Loader Entries:
$BOOT: /boot (/dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5)
token: clear-linux-os

Default Boot Loader Entry:
type: Boot Loader Specification Type #1 (.conf)
title: Clear Linux OS (Clear-linux-native-6.8.10-1434.conf)
id: Clear-linux-native-6.8.10-1434.conf
source: /boot//loader/entries/Clear-linux-native-6.8.10-1434.conf
linux: /boot//EFI/org.clearlinux/kernel-org.clearlinux.native.6.8.10-1434
initrd: /boot//EFI/org.clearlinux/freestanding-00-early-ucode.cpio
/boot//EFI/org.clearlinux/initrd-org.clearlinux.native.6.8.10-1434
/boot//EFI/org.clearlinux/freestanding-clr-init.cpio.gz
/boot//EFI/org.clearlinux/freestanding-i915-firmware.cpio
options: root=UUID=67e7ac9a-f7a1-4d5e-bbd6-012f5fa81cb5 rd.luks.uuid=abe6aaf2-3425-4eb1-b7f5-3f36746426fa quiet console=tty0 console=ttyS0,115200n8 cryptomgr.notests init=/usr/bin/initra-desktop initcall>
lines 20-71/71 (END)
✓ Support @saved pseudo-entry
✓ Support Type #1 devicetree field
✓ Enroll SecureBoot keys
✓ Retain SHIM protocols
✓ Menu can be disabled
✓ Boot loader sets ESP information
ESP: /dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5
File: └─/EFI/org.clearlinux/loaderx64.efi

Random Seed:
System Token: set
Exists: yes

Available Boot Loaders on ESP:
ESP: /boot (/dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5)
File: ├─/EFI/systemd/systemd-bootx64.efi (systemd-boot 255)
└─/EFI/BOOT/BOOTX64.EFI (systemd-boot 255)

Boot Loaders Listed in EFI Variables:
Title: Linux bootloader
ID: 0x0007
Status: active, boot-order
Partition: /dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5
File: └─/EFI/org.clearlinux/bootloaderx64.efi

Title: Linux Boot Manager
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5
File: └─/EFI/systemd/systemd-bootx64.efi

Title: Windows Boot Manager
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/48d8a9eb-d84d-4a62-8302-edff383290e5
File: └─/EFI/Microsoft/Boot/bootmgfw.efi

Boot Loader Entries:
$BOOT: /boot (/dev/disk/by-partuuid/ea2e4278-5c0c-4498-bc99-dfc48a71ceb5)
token: clear-linux-os

Default Boot Loader Entry:
type: Boot Loader Specification Type #1 (.conf)
title: Clear Linux OS (Clear-linux-native-6.8.10-1434.conf)
id: Clear-linux-native-6.8.10-1434.conf
source: /boot//loader/entries/Clear-linux-native-6.8.10-1434.conf
linux: /boot//EFI/org.clearlinux/kernel-org.clearlinux.native.6.8.10-1434
initrd: /boot//EFI/org.clearlinux/freestanding-00-early-ucode.cpio
/boot//EFI/org.clearlinux/initrd-org.clearlinux.native.6.8.10-1434
/boot//EFI/org.clearlinux/freestanding-clr-init.cpio.gz
/boot//EFI/org.clearlinux/freestanding-i915-firmware.cpio
options: root=UUID=67e7ac9a-f7a1-4d5e-bbd6-012f5fa81cb5 rd.luks.uuid=abe6aaf2-3425-4eb1-b7f5-3f36746426fa quiet console=tty0 console=ttyS0,115200n8 cryptomgr.notests init=/usr/bin/initra-desktop initcall_debug intel_iommu=igfx_off kvm-intel.nested=1 no_timer_check noreplace-smp page_alloc.shuffle=1 rcupdate.rcu_expedited=1 rootfstype=ext4,btrfs,xfs,f2fs tsc=reliable rw module.sig_unenforce rootflags=x-systemd.device-timeout=0

Get the kernel list installed
*****************************

.. code-block:: bash

bootctl list

And example output:

.. code-block:: bash

type: Boot Loader Specification Type #1 (.conf)
title: Clear Linux OS (Clear-linux-preempt_rt-6.1.38-105.conf)
id: Clear-linux-preempt_rt-6.1.38-105.conf
source: /boot//loader/entries/Clear-linux-preempt_rt-6.1.38-105.conf
linux: /boot//EFI/org.clearlinux/kernel-org.clearlinux.preempt_rt.6.1.38-105
initrd: /boot//EFI/org.clearlinux/freestanding-00-early-ucode.cpio
/boot//EFI/org.clearlinux/freestanding-clr-init.cpio.gz
/boot//EFI/org.clearlinux/freestanding-i915-firmware.cpio
options: root=UUID=67e7ac9a-f7a1-4d5e-bbd6-012f5fa81cb5 rd.luks.uuid=abe6aaf2-3425-4eb1-b7f5-3f36746426fa quiet console=tty0 console=ttyS0,115200n8 cryptomgr.notests init=/usr/bin/initra-desktop initcall_debug intel_iommu=igfx_off kvm-intel.nested=1 no_timer_check noreplace-smp page_alloc.shuffle=1 rcupdate.rcu_expedited=1 rootfstype=ext4,btrfs,xfs t>

type: Boot Loader Specification Type #1 (.conf)
title: Clear Linux OS (Clear-linux-native-6.9.1-1436.conf)
id: Clear-linux-native-6.9.1-1436.conf
source: /boot//loader/entries/Clear-linux-native-6.9.1-1436.conf
linux: /boot//EFI/org.clearlinux/kernel-org.clearlinux.native.6.9.1-1436
initrd: /boot//EFI/org.clearlinux/freestanding-00-early-ucode.cpio
/boot//EFI/org.clearlinux/initrd-org.clearlinux.native.6.9.1-1436
/boot//EFI/org.clearlinux/freestanding-clr-init.cpio.gz
/boot//EFI/org.clearlinux/freestanding-i915-firmware.cpio
options: root=UUID=67e7ac9a-f7a1-4d5e-bbd6-012f5fa81cb5 rd.luks.uuid=abe6aaf2-3425-4eb1-b7f5-3f36746426fa quiet console=tty0 console=ttyS0,115200n8 cryptomgr.notests init=/usr/bin/initra-desktop initcall_debug intel_iommu=igfx_off kvm-intel.nested=1 no_timer_check noreplace-smp page_alloc.shuffle=1 rcupdate.rcu_expedited=1 rootfstype=ext4,btrfs,xfs,f>

type: Boot Loader Specification Type #1 (.conf)
title: Clear Linux OS (Clear-linux-native-6.8.10-1434.conf) (default) (selected)
id: Clear-linux-native-6.8.10-1434.conf
source: /boot//loader/entries/Clear-linux-native-6.8.10-1434.conf
linux: /boot//EFI/org.clearlinux/kernel-org.clearlinux.native.6.8.10-1434
initrd: /boot//EFI/org.clearlinux/freestanding-00-early-ucode.cpio
/boot//EFI/org.clearlinux/initrd-org.clearlinux.native.6.8.10-1434
/boot//EFI/org.clearlinux/freestanding-clr-init.cpio.gz
/boot//EFI/org.clearlinux/freestanding-i915-firmware.cpio
options: root=UUID=67e7ac9a-f7a1-4d5e-bbd6-012f5fa81cb5 rd.luks.uuid=abe6aaf2-3425-4eb1-b7f5-3f36746426fa quiet console=tty0 console=ttyS0,115200n8 cryptomgr.notests init=/usr/bin/initra-desktop initcall_debug intel_iommu=igfx_off kvm-intel.nested=1 no_timer_check noreplace-smp page_alloc.shuffle=1 rcupdate.rcu_expedited=1 rootfstype=ext4,btrfs,xfs,f>

type: Automatic
title: Reboot Into Firmware Interface
id: auto-reboot-to-firmware-setup
source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

Set default kernel to boot
**************************

You can check the id from the latest command:

.. code-block:: bash

bootctl list |grep id: |cut -f 2 -d ":"
id: Clear-linux-preempt_rt-6.1.38-105.conf
id: Clear-linux-native-6.9.1-1436.conf
id: Clear-linux-native-6.8.10-1434.conf
id: auto-reboot-to-firmware-setup


Set the kernel

.. code-block:: bash

sudo bootctl set-default ID

For example to set 6.9.1 entry:

.. code-block:: bash

sudo bootctl set-default Clear-linux-native-6.9.1-1436.conf

Just reboot

.. code-block:: bash

sudo systemctl reboot

You will boot with the kernel set before.