TODOs
-----
+* support installation of new ISO[s] additionally to already existing grml ISOs on the usb device
+ -> add "old"/already existing images automatically to bootloader configuration [thx gebi]
+* write bootloader configuration snippets to boot/releases/<release>/{grub.cfg,syslinux.cfg,...}
+ -> this could simplify live dramatically especially when supporting "already existing" images [thx gebi]
+* provide simple output being between default and --quiet [thx gebi], like:
+ # grml2usb iso1 iso2 /dev/sda1
+ installing:
+ iso1.... OK
+ iso2.... FAIL (error)
+ done.
+* provide default entry of all installed ISOs on the top of the bootscreen (in grub's config)
* implement --kernel option to install specific linux26 file
* implement --initrd option to install specific initrd file
* implement --squashfs option to install specific squashfs file
@device: partition that should be formated"""
# syslinux -d boot/isolinux /dev/sdb1
+ if options.dryrun:
+ logging.info("Would execute mkfs.vfat -F 16 %s now.", device)
+ return 0
+
logging.info("Formating partition with fat16 filesystem")
logging.debug("mkfs.vfat -F 16 %s" % device)
proc = subprocess.Popen(["mkfs.vfat", "-F", "16", device])
# grub all-in-one image
allinoneimg = search_file('allinone.img', iso_mount)
if allinoneimg is None:
- logging.warn("Warning: allinone.img not found - can not install it")
+ logging.warn("Warning: allinone.img not found - can not install it...")
+ logging.warn(" -> that's fine if you don't need it - or are you using grml-small?")
else:
logging.debug("cp %s %s" % (allinoneimg, addons + '/allinone.img'))
proc = subprocess.Popen(["cp", allinoneimg, addons + 'allinone.img'])
# bsd imag
bsdimg = search_file('bsd4grml', iso_mount)
if bsdimg is None:
- logging.warn("Warning: bsd4grml not found - can not install it")
+ logging.warn("Warning: bsd4grml not found - can not install it...")
+ logging.warn(" -> that's fine if you don't need it - or are you using grml-small?")
else:
logging.debug("cp -a %s %s" % (bsdimg, addons + '/'))
proc = subprocess.Popen(["cp", "-a", bsdimg, addons + '/'])
# freedos image
balderimg = search_file('balder10.imz', iso_mount)
if balderimg is None:
- logging.warn("Warning: balder10.imz not found - can not install it")
+ logging.warn("Warning: balder10.imz not found - can not install it...")
+ logging.warn(" -> that's fine if you don't need it - or are you using grml-small?")
else:
logging.debug("cp %s %s" % (balderimg, addons + '/balder10.imz'))
proc = subprocess.Popen(["cp", balderimg, addons + 'balder10.imz'])
# memdisk image
memdiskimg = search_file('memdisk', iso_mount)
if memdiskimg is None:
- logging.warn("Warning: memdisk not found - can not install it")
+ logging.warn("Warning: memdisk not found - can not install it...")
+ logging.warn(" -> that's fine if you don't need it - or are you using grml-small?")
else:
logging.debug("cp %s %s" % (memdiskimg, addons + '/memdisk'))
proc = subprocess.Popen(["cp", memdiskimg, addons + 'memdisk'])
# memtest86+ image
memtestimg = search_file('memtest', iso_mount)
if memtestimg is None:
- logging.warn("Warning: memtest not found - can not install it")
+ logging.warn("Warning: memtest not found - can not install it...")
+ logging.warn(" -> that's fine if you don't need it - or are you using grml-small?")
else:
logging.debug("cp %s %s" % (memtestimg, addons + '/memtest'))
proc = subprocess.Popen(["cp", memtestimg, addons + 'memtest'])
# * catch "install: .. No space left on device" & CO
if options.dryrun:
- logging.info("Would copy files to %s", iso_mount)
return 0
elif not options.bootloaderonly:
logging.info("Copying files. This might take a while....")
@device: device where the MBR should be installed to"""
+ if options.dryrun:
+ logging.info("Would install MBR")
+ return 0
+
# make sure we have syslinux available
if not options.skipmbr:
- if not which("syslinux") and not options.copyonly and not options.dryrun:
+ 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)