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