ivandavidov / minimal

Minimal Linux Live (MLL) is a tiny educational Linux distribution, which is designed to be built from scratch by using a collection of automated shell scripts. Minimal Linux Live offers a core environment with just the Linux kernel, GNU C library, and Busybox userland utilities.
https://ivandavidov.github.io/minimal
GNU General Public License v3.0
1.54k stars 301 forks source link

Replace Syslinux with GRUB #79

Open ivandavidov opened 7 years ago

ivandavidov commented 7 years ago

The title says it all. The Syslinux project has been abandoned long ago and since then the GRUB project evolved significantly.

https://www.gnu.org/software/grub/manual/grub.html#Making-a-GRUB-bootable-CD_002dROM

yhaenggi commented 7 years ago

grub also works on ppc, so would help the (hopeful) future merge/rework.

ivandavidov commented 7 years ago

@K1773R - feel free to implement this feature in your PPC branch. I could merge it later. :)

I really don't know when I'll start working on this one. It's a big change and it will require a lot of research and even more testing. Not to mention that in my case I have to support both BIOS and UEFI, perhaps on both x86 and x86_64 CPUs.

yetanothergeek commented 7 years ago

I don't think syslinux is "abandoned" Last commit was May 31, 2017: http://repo.or.cz/syslinux.git

ivandavidov commented 7 years ago

Yet we haven't seen official Syslinux release in years. IMHO this is an abandoned project.

AwlsomeAlex commented 7 years ago

@ivandavidov GRUB for x86 and x86_64 shouldn't be that much of a problem if you compile GRUB Tools as an Overlay and have the Minimal Linux Live Installer use this specific overlay to use the command 'grub-install'. And assuming that you compiled an x86_64 GRUB for an x86_64 Live Image, you should be fine. I think to overcome these problems would be to:

  1. Create a GRUB Overlay (Or Statically copy from System)
  2. Have the installer determine if it's booted in EFI with mdev, and determine what to do because of it.

I also think you SHOULD NOT replace Syslinux on the Live Images, like keep Syslinux default but when you install it to the Hard Drive then use GRUB.

ivandavidov commented 7 years ago

@AwlsomeAlex - I'm talking about the ISO image boot mechanism. Installing MLL on HDD is completely different use case. Of course, the current installer will be affected as well but the same installer has not been finalized, so it's not a big deal if it becomes obsolete.

AwlsomeAlex commented 7 years ago

@ivandavidov I see. Yeah it will require a bit more research. I guess an overlay won't need to be created if the system already has GRUB installed. Maybe instead of just having a directory the filesystem you can actually mount a temporary filesystem to the system and install it there, then convert it to an ISO Image?

ivandavidov commented 7 years ago

GRUB 2 can be compiled quite easily. However, by default it is linked against the host's system libraries. Nevertheless, it works. The produced MLL ISO image is 6-8MB larger (total of 13-15MB) when the ISO image is generated with grub-mkrescue which is not cool.

I found very interesting article...

GRUB2 How To (2) : Make boot-able ISO with xorriso

...which explains in deep details the internals of the ISO generation process with GRUB and xorriso. It's worth to analyze the described process and see if it can be applied in MLL.

fosslinux commented 7 years ago

Current status on this?

ivandavidov commented 7 years ago

@styler96 - this issue is still in refinement stage.

ghost commented 6 years ago

Hmmmm. I hadn't thought syslinux was abandoned - I use it for all my booting although there are other things I want to research like uboot.

grub2 I found to absolutely horribly complex.... requires the use of config and build scripts to make any modifications and the end result is so verbose and complex that its just not worth using at all. I preferred grub 1 to grub 2 by a long shot. I thought grub2 is a classic case of super over engineering that makes the end result unusable.

ivandavidov commented 6 years ago

Technically speaking the Syslinux project is not really abandoned. We just haven't seen new stable version in years. :)

I also find grub2 quite hard to build in easy and reliable way, mostly die to the many dependencies that it has. Everyone can build it and use it locally but automating this whole process in such a way that it could be easily reused on many different environments is very much "mission impossible".

Maybe it's time to "abandon" this feature and accept the reality that Syslinux is stable enough and doesn't really has to changed because it simply works (well, not on UEFI systems, but still, it works fine).