X-Git-Url: https://git.grml.org/?p=grml2usb.git;a=blobdiff_plain;f=grml2usb;h=7cc07c37523ca107d852a15bccefc7d49cd348d5;hp=cff496c1521c09d6110a92c6315b9fedc26ded68;hb=8171e23c2e7ed04157242cf88e8664f4a6ad8af6;hpb=89d589ced1127c2494b78f437ece67b3305af5b3 diff --git a/grml2usb b/grml2usb index cff496c..7cc07c3 100755 --- a/grml2usb +++ b/grml2usb @@ -234,11 +234,10 @@ def mkfs_fat16(device): raise CriticalException("error executing mkfs.vfat") -def generate_main_grub2_config(grml_flavour, install_partition, bootoptions): +def generate_main_grub2_config(grml_flavour, bootoptions): """Generate grub2 configuration for use via grub.cfg @grml_flavour: name of grml flavour the configuration should be generated for - @install_partition: partition number for use in (hd0,X) @bootoptions: additional bootoptions that should be used by default""" local_datestamp = DATESTAMP @@ -250,7 +249,7 @@ set timeout=5 insmod fat -if font (hd0,%(install_partition)s)/boot/grub/ascii.pff ; then +if font /boot/grub/ascii.pff ; then insmod png set gfxmode=640x480 insmod gfxterm @@ -258,7 +257,7 @@ if font (hd0,%(install_partition)s)/boot/grub/ascii.pff ; then terminal gfxterm fi -if background_image (hd0,%(install_partition)s)/boot/grub/grml.png ; then +if background_image /boot/grub/grml.png ; then set color_normal=black/black set color_highlight=red/black else @@ -267,30 +266,25 @@ else fi menuentry "%(grml_flavour)s (default)" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off vga=791 quiet boot=live nomce live-media-path=/live/%(grml_flavour)s/ %(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } menuentry "Memory test (memtest86+)" { - set root=(hd0,%(install_partition)s) linux /boot/addons/memtest } menuentry "Grub - all in one image" { - set root=(hd0,%(install_partition)s) linux /boot/addons/memdisk initrd /boot/addons/allinone.img } menuentry "FreeDOS" { - set root=(hd0,%(install_partition)s) linux /boot/addons/memdisk initrd /boot/addons/balder10.imz } menuentry "MirOS BSD" { - set root=(hd0,%(install_partition)s) multiboot /boot/addons/bsd4grml/ldbsd.com } @@ -300,14 +294,13 @@ menuentry "Boot OS of first partition on first disk" { } """ % {'grml_flavour': grml_flavour, 'local_datestamp': local_datestamp, - 'bootoptions': bootoptions, 'install_partition': install_partition } ) + 'bootoptions': bootoptions } ) -def generate_flavour_specific_grub2_config(grml_flavour, install_partition, bootoptions): +def generate_flavour_specific_grub2_config(grml_flavour, bootoptions): """Generate grub2 configuration for use via grub.cfg @grml_flavour: name of grml flavour the configuration should be generated for - @install_partition: partition number for use in (hd0,X) @bootoptions: additional bootoptions that should be used by default""" local_datestamp = DATESTAMP @@ -315,69 +308,60 @@ def generate_flavour_specific_grub2_config(grml_flavour, install_partition, boot return("""\ ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s] menuentry "%(grml_flavour)s" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ %(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s] menuentry "%(grml_flavour)s-persistent" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet persistent live-media-path=/live/%(grml_flavour)s/ %(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s] menuentry "%(grml_flavour)s2ram" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ toram=%(grml_flavour)s.squashfs %(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s] menuentry "%(grml_flavour)s-debug" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ debug boot=live initcall_debug%(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s] menuentry "%(grml_flavour)s-x" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ startx=wm-ng %(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s] menuentry "%(grml_flavour)s-nofb" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ vga=normal video=ofonly %(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s] menuentry "%(grml_flavour)s-failsafe" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ vga=normal boot=live noautoconfig atapicd noapic noacpi acpi=off nomodules nofirewire noudev nousb nohotplug noapm nopcmcia nosmp maxcpus=0 noscsi noagp nodma ide=nodma noswap nofstab nosound nogpm nosyslog nodhcp nocpu nodisc nomodem xmodule=vesa noraid nolvm noresume selinux=0 edd=off %(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s] menuentry "%(grml_flavour)s-forensic" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce vga=791 quiet live-media-path=/live/%(grml_flavour)s/ nofstab noraid nolvm noautoconfig noswap raid=noautodetect forensic readonly %(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } ## flavour specific configuration for %(grml_flavour)s [grml2usb for %(grml_flavour)s: %(local_datestamp)s] menuentry "%(grml_flavour)s-serial" { - set root=(hd0,%(install_partition)s) linux /boot/release/%(grml_flavour)s/linux26 apm=power-off boot=live nomce quiet live-media-path=/live/%(grml_flavour)s/ vga=normal video=vesafb:off console=tty1 console=ttyS0,9600n8 %(bootoptions)s initrd /boot/release/%(grml_flavour)s/initrd.gz } """ % {'grml_flavour': grml_flavour, 'local_datestamp': local_datestamp, - 'bootoptions': bootoptions, 'install_partition': install_partition } ) + 'bootoptions': bootoptions } ) def generate_flavour_specific_grub1_config(grml_flavour, install_partition, bootoptions): @@ -883,7 +867,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)) @@ -1211,14 +1195,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 @@ -1299,11 +1283,10 @@ def handle_grub1_config(grml_flavour, install_partition, grub_target, bootopt): grub1_config_file.close() -def handle_grub2_config(grml_flavour, install_partition, grub_target, bootopt): +def handle_grub2_config(grml_flavour, grub_target, bootopt): """Main handler for generating grub2 configuration @grml_flavour: name of grml flavour the configuration should be generated for - @install_partition: partition number for use in (hd0,X) @grub_target: path of grub's configuration files @bootoptions: additional bootoptions that should be used by default""" @@ -1322,13 +1305,13 @@ def handle_grub2_config(grml_flavour, install_partition, grub_target, bootopt): grub2_config_file = open(grub2_cfg, 'w') GRML_DEFAULT = grml_flavour grub_flavour_is_default = True - grub2_config_file.write(generate_main_grub2_config(grml_flavour, install_partition, bootopt)) + grub2_config_file.write(generate_main_grub2_config(grml_flavour, bootopt)) grub2_config_file.close() else: grub2_config_file = open(grub2_cfg, 'w') GRML_DEFAULT = grml_flavour grub_flavour_is_default = True - grub2_config_file.write(generate_main_grub2_config(grml_flavour, install_partition, bootopt)) + grub2_config_file.write(generate_main_grub2_config(grml_flavour, bootopt)) grub2_config_file.close() # install flavour specific configuration only *once* as well @@ -1345,7 +1328,7 @@ def handle_grub2_config(grml_flavour, install_partition, grub_target, bootopt): # display only if the grml flavour isn't the default if not grub_flavour_is_default: GRML_FLAVOURS.add(grml_flavour) - grub2_config_file.write(generate_flavour_specific_grub2_config(grml_flavour, install_partition, bootopt)) + grub2_config_file.write(generate_flavour_specific_grub2_config(grml_flavour, bootopt)) grub2_config_file.close() @@ -1361,12 +1344,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 - install_grub2_partition = device[-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: @@ -1375,9 +1359,10 @@ 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, install_grub2_partition, grub_target, bootopt) + handle_grub2_config(grml_flavour, grub_target, bootopt) def handle_syslinux_config(grml_flavour, target): @@ -1475,7 +1460,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: @@ -1532,7 +1517,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 @@ -1591,7 +1576,7 @@ def handle_mbr(device): 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) @@ -1645,7 +1630,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":