Skip to content

Instantly share code, notes, and snippets.

@ReturnRei
Last active December 22, 2021 01:58
Show Gist options
  • Save ReturnRei/a3bed9258e56a8d6e0cc74c3d39973b8 to your computer and use it in GitHub Desktop.
Save ReturnRei/a3bed9258e56a8d6e0cc74c3d39973b8 to your computer and use it in GitHub Desktop.
Garuda linux Qtile on Raid0
TLDR: Wanted an Arch based system with LUKS, BTRFS on a mdadm array. Here's the journey if it might help someone.
## Used garuda qtile but couldn't login in the live cd
Got into TTY with ctrl+alt+F2
sudo su
systemctl stop sddm
pacman -Syyu
systemctl start sddm
## Now GUI login works
### The raid was already created, I have forked the gist that I used
## Due to a segfault the calamares installer crashed, ran garuda-welcome from terminal as a quickfix and to have some logs
Select your Raid Partition, format as btrfs, mount as root and encrypt
Select an EFI partition to mount as /boot/efi
## DO NOT restart after install, you need to play with with your mkinitcpio.conf (mine will be linked in the gist)
## Mount your just installed system
issue an lsblk to check if your LUKS fs is opened, then open/mount it to /mnt
mount your efi system to /mnt/@/boot/efi
Now regarding mkinitcpio.conf
The order of the hooks matters, check mine
to generate the initramfs you'll need to edit your config so the path of the "/crypto_keyfile.bin" file becomes "/mnt/@/crypto_keyfile.bin"
OR chroot, but I didn't go that way.
I recommend using a one time mkinitcpioTemp.conf for the generation of the initramfs with the special path for the keyfile
Edit your mkinitcpio.conf hooks, copy this file to a temp file and change the path of the keyfile
makeinitcpio --config "tempfile" -g /mnt/@/boot/whateverimage.img
Reboot, you'll be greeted by grub, if any problem arise, press 'e' on your garuda install and remove quiet and splash from the linux line
When you'll be greeted by garuda assistant make sure your mkinitcpio has the right options or you'll have troubles booting again after an update
Best
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(crc32c-intel intel_agp i915 amdgpu radeon nouveau)
MODULES=(crc32c-intel intel_agp i915 amdgpu radeon nouveau)
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES="/crypto_keyfile.bin"
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS="base udev keyboard autodetect modconf block keymap consolefont plymouth plymouth-encrypt mdadm_udev lvm2 btrfs filesystems"
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
ION_OPTIONS=()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment