Context
I installed Hyprland and Hyprlock[1][2] on Fedora Linux 42 on my Framework Laptop 12 as follows.
$ sudo dnf install hyprland
$ sudo dnf install hyprland-devel
$ sudo dnf copr enable solopasha/hyprland
$ sudo dnf install hyprlock
Then, when restarting the OS, the GDM didn't start anymore.
Perhaps, I could try the different tty console by Ctrl + Alt + Fn (n >= 2).[3] However, maybe I wrongly typed the media key instead of F2.
I tried the single-user mode and emergency mode too. But I couldn't enter the console for that reason.
As a final way, I tried the way of mounting the root partition from the Fedora 42 Live CD. Fortunately, I had the USB memory of the Fedora Linux 42 installation media. So, I was able to use the Fedora 42 Live CD.
I should always have the live CD.
Recover Fedora Linux 42 from the Live CD
Mount the root partition with chroot
My disk is LUKS + BTRFS format. So, the steps to mount the root portion were tricky.
Ran the following commands to mount the LUKS crypt disk.
$ sudo crytptsetup luksOpen /dev/nvme0n1p3 luks-root
$ sudo mount /dev/mapper/luks-root /mnt
Then, checked the subvolumes of the mounted directory. This command is important.
$ sudo btrfs subvolume list /mnt
ID 256 gen 37464 top level 5 path root
ID 257 gen 37461 top level 5 path home
ID 258 gen 37461 top level 256 path root/var/lib/machines
Then mounted like this.
$ sudo mount -o subvol=root /dev/mapper/luks-root /mnt
$ sudo mount -o subvol=home /dev/mapper/luks-root /mnt/home
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys
$ sudo mount --bind /run /mnt/run
Finally executed the chroot command, and entered the root partition of the disk.
$ sudo chroot /mnt
Fix on the mounted disk
Removed the problematic packages.
# dnf copr remove solopasha/hyprland
# dnf remove hyprlock
# dnf remove hyprland-devel
# dnf remove hyprland
I changed the login mode from graphical to multi-user to log in on the console.[4]
# systemctl get-default
graphical.target
# systemctl set-default multi-user.target
# systemctl get-default
multi-user.target
Finish
Exited the chroot.
# exit
Executed the following commands to clean.`
$ sudo umount -Rl /mnt
$ sudo cryptsetup luksClose luks-root
$ sudo reboot
Working on console
Sway didn't start at first.
$ sway
00:00:00.079 [wlr] [render/egl.c:288] EGL_EXT_platform_base not supported
00:00:00.079 [wlr] [render/egl.c:523] Failed to create EGL context
00:00:00.079 [wlr] [render/gles2/renderer.c;499] Could not initialize EGL
00:00:00.079 [wlr] [render/wlr_renderer.c:272] Could not initialize renderer
00:00:00.079 [sway/server.c:236] Failed to create renderer
After I tried several ways, I executed the dnf upgrade, and this solved the above error.
$ sudo dnf upgrade
Now the sway works from the console!
$ sway
References