X-Git-Url: http://git.grml.org/?p=grml2usb.git;a=blobdiff_plain;f=grml2usb;h=e465ebe2528a12fd1a9781b21d07274877289261;hp=05067e4c4d26b016f5fa479f3478a08e68d8ecbc;hb=9cbb2312cb49156f1daa60e1a9f91d0516dc68e3;hpb=5033f52497a444831696f178ba6ee77722a4533d diff --git a/grml2usb b/grml2usb index 05067e4..e465ebe 100755 --- a/grml2usb +++ b/grml2usb @@ -502,8 +502,6 @@ def install_grub(device): device_mountpoint = tempfile.mkdtemp(prefix="grml2usb") register_tmpfile(device_mountpoint) try: - mount(device, device_mountpoint, "") - # If using --grub-mbr then make sure we install grub in MBR instead of PBR if options.grubmbr: logging.debug("Using option --grub-mbr ...") @@ -512,10 +510,12 @@ def install_grub(device): grub_device = device set_rw(device) - set_rw(grub_device) + mount(device, device_mountpoint, "") logging.info("Installing grub as bootloader") for opt in ["", "--force"]: + set_rw(device) + set_rw(grub_device) logging.debug("grub-install --recheck %s --no-floppy --root-directory=%s %s", opt, device_mountpoint, grub_device) proc = subprocess.Popen([GRUB_INSTALL, "--recheck", opt, @@ -715,8 +715,6 @@ def mount(source, target, mount_options): logging.debug("Source %s is not a device, therefore not mounting.", source) return 0 - set_rw(source) - logging.debug("mount %s %s %s", mount_options, source, target) proc = subprocess.Popen(["mount"] + list(mount_options) + [source, target]) proc.wait() @@ -1030,6 +1028,9 @@ def copy_addons(iso_mount, target): # ipxe.lkrn handle_addon_copy('ipxe.lkrn', addons, iso_mount) + # netboot.xyz + handle_addon_copy('netboot.xyz.lkrn', addons, iso_mount) + def build_loopbackcfg(target): """Generate GRUB's loopback.cfg based on existing config files. @@ -1593,6 +1594,8 @@ def install_grml(mountpoint, device): check_for_fat(device) if not options.skipbootflag: check_boot_flag(device) + + set_rw(device) mount(device, device_mountpoint, ['-o', 'utf8,iocharset=iso8859-1']) except CriticalException as error: mount(device, device_mountpoint, "") @@ -1840,8 +1843,7 @@ def main(): if not os.path.isdir(device): if device[-1:].isdigit(): if int(device[-1:]) > 4 or device[-2:].isdigit(): - logging.critical("Fatal: installation on partition number >4 not supported. (BIOS won't support it.)") - sys.exit(1) + logging.warn("Warning: installing on partition number >4, booting *might* fail depending on your system.") # provide upgrade path handle_compat_warning(device)