:license: GPL v2 or any later version
:bugreports: http://grml.org/bugs/
-TODO
-----
-
-* implement missing options (--grub, --kernel, --initrd, --squashfs, --uninstall)
-* validate partition schema/layout: is the partition schema ok and the bootable flag set? (--validate?)
-* provide --create-partition option?
-* implement logic for storing information about copied files -> register every file in a set()
-* the last line in bootsplash (boot.msg) should mention all installed grml flavours
-* code improvements:
- - improve error handling wherever possible :)
- - use 'with open("...", "w") as f: ... f.write("...")'
- - simplify functions/code as much as possible, especially:
- Too many local variables
- Too many branches
- Too many statements
-* graphical version? any volunteers? :)
"""
from __future__ import with_statement
# the default option (using %(grml_flavour)s)
LABEL grml
KERNEL /boot/release/%(grml_flavour)s/linux26
-APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce quiet module=%(grml_flavour)s %(bootoptions)s
+APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce vga=791 quiet module=%(grml_flavour)s %(bootoptions)s
# memtest
LABEL memtest
KERNEL /boot/addons/memtest
-#APPEND BOOT_IMAGE=memtest
# grub
LABEL grub
# flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
LABEL %(grml_flavour)s
KERNEL /boot/release/%(grml_flavour)s/linux26
-APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce quiet module=%(grml_flavour)s %(bootoptions)s
+APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce vga=791 quiet module=%(grml_flavour)s %(bootoptions)s
# flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
LABEL %(grml_flavour)s2ram
KERNEL /boot/release/%(grml_flavour)s/linux26
-APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce quiet module=%(grml_flavour)s toram=%(grml_flavour)s %(bootoptions)s
+APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce vga=791 quiet module=%(grml_flavour)s toram=%(grml_flavour)s %(bootoptions)s
# flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
LABEL %(grml_flavour)s-debug
KERNEL /boot/release/%(grml_flavour)s/linux26
-APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce quiet module=%(grml_flavour)s debug boot=live initcall_debug%(bootoptions)s
+APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce vga=791 quiet module=%(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]
LABEL %(grml_flavour)s-x
KERNEL /boot/release/%(grml_flavour)s/linux26
-APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce quiet module=%(grml_flavour)s startx=wm-ng %(bootoptions)s
+APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce vga=791 quiet module=%(grml_flavour)s startx=wm-ng %(bootoptions)s
# flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
LABEL %(grml_flavour)s-nofb
# flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s]
LABEL %(grml_flavour)s-forensic
KERNEL /boot/release/%(grml_flavour)s/linux26
-APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce quiet module=%(grml_flavour)s nofstab noraid nolvm noautoconfig noswap raid=noautodetect %(bootoptions)s
+APPEND initrd=/boot/release/%(grml_flavour)s/initrd.gz apm=power-off boot=live nomce vga=791 quiet module=%(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]
LABEL %(grml_flavour)s-serial
def install_lilo_mbr(lilo, device):
"""TODO"""
+ # TODO: check out the *real* difference between:
+ # * mbr-install /dev/ice
+ # * lilo -S /dev/null -M /dev/ice ext && lilo -S /dev/null -A /dev/ice 1
+ # * cat /usr/lib/syslinux/mbr.bin > /dev/ice
+ # * syslinux -sf /dev/iceX
+ # * ...?
+
# to support -A for extended partitions:
logging.info("Installing MBR")
logging.debug("%s -S /dev/null -M %s ext" % (lilo, device))
proc = subprocess.Popen(["install", "--mode=664", balderimg, addons + 'balder10.imz'])
proc.wait()
- # memtest86+ image
+ # memdisk image
memdiskimg = search_file('memdisk', iso_mount)
if memdiskimg is None:
logging.warn("Warning: memdisk not found - can not install it")
proc = subprocess.Popen(["install", "--mode=664", memdiskimg, addons + 'memdisk'])
proc.wait()
+ # memtest86+ image
+ memtestimg = search_file('memtest', iso_mount)
+ if memtestimg is None:
+ logging.warn("Warning: memtest not found - can not install it")
+ else:
+ logging.debug("cp %s %s" % (memtestimg, addons + '/memtest'))
+ proc = subprocess.Popen(["install", "--mode=664", memtestimg, addons + 'memtest'])
+ proc.wait()
+
def copy_bootloader_files(iso_mount, target):
""""TODO"""
else:
sys.exit(1)
- # format partition:
- if options.fat16:
- mkfs_fat16(device)
-
def handle_compat_warning(device):
"""TODO"""