X-Git-Url: https://git.grml.org/?a=blobdiff_plain;ds=sidebyside;f=grml2usb;h=312f6eb3a551c7b1d92788692ff7c13297353e6d;hb=a70b9388b65c6b231010156242f1758b8c3d5214;hp=85529c367c1d24b7e31afb9d57c1ec45013769f5;hpb=409f86265e5ba43939c5625971a64d54abae7456;p=grml2usb.git diff --git a/grml2usb b/grml2usb index 85529c3..312f6eb 100755 --- a/grml2usb +++ b/grml2usb @@ -705,6 +705,10 @@ def install_syslinux_mbr(device): @device: device where MBR of syslinux should be installed to""" + # 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)") + # lilo's mbr is broken, use the one from syslinux instead: if not os.path.isfile("/usr/lib/syslinux/mbr.bin"): raise Exception("/usr/lib/syslinux/mbr.bin can not be read") @@ -867,7 +871,7 @@ def mount(source, target, mount_options): raise CriticalException("Error executing mount: %s already mounted - please unmount before invoking grml2usb" % source) if os.path.isdir(source): - logging.debug("Source %s is not a device, not mounting therefor." % source) + logging.debug("Source %s is not a device, therefore not mounting." % source) return 0 logging.debug("mount %s %s %s" % (mount_options, source, target)) @@ -1195,14 +1199,14 @@ def install_iso_files(grml_flavour, iso_mount, device, target): if not options.skipaddons: if grml_flavour.endswith('-small'): - logging.info("Note: grml-small doesn't provide any addons, not installing them therefor.") + logging.info("Note: grml-small doesn't provide any addons, not installing them therefore.") else: copy_addons(iso_mount, target) if not options.copyonly: copy_bootloader_files(iso_mount, target) - if not options.dryrun and not os.path.isdir(device): + if not options.dryrun: handle_bootloader_config(grml_flavour, device, target) # make sure we sync filesystems before returning @@ -1344,11 +1348,13 @@ def handle_grub_config(grml_flavour, device, target): grub_target = target + '/boot/grub/' execute(mkdir, grub_target) - # we have to adjust root() inside grub configuration - if device[-1:].isdigit(): - install_grub1_partition = int(device[-1:]) - 1 + if os.path.isdir(device): + install_grub1_partition = None else: - raise CriticalException("error validating partition schema (raw device?)") + if device[-1:].isdigit(): + install_grub1_partition = int(device[-1:]) - 1 + else: + raise CriticalException("error validating partition schema (raw device?)") # do NOT write "None" in kernel cmdline if options.bootoptions is None: @@ -1357,7 +1363,8 @@ def handle_grub_config(grml_flavour, device, target): bootopt = options.bootoptions # write menu.lst - handle_grub1_config(grml_flavour, install_grub1_partition, grub_target, bootopt) + if install_grub1_partition: + handle_grub1_config(grml_flavour, install_grub1_partition, grub_target, bootopt) # write grub.cfg handle_grub2_config(grml_flavour, grub_target, bootopt) @@ -1457,7 +1464,7 @@ def handle_dir(live_image, device): logging.info("Using %s as install base" % live_image) if os.path.isdir(device): - logging.info("Specified target is a directory, not mounting therefor.") + logging.info("Specified target is a directory, therefore not mounting.") device_mountpoint = device remove_device_mountpoint = False else: @@ -1514,7 +1521,7 @@ def handle_iso(iso, device): sys.exit(1) if os.path.isdir(device): - logging.info("Specified target is a directory, not mounting therefor.") + logging.info("Specified target is a directory, therefore not mounting.") device_mountpoint = device remove_device_mountpoint = False # skip_mbr = True @@ -1561,19 +1568,13 @@ def handle_mbr(device): logging.info("Would install MBR") return 0 - # make sure we have syslinux available - if not which("syslinux") and not options.copyonly: - logging.critical('Sorry, syslinux not available. Exiting.') - logging.critical('Please install syslinux or consider using the --grub option.') - sys.exit(1) - if device[-1:].isdigit(): mbr_device = re.match(r'(.*?)\d*$', device).group(1) partition_number = int(device[-1:]) - 1 skip_install_mir_mbr = False # if we get e.g. /dev/loop1 as device we don't want to put the MBR - # into /dev/loop of course, therefor use /dev/loop1 as mbr_device + # into /dev/loop of course, therefore use /dev/loop1 as mbr_device if mbr_device == "/dev/loop": mbr_device = device logging.info("Detected loop device - using %s as MBR device therefore" % mbr_device) @@ -1627,7 +1628,7 @@ def handle_vfat(device): logging.critical("Execution failed: %s", error) sys.exit(1) - if not check_for_usbdevice(device) and not os.path.isdir(device): + if not os.path.isdir(device) and not check_for_usbdevice(device): print "Warning: the specified device %s does not look like a removable usb device." % device f = raw_input("Do you really want to continue? y/N ") if f == "y" or f == "Y":