classy-giraffe / easy-arch

Script for boostrapping Arch Linux with BTRFS, snapshots and LUKS encryption (UEFI only).
https://classy-giraffe.github.io/easy-arch
Apache License 2.0
225 stars 48 forks source link

Switching bootloaders #31

Open classy-giraffe opened 2 years ago

classy-giraffe commented 2 years ago

I'm starting this issue being totally honest: I hate GRUB so my opinion on it may be biased, which is why I'm asking for your opinions, as you people are the main users of this project and I value your input more than mine. The question is: Should we move to rEFInd or stay on GRUB (or maybe even some other bootloader)? The reason I'm asking this is because I totally dislike GRUB, it's a big program we probably don't even need and the only reason we're using it is for booting into BTRFS snapshots, other than that it's useless. This combined to the fact that now rEFInd can be used to boot into snapshots, hence my question. You're asked to express your sincere opinion. Cheers, tommy! 😃

Cyfraka commented 2 years ago

I agree to change GRUB, so let me know when testing on hardware or VM is needed.

classy-giraffe commented 2 years ago

The only viable alternative for now is rEFInd as it's the only bootloader (apart from GRUB) which supports booting into btrfs snapshots.

mariolopjr commented 2 years ago

@classy-giraffe would totally like other bootloaders, rEFInd would be perf! TBH, getting systemd-boot to work with LUKS has been ... not ideal and doesn't seem to support snapshots!

ghost commented 2 years ago

@classy-giraffe rEFInd is a great little bootloader, although I find it a bit slow when it has to deal with hunting through many devices for things to chain.

Could this perhaps be a selectable option between it and GRUB? Although I totally sympathise with the GRUB hate.

iSparsh commented 2 years ago

I agree with @roseweeks. There should be an option to select which bootloader the user wants to use.

classy-giraffe commented 2 years ago

yeah, I'll try to integrate both in the script. just gotta figure out a hassle-free way to do that. 😆

classy-giraffe commented 2 years ago

kinda unrelated to this, i wanna put all the contributors (both through donations, pushing code, commenting etc..) in a section since this project right here exists thank to you all here as well 👑

pm4rcin commented 2 years ago

@classy-giraffe would totally like other bootloaders, rEFInd would be perf! TBH, getting systemd-boot to work with LUKS has been ... not ideal and doesn't seem to support snapshots!

Getting systemd-boot to work with LUKS is really easy if you RTFM and spend a few hours to understand :D (like me). The only thing I needed to do was add:

options rd.luks.uuid=UUID rootflags=subvol=@

Of course UUID is easy to extract by blkid. It's the UUID of /dev/mapper/ourname I think the https://systemd.io/DISCOVERABLE_PARTITIONS/ has found the root automatically after setting the partition as "Linux root (x86-64)" with cfdisk which has UUID: 4f68bce3-e8cd-4db1-96e7-fbcaf984b709.

PS. Regarding the initramfs I've used booster and it works just fine without any configuration. PS. 2 I thought of putting systemd-networkd and systemd-resolved on my laptop to replace networkmanager but... If you want to use more things than just wired ethernet. For example to use wifi with iwd or even qemu VMs I think NetworkManager is better suited for desktop. In my opinion systemd-networkd would be great for server which has static config. Or at least if there was some dbus interface which is non existing on networkd. So for now use networkmanager + iwd. PS. 3 Your config for zram works. PS. 4 doas works great as sudo replecement but make sure to read the whole page (it's not long) because many programs expect sudo to be present so we need to make symlink. PS. 5 pipewire and pipewire-pulse they just work as expected. PS. 6 I've configured snapper with the help of your script but haven't had time to test snapshots with systemd-boot and the script that I linked in another post. PS. Sorry for off-topic but just wanted to let you know to think twice if you plan to try implementing things like that here and just wanted to provide feedback.

classy-giraffe commented 2 years ago

image

If anybody is interested, i got rEFInd work perfectly.

classy-giraffe commented 2 years ago

