Useful discussion but this is a wrong list. Right one is grub-de...@gnu.org On 08/26/2010 02:54 PM, lode leroy wrote: > I just thought of the following solution to the problem mentioned > here lately about OS's generating "/boot/grub/grub.cfg" from templates. > > Would it not be better for grub to do this instead of the OS? > > If the user asks the OS to *install* grub, the installing OS should install > a default grub.cfg, as is done now. > > If the user asks the OS to *register* with grub, the installing OS should > install a file "/boot/grub/grub.sub" with an entry for booting itself, > on whatever it considers it's "/boot" partition. > (a provision could be made to add a number in the .sub file to indicate > the order of the menu entries, to be entered by the user.) > > When reading grub.cfg, grub would find a function call > "insert_dynamic_menuentries()" > it should then scan all known partitions, and see if a file > "/boot/grub/grub.sub" exist, > if it does, it sets the variable "root" to the partition name, and includes > the file. > > > This way, an OS should only manage it's own entry... > > > > a more elaborate example below: > > cat (hd0,0)/boot/grub/grub.cfg > ========================================== > > insmod gfxterm > background_image (hd0,0)/boot/grub/splash.jpg > > insert_dynamic_menuentries() > > menuentry "Boot first partition" > { > set root=(hd0,1) > chainloader +1 > } > ========================================== > > > cat (hd0,1)/boot/grub/grub.sub > ========================================== > # For booting GNU/Hurd > menuentry "GNU (aka GNU/Hurd)" 2 { > multiboot /boot/gnumach.gz root=device:hd0s1 > module /hurd/ext2fs.static ext2fs --readonly \ > --multiboot-command-line='${kernel-command-line}' \ > --host-priv-port='${host-port}' \ > --device-master-port='${device-port}' \ > --exec-server-task='${exec-task}' -T typed '${root}' \ > '$(task-create)' '$(task-resume)' > module /lib/ld.so.1 exec /hurd/exec '$(exec-task=task-create)' > } > ========================================== > > > cat (hd0,2)/boot/grub/grub.sub > ========================================== > # For booting GNU/Linux > menuentry "GNU/Linux" 1 { > linux /boot/vmlinuz root=/dev/sda3 > initrd /boot/initrd.img > } > > ========================================== > > > > > > > > > > equivalent grub.cfg > ========================================== > > insmod gfxterm > > background_image (hd0,0)/boot/grub/splash.jpg > > menuentry "GNU/Linux" { > set root=(hd0,2) > linux /boot/vmlinuz root=/dev/sda3 > initrd /boot/initrd.img > } > > menuentry "GNU (aka GNU/Hurd)" { > set root=(hd0,1) > multiboot /boot/gnumach.gz root=device:hd0s1 > module /hurd/ext2fs.static ext2fs --readonly \ > --multiboot-command-line='${kernel-command-line}' \ > --host-priv-port='${host-port}' \ > --device-master-port='${device-port}' \ > --exec-server-task='${exec-task}' -T typed '${root}' \ > '$(task-create)' '$(task-resume)' > module /lib/ld.so.1 exec /hurd/exec '$(exec-task=task-create)' > } > > menuentry "Boot first partition" > { > set root=(hd0,1) > chainloader +1 > } > > > ========================================== > > > > _______________________________________________ > Bug-grub mailing list > Bug-grub@gnu.org > http://lists.gnu.org/mailman/listinfo/bug-grub > >
-- Regards Vladimir 'φ-coder/phcoder' Serbinenko
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Bug-grub mailing list Bug-grub@gnu.org http://lists.gnu.org/mailman/listinfo/bug-grub