Amazing package!
There you go Iāve said it all. After a lot of tests and booted so many times even Einstein himself wouldnāt be able to calculate the number, I ended up with one of the best config in my Garuda installations.
I managed to build an image that boots the kernel virtually as fast as initcpio (something I could not achieve since July with my own dracut, not garuda-dracut-support).
ā°āĪ» systemd-analyze
Startup finished in 368ms (kernel) + 4.513s (initrd) + 9.990s (userspace) = 14.872s
graphical.target reached after 9.989s in userspace.
ā°āĪ» systemd-analyze blame | head
8.260s NetworkManager-wait-online.service
4.432s dev-ttyS0.device
4.432s sys-devices-platform-serial8250-tty-ttyS0.device
4.431s dev-ttyS1.device
4.431s sys-devices-platform-serial8250-tty-ttyS1.device
4.431s dev-ttyS3.device
4.431s sys-devices-platform-serial8250-tty-ttyS3.device
4.431s dev-ttyS2.device
4.431s sys-devices-platform-serial8250-tty-ttyS2.device
4.427s sys-module-configfs.device
For comparison, this is what I get with MKINITCPIO (donāt mind network wait, look at kernel times:
ā°āĪ» systemd-analyze
Startup finished in 4.428s (kernel) + 13.502s (userspace) = 17.931s
graphical.target reached after 13.502s in userspace.
ā°āĪ» systemd-analyze blame | head
11.836s NetworkManager-wait-online.service
4.018s disables-usb-wakeup.service
432ms plymouth-start.service
333ms upower.service
243ms systemd-tmpfiles-setup.service
151ms xfs.mount
112ms dev-nvme0n1p1.device
94ms plymouth-deactivate.service
94ms plymouth-quit-wait.service
93ms plymouth-quit.service
It doesnāt stop there.
With manual config in /etc/dracut.conf.d/myflags.conf
it builds a clean image by excluding all modules it cannot find on my machine, including UEFI stuff (I am an old LEGACY fan).
Even better, I managed to cut in HALF the image size. I found out the module that makes the biggest difference in size is plymouth
.
With plymouth bulit in I get 38megs and omitting plymouth I get 17megs!
Since I donāt see plymouth splash screen every time cuz it flies too fast and when I do see it itās 1sec or so, there is no point for me to have plymouth built in the image. A slower machine + a guy who loves to see a progress bar with a splash screen would better benefit from it.
I have tested a couple of DKMS unload/load modules (like uninstalling virtualbox and reinstalling and tested 5 kernel installs.
.rw------- 20M root 27 Dec 13:50 ļ
initramfs-6.2.0-rc1-tkg-bore.img
.rw------- 18M root 27 Dec 13:23 ļ
initramfs-linux-lts.img
.rw------- 17M root 27 Dec 13:13 ļ
initramfs-linux-tkg-bore-amd.img
.rw------- 17M root 27 Dec 13:25 ļ
initramfs-linux-xanmod.img
.rw------- 19M root 27 Dec 13:21 ļ
initramfs-linux-zen.img
I was able to boot into all of them, except 6.2RC1 cuz I made a mistake while compiling but that doesnāt matter here.
As you can see, all those images are pretty small.
I love Garuda dracut, I do not want to see mkinitcpio on my machines ever again!
On a next post I will expose my solution to skip fallback image generation. Easy with my fingers up my nose and so far after countless image generations and boots, no issue at all. I think the solution is rather clean, but Iāll learn from the experts on that.
Thanks a lot Garuda team (mostly TNE and Dalto I think?) for bringing this package!
