How the GRUB on the SmileyOS USB stick is put together ====================================================== 1. GRUB comes from the Ubuntu 24.04 packages grub-pc-bin and grub2-common, version 2.12-1ubuntu7.3, built by Ubuntu from the source in this folder: grub2_2.12.orig.tar.xz (GRUB 2.12) and grub2_2.12-1ubuntu7.3.debian.tar.xz (Ubuntu's changes and build scripts), described with their checksums in grub2_2.12-1ubuntu7.3.dsc. Unpack and build them with: dpkg-source -x grub2_2.12-1ubuntu7.3.dsc cd grub2-2.12 && dpkg-buildpackage -b -uc -us 2. The boot image is made with Ubuntu's own, unchanged GRUB tools: grub-mkimage -O i386-pc -o core.img -c early.cfg -m memdisk.tar \ -p /boot/grub biosdisk part_msdos fat multiboot normal boot \ configfile vbe video_bochs video_cirrus loadenv test echo serial \ terminal gzio memdisk tar time keystatus sleep smbios boot.img is /usr/lib/grub/i386-pc/boot.img from grub-pc-bin, unchanged. 3. early.cfg is: set bootdisk=$root set prefix=(memdisk)/boot/grub memdisk.tar holds boot/grub/grub.cfg: the SmileyOS start menu, a GRUB configuration that picks which copy of SmileyOS on the stick to start. GRUB's code is not changed. GRUB is free software under the GNU General Public License, version 3 or later (GPL-3.0.txt). SmileyOS is a separate program that GRUB starts; the GPL covers GRUB, not SmileyOS. https://smileytech.mk/smileyos/open-source