grub2: drop serial entry; rework MirOS entry; improve grml descriptions
[grml2usb.git] / grml2usb
index fd6dc17..e9bfe3d 100755 (executable)
--- a/grml2usb
+++ b/grml2usb
@@ -18,7 +18,7 @@ from inspect import isroutine, isclass
 import datetime, logging, os, re, subprocess, sys, tempfile, time
 
 # global variables
 import datetime, logging, os, re, subprocess, sys, tempfile, time
 
 # global variables
-PROG_VERSION = "0.9.8"
+PROG_VERSION = "0.9.9"
 MOUNTED = set()  # register mountpoints
 TMPFILES = set() # register tmpfiles
 DATESTAMP = time.mktime(datetime.datetime.now().timetuple()) # unique identifier for syslinux.cfg
 MOUNTED = set()  # register mountpoints
 TMPFILES = set() # register tmpfiles
 DATESTAMP = time.mktime(datetime.datetime.now().timetuple()) # unique identifier for syslinux.cfg
@@ -245,16 +245,20 @@ def generate_main_grub2_config(grml_flavour, bootoptions):
     return("""\
 ## main grub2 configuration - generated by grml2usb [main config generated at: %(local_datestamp)s]
 set default=0
     return("""\
 ## main grub2 configuration - generated by grml2usb [main config generated at: %(local_datestamp)s]
 set default=0
-set timeout=5
+set timeout=10
 
 insmod fat
 
 
 insmod fat
 
-if font /boot/grub/ascii.pff ; then
+if loadfont /boot/grub/ascii.pf2 ; then
    insmod png
    set gfxmode=640x480
    insmod gfxterm
    insmod vbe
    insmod png
    set gfxmode=640x480
    insmod gfxterm
    insmod vbe
-   terminal gfxterm
+   if terminal_output.gfxterm ; then true ; else
+    # For backward compatibility with versions of terminal.mod that don't
+    # understand terminal_output
+    terminal gfxterm
+   fi
 fi
 
 if background_image /boot/grub/grml.png ; then
 fi
 
 if background_image /boot/grub/grml.png ; then
@@ -266,26 +270,35 @@ else
 fi
 
 menuentry "%(grml_flavour)s (default)" {
 fi
 
 menuentry "%(grml_flavour)s (default)" {
-    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
+    set gfxpayload=1024x768x16,1024x768
+    linux   /boot/release/%(grml_flavour)s/linux26 apm=power-off 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+)" {
     initrd  /boot/release/%(grml_flavour)s/initrd.gz
 }
 
 menuentry "Memory test (memtest86+)" {
-    linux   /boot/addons/memtest
+    linux16   /boot/addons/memtest
 }
 
 }
 
-menuentry "Grub - all in one image" {
+menuentry "Boot Grub (all in one image)" {
     linux   /boot/addons/memdisk
     initrd  /boot/addons/allinone.img
 }
 
     linux   /boot/addons/memdisk
     initrd  /boot/addons/allinone.img
 }
 
-menuentry "FreeDOS" {
+menuentry "Boot FreeDOS" {
     linux   /boot/addons/memdisk
     initrd  /boot/addons/balder10.imz
 }
 
     linux   /boot/addons/memdisk
     initrd  /boot/addons/balder10.imz
 }
 
-menuentry "MirOS BSD" {
-    multiboot   /boot/addons/bsd4grml/ldbsd.com
+menuentry "Boot MirOS bsd4grml" {
+    multiboot /boot/addons/bsd4grml/ldbsd.com
+    module    /boot/addons/bsd4grml/bsd.rd
+    module    /boot/addons/bsd4grml/boot.1
+    module    /boot/addons/bsd4grml/boot.2
+    module    /boot/addons/bsd4grml/boot.3
+    module    /boot/addons/bsd4grml/boot.4
+    module    /boot/addons/bsd4grml/boot.5
+    module    /boot/addons/bsd4grml/boot.6
+    module    /boot/addons/bsd4grml/boot.cfg
 }
 
 menuentry "Boot OS of first partition on first disk" {
 }
 
 menuentry "Boot OS of first partition on first disk" {
@@ -307,56 +320,56 @@ def generate_flavour_specific_grub2_config(grml_flavour, bootoptions):
 
     return("""\
 ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
 
     return("""\
 ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
-menuentry "%(grml_flavour)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
+menuentry "%(grml_flavour)s            - boot in default mode" {
+    set gfxpayload=1024x768x16,1024x768
+    linux  /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce 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]
     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-persistent" {
-    linux  /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet persistent live-media-path=/live/%(grml_flavour)s/ %(bootoptions)s
+menuentry "%(grml_flavour)s-persistent - enable persistency feature" {
+    set gfxpayload=1024x768x16,1024x768
+    linux  /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet persistent 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]
     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" {
-    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.squashfs %(bootoptions)s
+menuentry "%(grml_flavour)s2ram        - copy compressed grml file to RAM" {
+    set gfxpayload=1024x768x16,1024x768
+    linux  /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ toram=%(grml_flavour)s.squashfs %(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]
     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" {
-    linux /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
+menuentry "%(grml_flavour)s-debug      - enable debugging options" {
+    set gfxpayload=1024x768x16,1024x768
+    linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ debug boot=live initcall_debug%(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]
     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-x" {
-    linux  /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
+menuentry "%(grml_flavour)s-x          - start X Window System" {
+    set gfxpayload=1024x768x16,1024x768
+    linux  /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ startx=wm-ng %(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]
     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-nofb" {
+menuentry "%(grml_flavour)s-nofb       - disable framebuffer" {
     linux  /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 /boot/release/%(grml_flavour)s/initrd.gz
 }
 
 ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
     linux  /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 /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-failsafe" {
+menuentry "%(grml_flavour)s-failsafe   - disable hardware detection" {
     linux /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 /boot/release/%(grml_flavour)s/initrd.gz
 }
 
 ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
     linux /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 /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-forensic" {
-    linux /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 forensic readonly %(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-serial" {
-    linux /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
+menuentry "%(grml_flavour)s-forensic   - do not touch harddisks during hw recognition" {
+    set gfxpayload=1024x768x16,1024x768
+    linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ nofstab noraid nolvm noautoconfig noswap raid=noautodetect forensic readonly %(bootoptions)s
     initrd /boot/release/%(grml_flavour)s/initrd.gz
 }
 
     initrd /boot/release/%(grml_flavour)s/initrd.gz
 }
 
@@ -1167,10 +1180,10 @@ def copy_bootloader_files(iso_mount, target):
         proc.wait()
 
     # font file for graphical bootsplash in grub
         proc.wait()
 
     # font file for graphical bootsplash in grub
-    if os.path.isfile("/usr/share/grub/ascii.pff"):
-        logging.debug("rsync -rlptDH --inplace /usr/share/grub/ascii.pff to %s" % grub_target + 'ascii.pff')
-        proc = subprocess.Popen(["rsync", "-rlptDH", "--inplace", '/usr/share/grub/ascii.pff',
-                                grub_target + 'ascii.pff'])
+    if os.path.isfile("/usr/share/grub/ascii.pf2"):
+        logging.debug("rsync -rlptDH --inplace /usr/share/grub/ascii.pf2 to %s" % grub_target + 'ascii.pf2')
+        proc = subprocess.Popen(["rsync", "-rlptDH", "--inplace", '/usr/share/grub/ascii.pf2',
+                                grub_target + 'ascii.pf2'])
         proc.wait()
 
 
         proc.wait()