On 12/20/2017 09:45 AM, David Rosenstrauch wrote:
More of a workaround than a solution, but I stopped using grub altogether once they upgraded to grub2. (The complexity of the grub2 config file as compared to the simplicity of the grub-legacy menu.lst file is what eventually turned me away.) I've started using syslinux in recent years, and have been quite happy with it.
Kind of offtopic for this thread, but "the grub2 config file is too complex" is not actually a valid reason to stop using grub... because it isn't even true in the first place. I blame grub-mkconfig for this, as an automated tool for generating grub.cfg without any user interaction at all, it is rather grotty. But to make a fair comparison with syslinux, refind, systemd-boot and others, you'd need to compare the quality of the grub-mkconfig autogenerated output to the quality of the (refind|syslinux|systemd-boot)-mkconfig autogenerated output. Oh, wait. None of those have any such tool, and you are *required* to write your own handwritten config. :p And in fact, you can do the same exact thing with grub2 as well! Consider my grub.cfg reproduced below, or Earnestly's example grub.cfg at https://ptpb.pw/mk7y (courtesy of #archlinux on freenode): ``` set color_normal=light-gray/dark-gray set color_highlight=dark-gray/light-gray set menu_color_normal=light-gray/dark-gray set menu_color_highlight=light-blue/dark-gray set timeout=1 set default=0 set btrfsroot=53731b6e-8cce-467c-bf07-be1b04207846 # Use UEFI's Graphics Output Protocol. insmod efi_gop menuentry "Arch Linux" { linux /boot/vmlinuz-linux root=UUID=$btrfsroot rw initrd /boot/intel-ucode.img /boot/initramfs-linux.img } menuentry "Arch Linux Fallback" { linux /boot/vmlinuz-linux root=UUID=$btrfsroot rw initrd /boot/intel-ucode.img /boot/initramfs-linux-fallback.img } menuentry "Arch Linux ck kernel" { linux /boot/vmlinuz-linux-ck root=UUID=$btrfsroot rw initrd /boot/intel-ucode.img /boot/initramfs-linux-ck.img } menuentry "Arch Linux ck kernel Fallback" { linux /boot/vmlinuz-linux-ck root=UUID=$btrfsroot rw initrd /boot/intel-ucode.img /boot/initramfs-linux-ck-fallback.img } menuentry "Arch Linux LTS kernel" { linux /boot/vmlinuz-linux-lts root=UUID=$btrfsroot rw initrd /boot/intel-ucode.img /boot/initramfs-linux-lts.img } menuentry "Arch Linux LTS kernel Fallback" { linux /boot/vmlinuz-linux-lts root=UUID=$btrfsroot rw initrd /boot/intel-ucode.img /boot/initramfs-linux-linux-fallback.img } ``` Consider the simplicity of this grub.cfg. A couple simple variable flags for setting colors and timeout, then the dead-simple menuentry for booting, replicated a couple times for each kernel/initramfs I have. If you want, you can split out each menuentry into separate conf files and `source` them. And if you *really* want to get fancy, sure, grub has an *optional* shell language you can use for weird fancy stuff. It's hardly mandatory, though, just because the familiar Debian-style autogenerator produces obtuse content like all autogenerators. I hate when people spread this misinformed FUD about grub, but I suppose it is largely grub's fault for encouraging the use of beginner tools and making it seem intimidating to even learn how it works. :( ... Hmm, I think I will invest the time in updating the Wiki page. This travesty cannot continue, I must make sure people are well-informed. (Also people really should use grub. It's quite nice to have a bootloader which supports encrypted boot and loading kernels from basically any filesystem without having to mount the ESP as /boot. I also get to use a small 2MB partition for the ESP, which is possible if you format it as fat12 which technically isn't supported by the standard but chances are it will work anyway because of recycling filesystem code that supports both on a generic level.) -- Eli Schwartz