X-Git-Url: https://git.grml.org/?p=grml2usb.git;a=blobdiff_plain;f=grml2usb;h=7af8f44174a1f4a7daf58703d12928713ea3d1c0;hp=7df0f97821fbe3800a1fb82f994d0dd7ca234582;hb=844bfae19ec2fdef0e400eeacdaaa53a9d5ec997;hpb=94a97c69103e01c079ce139540f8e4051aee074d diff --git a/grml2usb b/grml2usb index 7df0f97..7af8f44 100755 --- a/grml2usb +++ b/grml2usb @@ -49,6 +49,8 @@ parser.add_option("--fat16", dest="fat16", action="store_true", help="format specified partition with FAT16") parser.add_option("--force", dest="force", action="store_true", help="force any actions requiring manual interaction") +parser.add_option("--grub", dest="grub", action="store_true", + help="install grub bootloader instead of (default) syslinux") parser.add_option("--grub-mbr", dest="grubmbr", action="store_true", help="install grub into MBR instead of (default) PBR") parser.add_option("--lilo-binary", dest="lilobin", action="store", type="string", @@ -66,7 +68,7 @@ parser.add_option("--skip-mbr", dest="skipmbr", action="store_true", parser.add_option("--skip-syslinux-config", dest="skipsyslinuxconfig", action="store_true", help="skip generation of syslinux configuration files") parser.add_option("--syslinux", dest="syslinux", action="store_true", - help="install syslinux bootloader instead of grub") + help="install syslinux bootloader (deprecated as it's the default)") parser.add_option("--syslinux-mbr", dest="syslinuxmbr", action="store_true", help="install syslinux master boot record (MBR) instead of default") parser.add_option("--verbose", dest="verbose", action="store_true", @@ -585,7 +587,7 @@ def install_grub(device): proc.wait() if proc.returncode != 0: # raise Exception("error executing grub-install") - logging.critical("Fatal: error executing grub-install (please check the grml2usb FAQ or use --syslinux)") + logging.critical("Fatal: error executing grub-install (please check the grml2usb FAQ or drop the --grub option)") logging.critical("Note: if using grub2 consider using the --grub-mbr option because grub2's PBR feature is broken.") cleanup() sys.exit(1) @@ -625,13 +627,9 @@ def install_bootloader(device): # by default we use grub, so install syslinux only on request if options.syslinux: - try: - install_syslinux(device) - except CriticalException, error: - logging.critical("Fatal: %s", error) - cleanup() - sys.exit(1) - else: + logging.info("Note: the --syslinux option is deprecated as syslinux is grml2usb's default. Continuing anyway.") + + if options.grub: if not which("grub-install"): logging.critical("Fatal: grub-install not available (please install the grub package or use the --syslinux option)") cleanup() @@ -643,6 +641,13 @@ def install_bootloader(device): logging.critical("Fatal: %s", error) cleanup() sys.exit(1) + else: + try: + install_syslinux(device) + except CriticalException, error: + logging.critical("Fatal: %s", error) + cleanup() + sys.exit(1) def execute_lilo(lilo, device): @@ -674,7 +679,7 @@ def install_syslinux_mbr(device): # make sure we have syslinux available if not which("syslinux") and not options.copyonly: - raise Exception("syslinux not available (either install it or consider dropping the --syslinux option)") + raise Exception("syslinux not available (either install it or consider using the --grub option)") # lilo's mbr is broken, use the one from syslinux instead: if not os.path.isfile("/usr/lib/syslinux/mbr.bin"): @@ -1102,6 +1107,12 @@ def copy_bootloader_files(iso_mount, target): bootsplash = search_file(ffile, iso_mount) exec_rsync(bootsplash, syslinux_target + ffile) + if not search_file('default.cfg', iso_mount + '/boot/isolinux/'): + logging.critical("Fatal: file default.cfg could not be found.") + logging.critical("Note: this grml2usb version requires an ISO generated by grml-live >=0.9.24 ...") + logging.critical(" ... either use grml releases >=2009.10 or switch to an older grml2usb version.") + raise + for filename in 'addons.cfg', 'default.cfg', 'distri.cfg', 'hidden.cfg', \ 'grml.cfg', 'grml.png', 'hd.cfg', 'isoprompt.cfg', 'options.cfg', \ 'vesamenu.c32', 'vesamenu.cfg', 'grml.png': @@ -1344,7 +1355,7 @@ def initial_syslinux_config(target): def adjust_syslinux_bootoptions(src_name, dst_name, flavour): append_re = re.compile("^(\s*append.*)$", re.I) - boot_re = re.compile("/boot/([a-zA-Z0-9_]+/)+(\w+)") + boot_re = re.compile("/boot/([a-zA-Z0-9_]+/)+([a-zA-Z0-9._]+)") flavour_re = re.compile("(label.*)(grml\w+)") default_re = re.compile("(default.cfg)") src = open(src_name, "r")