As I've been suggested, I created an experimental branch. The new script is located here and it works quite well. I'll add support for booting from a btrfs volume and secure boot soon.

classy-giraffe commented 2 years ago

image Alright I promised support for booting from snapshots and here we are.

Anonymo commented 11 months ago

https://limine-bootloader.org/ what about this? Useful?

classy-giraffe commented 11 months ago

https://limine-bootloader.org/ what about this? Useful?

Limine doesn't support btrfs.

erenoglu commented 9 months ago

Alright I promised support for booting from snapshots and here we are.

How can we use this? I just installed using your script but ended up with GRUB.

classy-giraffe commented 9 months ago

Alright I promised support for booting from snapshots and here we are.

How can we use this? I just installed using your script but ended up with GRUB.

Started off as a side project, but it didn't get much attention so I shut it down. If you're interested tho, I could work on it again, and publish it in a separate branch.

Anonymo commented 9 months ago

Personally, I been keeping an eye on this but didn't want to be rude and ask for ETAs

classy-giraffe commented 9 months ago

Personally, I been keeping an eye on this but didn't want to be rude and ask for ETAs

If there's a real interest in a rEFInd version I'll gladly work on it and release it as a spinoff. I myself don't like grub too but as far as features we need it's probably the best bootloader. Automatic secure boot setup was something I was working on as well.

erenoglu commented 9 months ago

Thanks. Automatic secure boot using boot files signed by own keys generated with the script, plus rEFInd and snapshot rollback would be super awesome!

classy-giraffe commented 9 months ago

Thanks. Automatic secure boot using boot files signed by own keys generated with the script, plus rEFInd and snapshot rollback would be super awesome!

Unfortunately secure boot is something that requires manual intervention most of the times cause every manufacturer implements UEFI in a different way, nobody really respects the official specs etc... Maybe a post installation script or something like that idk 😐

erenoglu commented 9 months ago

Thanks. Automatic secure boot using boot files signed by own keys generated with the script, plus rEFInd and snapshot rollback would be super awesome!

Unfortunately secure boot is something that requires manual intervention most of the times cause every manufacturer implements UEFI in a different way, nobody really respects the official specs etc... Maybe a post installation script or something like that idk 😐

That can wait then. If you could have Refind with Snapshots then I'm ready to wipe my Ubuntu :)

bathtime commented 9 months ago

I'm very interested in a rEFInd version, but only if it has the refind-btrfs program working as well. It would be so nice to have a touch-based bootloader with a touch-based rollback on my tablet. I've tried a few times myself to get it going in my own script but only managed to get rEFInd working, and not refind-btrfs; so I'm settling with grub + grub-btrfs.

Would be very interested to see how you got it working earlier, but the link you posted is down.

bathtime commented 9 months ago

Oh, and a feature request:

Working ramboot.

Would be awesome!

classy-giraffe commented 8 months ago

I'm currently working on a rEFInd version. Expect beta releases soon (next week). 👀

classy-giraffe commented 8 months ago

rEFInd functional! 🚀 image

Todo:

Feel free to try and test the rEFInd branch.

erenoglu commented 8 months ago

Wow so quick! Looking forward to test it with the fallback initramfs and snapshots!

lakano commented 6 months ago

Hi! I've tried it, it's really cool but without the booting snapshots / fallback, it's currently useless for my usage. Did you plan to work again on this rEFInd alternative?

classy-giraffe commented 6 months ago

Currently busy with exams but the project is still alive, will try to deliver the missing features as soon as I have a little spare time. :D

ManuVice commented 6 months ago

@lakano do you looking for? https://github.com/Venom1991/refind-btrfs

I've installed refind version on my new system and its working fine. saved me some minutes 👍

classy-giraffe commented 5 months ago

yup refind-btrfs is the solution, the problem is it being an AUR package which makes the installation process not very script-friendly

classy-giraffe commented 3 months ago

Just to remind y'all, this fork isn't dead. I've had tons of exams. Expect next week to see news, i'll be posting updates soon.