This page documents the full lifecycle for testing the Arch Linux LTS kernel as a second boot path. It covers why LTS is tested, how to install the matching LTS kernel modules, how to expose the LTS entry in systemd-boot when using unified kernel images, how to verify the selected kernel, how to compare boot history, and how to remove the LTS path when it does not provide a clear benefit.
Overview
- Use the LTS kernel as a controlled test path, not as a blind replacement for the current rolling kernel.
- Keep the current rolling kernel installed while testing LTS.
- Install the matching LTS kernel module package for hardware drivers that depend on the kernel.
- For a systemd-boot setup using unified kernel images, confirm that the LTS UKI file exists under /boot/EFI/Linux.
- Use bootctl list to confirm that systemd-boot can see the LTS entry.
- Use a one-time boot command when the boot menu is hidden or when the default entry should not be changed.
- Compare boot history and kernel versions before deciding whether LTS gives a real advantage.
- Remove the LTS path if it does not reduce the issue being tested.
When this workflow applies
Use this workflow when you want to test whether a problem follows the latest rolling Arch kernel or whether it also appears on the LTS kernel. This is useful for kernel-facing issues involving graphics modules, wireless modules, suspend and resume behavior, PCIe behavior, or other hardware paths.
The test is useful only when both paths can be compared with logs. A working boot alone is not enough. The target behavior should be checked on both kernels.
| Path | Purpose |
|---|---|
| Rolling kernel | The normal Arch kernel path. It receives newer kernel changes sooner. |
| LTS kernel | A more conservative longterm kernel path. It receives maintained fixes with less kernel churn. |
| Second boot path | Keeps both kernels available so the system can return to the known working path. |
| Boot history comparison | Shows which kernel was used in each boot and whether the target issue appeared. |
Check the current kernel
Start by confirming the kernel that is currently running. This gives the baseline before installing or testing the LTS path.
uname -rExample output for the rolling kernel:
7.0.3-arch1-2Example output for the LTS kernel:
6.18.26-2-ltsCheck the bootloader type
Check the bootloader before changing the kernel path. This workflow assumes systemd-boot with unified kernel images under /boot/EFI/Linux.
bootctl statusRelevant signs in the output are systemd-boot as the current boot loader, an EFI System Partition mounted under /boot, and a current entry such as arch-linux.efi.
Current Boot Loader:
Product: systemd-boot
Default Boot Loader Entry:
id: arch-linux.efi
version: 7.0.3-arch1-2
linux: /boot//EFI/Linux/arch-linux.efiCheck whether LTS is already installed
Before installing anything, check whether the LTS kernel and the matching LTS driver module package already exist.
pacman -Qs '^linux-lts$' '^nvidia-open-lts$'If the command returns no package output, the LTS path is not installed. A reboot will not show an LTS option until the packages and boot entry exist.
Install the LTS kernel path
Install the LTS kernel and its matching kernel module package. Keep the rolling kernel installed. Do not remove the current kernel during the test.
sudo pacman -S linux-lts nvidia-open-ltsExpected package names:
Packages (2) linux-lts-6.18.26-2 nvidia-open-lts-1:595.71.05-3The package hook should generate the normal LTS initramfs. On a UKI system, this does not always create a visible LTS boot entry automatically.
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'default'
==> Starting build: '6.18.26-2-lts'
==> Creating zstd-compressed initcpio image: '/boot/initramfs-linux-lts.img'
==> Initcpio image generation successfulCheck visible boot entries
After installing LTS, check whether systemd-boot can see the LTS entry. If only the rolling entry appears, the LTS package is installed but the LTS UKI is not exposed yet.
bootctl listExample output when only the rolling UKI is visible:
type: Boot Loader Specification Type #2 (UKI, .efi)
title: Arch Linux (default) (selected)
id: arch-linux.efi
version: 7.0.3-arch1-2
linux: /boot//EFI/Linux/arch-linux.efiIf there is no arch-linux-lts.efi entry, inspect the UKI files and mkinitcpio presets.
Inspect UKI files and presets
List the existing UKI files, kernel install configuration, and mkinitcpio preset files.
ls -R /etc/kernel /etc/mkinitcpio.d /boot/EFI/Linux 2>/dev/nullExample output when only the rolling UKI exists:
/boot/EFI/Linux:
arch-linux.efi
/etc/kernel:
cmdline install.d
/etc/mkinitcpio.d:
linux-lts.preset linux.presetThe normal kernel may already generate a UKI, while the LTS preset may still be configured to create only an initramfs image.
Compare the rolling and LTS presets
Compare the normal kernel preset and the LTS preset. The normal preset usually shows the correct UKI path. The LTS preset may have the UKI line commented out or pointed at the wrong ESP path.
cat /etc/mkinitcpio.d/linux.preset && echo "----- LTS -----" && cat /etc/mkinitcpio.d/linux-lts.presetRolling preset example:
ALL_kver="/boot/vmlinuz-linux"
PRESETS=('default')
default_uki="/boot/EFI/Linux/arch-linux.efi"
default_options="--splash /usr/share/systemd/bootctl/splash-arch.bmp"LTS preset example before the UKI fix:
ALL_kver="/boot/vmlinuz-linux-lts"
PRESETS=('default')
default_image="/boot/initramfs-linux-lts.img"
#default_uki="/efi/EFI/Linux/arch-linux-lts.efi"
#default_options="--splash /usr/share/systemd/bootctl/splash-arch.bmp"The key difference is that the rolling preset writes a UKI to /boot/EFI/Linux, but the LTS preset writes only an initramfs image. On this system, the correct ESP path is /boot, not /efi.
Enable LTS UKI generation
Edit the LTS preset so it creates an LTS UKI under the same EFI directory used by the rolling kernel.
sudo nano /etc/mkinitcpio.d/linux-lts.presetChange the LTS default section from this:
default_image="/boot/initramfs-linux-lts.img"
#default_uki="/efi/EFI/Linux/arch-linux-lts.efi"
#default_options="--splash /usr/share/systemd/bootctl/splash-arch.bmp"To this:
#default_image="/boot/initramfs-linux-lts.img"
default_uki="/boot/EFI/Linux/arch-linux-lts.efi"
default_options="--splash /usr/share/systemd/bootctl/splash-arch.bmp"This mirrors the rolling UKI setup but writes the LTS kernel to a separate file named arch-linux-lts.efi.
Generate the LTS UKI
After changing the preset, rebuild the LTS image. This should create the LTS unified kernel image.
sudo mkinitcpio -p linux-ltsExpected output includes the UKI target:
-> -k /boot/vmlinuz-linux-lts -U /boot/EFI/Linux/arch-linux-lts.efi --splash /usr/share/systemd/bootctl/splash-arch.bmp
==> Creating unified kernel image: '/boot/EFI/Linux/arch-linux-lts.efi'
==> Unified kernel image generation successfulConfirm the two UKI files exist:
ls -l /boot/EFI/Linux/Expected output:
arch-linux.efi
arch-linux-lts.efiConfirm the LTS boot entry
Run bootctl list again. The LTS entry should now appear next to the rolling entry.
bootctl listExpected entries:
title: Arch Linux (7.0.3-arch1-2) (default) (selected)
id: arch-linux.efi
version: 7.0.3-arch1-2
title: Arch Linux (6.18.26-2-lts) (not reported/new)
id: arch-linux-lts.efi
version: 6.18.26-2-ltsBoot LTS once without changing the default
If the boot menu is hidden, use a one-time systemd-boot entry selection. This boots LTS once while keeping the rolling kernel as the default path.
sudo systemctl reboot --boot-loader-entry=arch-linux-lts.efiAfter reboot, confirm that the LTS kernel is running.
uname -rExpected output:
6.18.26-2-ltsVerify the driver stack after boot
After booting LTS, confirm that the hardware driver stack still loads. For Nvidia Open systems, nvidia-smi should report the same driver branch.
nvidia-smiThe exact process list depends on the session, but the driver version should be visible and the command should return without hanging.
NVIDIA-SMI 595.71.05
Driver Version: 595.71.05Review boot history
Use journalctl boot history to identify which boots are available for comparison. This is useful after several test reboots.
journalctl --list-boots | tail -10Example output:
-5 boot_id Wed 2026-05-06 12:03:46 +03 Thu 2026-05-07 10:32:50 +03
-4 boot_id Thu 2026-05-07 10:33:28 +03 Thu 2026-05-07 20:42:24 +03
-3 boot_id Thu 2026-05-07 20:44:10 +03 Thu 2026-05-07 20:53:29 +03
-2 boot_id Thu 2026-05-07 20:54:32 +03 Fri 2026-05-08 12:06:51 +03
-1 boot_id Fri 2026-05-08 12:08:47 +03 Fri 2026-05-08 12:26:35 +03
0 boot_id Fri 2026-05-08 12:27:47 +03 currentThe boot index changes after every reboot. Always check the list before comparing logs from previous boots.
Compare kernel versions across recent boots
Use this loop to show the kernel version used in recent boots. Add issue-specific grep checks only when testing a specific problem.
for b in -5 -4 -3 -2 -1 0; do
echo "===== boot $b ====="
journalctl -b "$b" -k | grep -m1 "Linux version"
doneExample output:
===== boot -5 =====
Linux version 7.0.3-arch1-2
===== boot -2 =====
Linux version 6.18.26-2-lts
===== boot 0 =====
Linux version 7.0.3-arch1-2This confirms which boot used the rolling kernel and which boot used the LTS kernel.
Decide whether LTS is useful
The LTS test is useful only if it produces a clear improvement. If the target issue appears on both kernels, LTS is not a proven solution. Keeping two kernels then adds extra maintenance without a clear benefit.
| Result | Interpretation |
|---|---|
| Issue disappears on LTS | The rolling kernel path is suspicious. Keep LTS as a temporary daily path. |
| Issue appears on both kernels | The issue likely follows a shared driver, firmware, hardware, or power-management path. |
| LTS creates new problems | Return to the rolling kernel and remove the LTS test path. |
| Short LTS boot is clean but long LTS boot is not | Compare longer sessions before treating LTS as stable. |
Return to the rolling kernel
If LTS was booted once through systemd-boot, the next normal reboot usually returns to the default rolling kernel. Confirm after reboot.
sudo rebootuname -rExpected output for the rolling kernel:
7.0.3-arch1-2Remove the LTS packages
If the LTS test gives no clear benefit, remove the LTS packages to keep the system simple.
sudo pacman -Rns linux-lts nvidia-open-ltsExpected package removal:
Packages (2) linux-lts-6.18.26-2 nvidia-open-lts-1:595.71.05-3
Total Removed Size: 153.05 MiBThe package hooks may remove the LTS UKI automatically. If manual removal says the file does not exist, that is fine.
sudo rm /boot/EFI/Linux/arch-linux-lts.efiSafe output when the file was already removed:
rm: cannot remove '/boot/EFI/Linux/arch-linux-lts.efi': No such file or directoryVerify cleanup
After removal, bootctl list should show only the real rolling entry. It may temporarily show the old LTS entry as reported and absent until the next reboot.
bootctl listExpected real bootable entry:
title: Arch Linux (default) (selected)
id: arch-linux.efi
version: 7.0.3-arch1-2
linux: /boot//EFI/Linux/arch-linux.efiTemporary stale reported entry can appear like this:
title: arch-linux-lts.efi (reported/absent)
id: arch-linux-lts.efiThis stale entry is not a real bootable file. Reboot once normally and check bootctl list again.
sudo reboot
bootctl listCommand summary
# Check current kernel
uname -r
# Check bootloader and entries
bootctl status
bootctl list
# Check whether LTS packages exist
pacman -Qs '^linux-lts$' '^nvidia-open-lts$'
# Install LTS test path
sudo pacman -S linux-lts nvidia-open-lts
# Inspect UKI files and presets
ls -R /etc/kernel /etc/mkinitcpio.d /boot/EFI/Linux 2>/dev/null
cat /etc/mkinitcpio.d/linux.preset && echo "----- LTS -----" && cat /etc/mkinitcpio.d/linux-lts.preset
# Edit LTS preset if the UKI line is missing or wrong
sudo nano /etc/mkinitcpio.d/linux-lts.preset
# Generate LTS UKI
sudo mkinitcpio -p linux-lts
ls -l /boot/EFI/Linux/
# Confirm LTS entry
bootctl list
# Boot LTS once
sudo systemctl reboot --boot-loader-entry=arch-linux-lts.efi
# Verify selected kernel after reboot
uname -r
# Compare recent boot kernels
journalctl --list-boots | tail -10
for b in -5 -4 -3 -2 -1 0; do
echo "===== boot $b ====="
journalctl -b "$b" -k | grep -m1 "Linux version"
done
# Remove LTS when the test gives no clear benefit
sudo pacman -Rns linux-lts nvidia-open-lts
sudo rm /boot/EFI/Linux/arch-linux-lts.efi
bootctl listFile locations
- Rolling UKI: /boot/EFI/Linux/arch-linux.efi
- LTS UKI: /boot/EFI/Linux/arch-linux-lts.efi
- Rolling preset: /etc/mkinitcpio.d/linux.preset
- LTS preset: /etc/mkinitcpio.d/linux-lts.preset
- Kernel command line: /etc/kernel/cmdline
- systemd-boot config: /boot/loader/loader.conf