+ @grml_flavour: name of grml flavour the configuration should be generated for
+ @install_partition: partition number for use in (hd0,X)
+ @bootoptions: additional bootoptions that should be used by default"""
+
+ local_datestamp = DATESTAMP
+
+ return("""\
+## main grub2 configuration - generated by grml2usb [main config generated at: %(local_datestamp)s]
+set default=0
+set timeout=5
+
+insmod fat
+
+if font (hd0,%(install_partition)s)/boot/grub/ascii.pff ; then
+ insmod png
+ set gfxmode=640x480
+ insmod gfxterm
+ insmod vbe
+ terminal gfxterm
+fi
+
+if background_image (hd0,%(install_partition)s)/boot/grub/grml.png ; then
+ set color_normal=black/black
+ set color_highlight=red/black
+else
+ set menu_color_normal=white/black
+ set menu_color_highlight=black/yellow
+fi
+
+menuentry "%(grml_flavour)s (default)" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/release/%(grml_flavour)s/linux26 apm=power-off vga=791 quiet boot=live nomce live-media-path=/live/%(grml_flavour)s/ %(bootoptions)s
+ initrd /boot/release/%(grml_flavour)s/initrd.gz
+}
+
+menuentry "Memory test (memtest86+)" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/addons/memtest
+}
+
+menuentry "Grub - all in one image" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/addons/memdisk
+ initrd /boot/addons/allinone.img
+}
+
+menuentry "FreeDOS" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/addons/memdisk
+ initrd /boot/addons/balder10.imz
+}
+
+menuentry "MirBSD" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/addons/bsd4grml/ldbsd.com
+}
+
+menuentry "Boot OS of first partition on first disk" {
+ set root=(hd0,1)
+ chainloader +1
+}
+
+""" % {'grml_flavour': grml_flavour, 'local_datestamp': local_datestamp,
+ 'bootoptions': bootoptions, 'install_partition': install_partition } )
+
+
+def generate_flavour_specific_grub2_config(grml_flavour, install_partition, bootoptions):
+ """Generate grub2 configuration for use via grub.cfg
+
+ @grml_flavour: name of grml flavour the configuration should be generated for
+ @install_partition: partition number for use in (hd0,X)
+ @bootoptions: additional bootoptions that should be used by default"""
+
+ local_datestamp = DATESTAMP
+
+ return("""\
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+menuentry "%(grml_flavour)s" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ %(bootoptions)s
+ initrd /boot/release/%(grml_flavour)s/initrd.gz
+}
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+menuentry "%(grml_flavour)s2ram" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ toram=%(grml_flavour)s %(bootoptions)s
+ initrd /boot/release/%(grml_flavour)s/initrd.gz
+}
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+menuentry "%(grml_flavour)s-debug" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/release/%(grml_flavour)s/linux26
+ initrd /boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ debug boot=live initcall_debug%(bootoptions)s
+}
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+menuentry "%(grml_flavour)s-x" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/release/%(grml_flavour)s/linux26
+ initrd /boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ startx=wm-ng %(bootoptions)s
+}
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+menuentry "%(grml_flavour)s-nofb" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/release/%(grml_flavour)s/linux26
+ initrd /boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ vga=normal video=ofonly %(bootoptions)s
+}
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+menuentry "%(grml_flavour)s-failsafe" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/release/%(grml_flavour)s/linux26
+ initrd /boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ vga=normal boot=live noautoconfig atapicd noapic noacpi acpi=off nomodules nofirewire noudev nousb nohotplug noapm nopcmcia nosmp maxcpus=0 noscsi noagp nodma ide=nodma noswap nofstab nosound nogpm nosyslog nodhcp nocpu nodisc nomodem xmodule=vesa noraid nolvm noresume selinux=0 edd=off %(bootoptions)s
+}
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+menuentry "%(grml_flavour)s-forensic" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/release/%(grml_flavour)s/linux26
+ initrd /boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ nofstab noraid nolvm noautoconfig noswap raid=noautodetect %(bootoptions)s
+}
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+menuentry "%(grml_flavour)s-serial" {
+ set root=(hd0,%(install_partition)s)
+ linux /boot/release/%(grml_flavour)s/linux26
+ initrd /boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ vga=normal video=vesafb:off console=tty1 console=ttyS0,9600n8 %(bootoptions)s
+}
+
+""" % {'grml_flavour': grml_flavour, 'local_datestamp': local_datestamp,
+ 'bootoptions': bootoptions, 'install_partition': install_partition } )
+
+
+def generate_flavour_specific_grub1_config(grml_flavour, install_partition, bootoptions):
+ """Generate grub1 configuration for use via menu.lst
+
+ @grml_flavour: name of grml flavour the configuration should be generated for
+ @install_partition: partition number for use in (hd0,X)
+ @bootoptions: additional bootoptions that should be used by default"""
+
+ local_datestamp = DATESTAMP
+
+ return("""\
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+title %(grml_flavour)s
+kernel (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ %(bootoptions)s
+initrd (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/initrd.gz
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+title %(grml_flavour)s2ram
+kernel (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ toram=%(grml_flavour)s %(bootoptions)s
+initrd (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/initrd.gz
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+title %(grml_flavour)s-debug
+kernel (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ debug boot=live initcall_debug%(bootoptions)s
+initrd (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/initrd.gz
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+title %(grml_flavour)s-x
+kernel (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ startx=wm-ng %(bootoptions)s
+initrd (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/initrd.gz
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+title %(grml_flavour)s-nofb
+kernel (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ vga=normal video=ofonly %(bootoptions)s
+initrd (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/initrd.gz
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+title %(grml_flavour)s-failsafe
+kernel (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ vga=normal boot=live noautoconfig atapicd noapic noacpi acpi=off nomodules nofirewire noudev nousb nohotplug noapm nopcmcia nosmp maxcpus=0 noscsi noagp nodma ide=nodma noswap nofstab nosound nogpm nosyslog nodhcp nocpu nodisc nomodem xmodule=vesa noraid nolvm noresume selinux=0 edd=off %(bootoptions)s
+initrd (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/initrd.gz
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+title %(grml_flavour)s-forensic
+kernel (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ nofstab noraid nolvm noautoconfig noswap raid=noautodetect %(bootoptions)s
+initrd (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/initrd.gz
+
+## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
+title %(grml_flavour)s-serial
+kernel (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ vga=normal video=vesafb:off console=tty1 console=ttyS0,9600n8 %(bootoptions)s
+initrd (hd0,%(install_partition)s)/boot/release/%(grml_flavour)s/initrd.gz
+
+""" % {'grml_flavour': grml_flavour, 'local_datestamp': local_datestamp,
+ 'bootoptions': bootoptions, 'install_partition': install_partition } )
+
+
+def generate_main_grub1_config(grml_flavour, install_partition, bootoptions):
+ """Generate grub1 configuration for use via menu.lst