X-Git-Url: https://git.grml.org/?p=grml2usb.git;a=blobdiff_plain;f=grml2usb;h=89874503f4ba2456dd59d7f336b201a35dc828e2;hp=bd4752c67759f4865b034a3a6bf8229ec2fdae79;hb=c021230b57ee91d9b44f42e97ec7c28404ce77c1;hpb=35d64cfacc77f59024ee1cfda8c65aa71e96cc21 diff --git a/grml2usb b/grml2usb index bd4752c..8987450 100755 --- a/grml2usb +++ b/grml2usb @@ -7,7 +7,7 @@ grml2usb This script installs a grml system (either a running system or ISO[s]) to a USB device -:copyright: (c) 2009 by Michael Prokop +:copyright: (c) 2009, 2010, 2011 by Michael Prokop :license: GPL v2 or any later version :bugreports: http://grml.org/bugs/ @@ -22,7 +22,7 @@ import uuid import struct # global variables -PROG_VERSION = "0.9.29~git" +PROG_VERSION = "0.9.31" MOUNTED = set() # register mountpoints TMPFILES = set() # register tmpfiles DATESTAMP = time.mktime(datetime.datetime.now().timetuple()) # unique identifier for syslinux.cfg @@ -60,7 +60,7 @@ Run %prog --help for usage hints, further information via: man grml2usb" # pylint: disable-msg=W0603 parser = OptionParser(usage=USAGE) parser.add_option("--bootoptions", dest="bootoptions", - action="store", type="string", + action="append", type="string", help="use specified bootoptions as default") parser.add_option("--bootloader-only", dest="bootloaderonly", action="store_true", help="do not copy files but just install a bootloader") @@ -324,7 +324,7 @@ if loadfont /boot/grub/ascii.pf2 ; then set gfxmode=640x480 insmod gfxterm insmod vbe - if terminal_output.gfxterm ; then true ; else + if terminal_output gfxterm ; then true ; else # For backward compatibility with versions of terminal.mod that don't # understand terminal_output terminal gfxterm @@ -1102,7 +1102,8 @@ def copy_system_files(grml_flavour, iso_mount, target): squashfs = search_file(grml_flavour + '.squashfs', iso_mount) if squashfs is None: - logging.critical("Fatal: squashfs file not found") + logging.critical("Fatal: squashfs file not found" + ", please check that your iso is not corrupt") raise CriticalException("error locating squashfs file") else: squashfs_target = target + '/live/' + grml_flavour + '/' @@ -1229,16 +1230,18 @@ def copy_grml_files(iso_mount, target): exec_rsync(grml_file, grml_webimg_target + myfile) -def handle_addon_copy(filename, dst, iso_mount): +def handle_addon_copy(filename, dst, iso_mount, ignore_errors=False): """handle copy of optional addons @filename: filename of the addon @dst: destination directory @iso_mount: location of the iso mount + @ignore_errors: don't report missing files """ file_location = search_file(filename, iso_mount) if file_location is None: - logging.warn("Warning: %s not found (that's fine if you don't need it)", filename) + if not ignore_errors: + logging.warn("Warning: %s not found (that's fine if you don't need it)", filename) else: exec_rsync(file_location, dst) @@ -1278,9 +1281,11 @@ def copy_addons(iso_mount, target): # memtest86+ image handle_addon_copy('memtest', addons, iso_mount) - # gpxe.lkrn - handle_addon_copy('gpxe.lkrn', addons, iso_mount) + # gpxe.lkrn: got replaced by ipxe + handle_addon_copy('gpxe.lkrn', addons, iso_mount, ignore_errors=True) + # ipxe.lkrn + handle_addon_copy('ipxe.lkrn', addons, iso_mount) def glob_and_copy(filepattern, dst): """Glob on specified filepattern and copy the result to dst @@ -1592,10 +1597,10 @@ def get_bootoptions(grml_flavour): @grml_flavour: name of the grml_flavour """ # do NOT write "None" in kernel cmdline - if options.bootoptions is None: + if not options.bootoptions: bootopt = "" else: - bootopt = options.bootoptions + bootopt = " ".join(options.bootoptions) bootopt = bootopt.replace("%flavour", grml_flavour) return bootopt @@ -1922,6 +1927,8 @@ def install_grml(mountpoint, device): try: grml_flavours = identify_grml_flavour(mountpoint) for flavour in set(grml_flavours): + if not flavour: + logging.warning("No valid flavour found, please check your iso") logging.info("Identified grml flavour \"%s\".", flavour) install_iso_files(flavour, mountpoint, device, device_mountpoint) GRML_FLAVOURS.add(flavour)