projects
/
grml2usb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Skip check for bootflag if a GPT header is present
[grml2usb.git]
/
grml2usb
diff --git
a/grml2usb
b/grml2usb
index
0730f7b
..
376f6d5
100755
(executable)
--- a/
grml2usb
+++ b/
grml2usb
@@
-170,7
+170,7
@@
def cleanup():
os.unlink(tmpfile)
# ignore: RuntimeError: Set changed size during iteration
except RuntimeError:
os.unlink(tmpfile)
# ignore: RuntimeError: Set changed size during iteration
except RuntimeError:
- logging.debug('caught ex
pec
tion RuntimeError, ignoring')
+ logging.debug('caught ex
cep
tion RuntimeError, ignoring')
def register_tmpfile(path):
def register_tmpfile(path):
@@
-311,16
+311,21
@@
def search_file(filename, search_path='/bin' + os.pathsep + '/usr/bin', lst_retu
def check_uid_root():
"""Check for root permissions"""
if not os.geteuid() == 0:
def check_uid_root():
"""Check for root permissions"""
if not os.geteuid() == 0:
-
sys.exit("Error:
please run this script with uid 0 (root).")
+
raise CriticalException("
please run this script with uid 0 (root).")
def check_boot_flag(device):
boot_dev, x = get_device_from_partition(device)
with open(boot_dev, 'r') as image:
def check_boot_flag(device):
boot_dev, x = get_device_from_partition(device)
with open(boot_dev, 'r') as image:
- data = image.read(5
12
)
+ data = image.read(5
20
)
bootcode = data[440:]
bootcode = data[440:]
- if bootcode[6] == '\x80':
+ gpt_header = "\x55\xaa\x45\x46\x49\x20\x50\x41\x52\x54" # original GPT header
+ gpt_data = bootcode[70:80]
+
+ if gpt_data == gpt_header:
+ logging.info("GPT detected, skipping bootflag check")
+ elif bootcode[6] == '\x80':
logging.debug("bootflag is enabled")
else:
logging.debug("bootflag is NOT enabled")
logging.debug("bootflag is enabled")
else:
logging.debug("bootflag is NOT enabled")
@@
-538,11
+543,12
@@
def install_mbr(mbrtemplate, device, partition, ismirbsdmbr=True):
logging.info("Installing default MBR")
if not os.path.isfile(mbrtemplate):
logging.info("Installing default MBR")
if not os.path.isfile(mbrtemplate):
- logging.critical("Error: %s can not be read.", mbrtemplate)
- raise CriticalException("Error installing MBR (either try --syslinux-mbr or install missing file \"%s\"?)" % mbrtemplate)
+ logging.error('Error installing MBR (either try --syslinux-mbr or '
+ 'install missing file "%s"?)', mbrtemplate)
+ raise CriticalException("%s can not be read." % mbrtemplate)
if partition is not None and ((partition < 0) or (partition > 3)):
if partition is not None and ((partition < 0) or (partition > 3)):
- logging.warn("Cannot activate partition %d"
%
partition)
+ logging.warn("Cannot activate partition %d"
,
partition)
partition = None
if ismirbsdmbr:
partition = None
if ismirbsdmbr:
@@
-663,7
+669,6
@@
def unmount(target, unmount_options):
proc = subprocess.Popen(["umount"] + list(unmount_options) + [target])
proc.wait()
if proc.returncode != 0:
proc = subprocess.Popen(["umount"] + list(unmount_options) + [target])
proc.wait()
if proc.returncode != 0:
- logging.critical("Error executing umount")
raise Exception("Error executing umount")
else:
logging.debug("unregister_mountpoint(%s)", target)
raise Exception("Error executing umount")
else:
logging.debug("unregister_mountpoint(%s)", target)
@@
-795,9
+800,9
@@
def copy_system_files(grml_flavour, iso_mount, target):
squashfs = search_file(grml_flavour + '.squashfs', iso_mount)
if squashfs is None:
squashfs = search_file(grml_flavour + '.squashfs', iso_mount)
if squashfs is None:
- logging.
critical("Fatal: squashfs file not found"
- ", please check that your iso is not corrupt")
-
raise CriticalException("error locating squashfs file
")
+ logging.
error("error locating squashfs file")
+ raise CriticalException("squashfs file not found"
+
", please check that your iso is not corrupt
")
else:
squashfs_target = target + '/live/' + grml_flavour + '/'
execute(mkdir, squashfs_target)
else:
squashfs_target = target + '/live/' + grml_flavour + '/'
execute(mkdir, squashfs_target)
@@
-808,8
+813,8
@@
def copy_system_files(grml_flavour, iso_mount, target):
if filesystem_module:
break
if filesystem_module is None:
if filesystem_module:
break
if filesystem_module is None:
- logging.
critical("Fatal: filesystem.module not found
")
- raise CriticalException("
error locating filesystem.module file
")
+ logging.
error("error locating filesystem.module file
")
+ raise CriticalException("
filesystem.module not found
")
else:
exec_rsync(filesystem_module, squashfs_target + 'filesystem.module')
else:
exec_rsync(filesystem_module, squashfs_target + 'filesystem.module')
@@
-823,8
+828,8
@@
def copy_system_files(grml_flavour, iso_mount, target):
kernel = search_file('linux26', iso_mount)
if kernel is None:
kernel = search_file('linux26', iso_mount)
if kernel is None:
- logging.
critical("Fatal: kernel not found
")
- raise CriticalException("
error locating kernel file
")
+ logging.
error("error locating kernel file
")
+ raise CriticalException("
Kernel not found
")
source = os.path.dirname(kernel) + '/'
dest = target + '/' + os.path.dirname(kernel).replace(iso_mount, '') + '/'
source = os.path.dirname(kernel) + '/'
dest = target + '/' + os.path.dirname(kernel).replace(iso_mount, '') + '/'
@@
-1047,10
+1052,10
@@
def copy_bootloader_files(iso_mount, target, grml_flavour):
(source_dir, defaults_file) = get_defaults_file(iso_mount, grml_flavour, "grml.cfg")
if not source_dir:
(source_dir, defaults_file) = get_defaults_file(iso_mount, grml_flavour, "grml.cfg")
if not source_dir:
- logging.critical("Fatal: file default.cfg could not be found.")
- logging.critical("Note: this grml2usb version requires an ISO generated by grml-live >=0.9.24 ...")
- logging.critical(" ... either use grml releases >=2009.10 or switch to an older grml2usb version.")
-
raise CriticalException("file default.cfg could not be found
.")
+ raise CriticalException(
+ "file default.cfg could not be found.\n"
+ "Note: this grml2usb version requires an ISO generated by grml-live >=0.9.24 ...\n"
+
" ... either use grml releases >=2009.10 or switch to an older grml2usb version
.")
if not os.path.exists(iso_mount + '/boot/grub/footer.cfg'):
logging.warning("Warning: Grml releases older than 2011.12 support only one flavour in grub.")
if not os.path.exists(iso_mount + '/boot/grub/footer.cfg'):
logging.warning("Warning: Grml releases older than 2011.12 support only one flavour in grub.")
@@
-1164,7
+1169,6
@@
def identify_grml_flavour(mountpath):
except TypeError, e:
raise
except Exception, e:
except TypeError, e:
raise
except Exception, e:
- logging.critical("Unexpected error: %s", e)
raise
finally:
if tmpfile:
raise
finally:
if tmpfile:
@@
-1489,8
+1493,8
@@
def install(image, device):
try:
remove_mountpoint(iso_mountpoint)
except CriticalException, error:
try:
remove_mountpoint(iso_mountpoint)
except CriticalException, error:
- logging.critical("Fatal: %s", error)
cleanup()
cleanup()
+ raise
def install_grml(mountpoint, device):
def install_grml(mountpoint, device):
@@
-1512,14
+1516,9
@@
def install_grml(mountpoint, device):
check_boot_flag(device)
mount(device, device_mountpoint, ['-o', 'utf8,iocharset=iso8859-1'])
except VerifyException, error:
check_boot_flag(device)
mount(device, device_mountpoint, ['-o', 'utf8,iocharset=iso8859-1'])
except VerifyException, error:
- logging.critical("Fatal: %s", error)
raise
except CriticalException, error:
raise
except CriticalException, error:
- try:
- mount(device, device_mountpoint, "")
- except CriticalException, error:
- logging.critical("Fatal: %s", error)
- raise
+ mount(device, device_mountpoint, "")
try:
grml_flavours = identify_grml_flavour(mountpoint)
for flavour in set(grml_flavours):
try:
grml_flavours = identify_grml_flavour(mountpoint)
for flavour in set(grml_flavours):
@@
-1543,8
+1542,8
@@
def remove_mountpoint(mountpoint):
os.rmdir(mountpoint)
unregister_tmpfile(mountpoint)
except CriticalException, error:
os.rmdir(mountpoint)
unregister_tmpfile(mountpoint)
except CriticalException, error:
- logging.critical("Fatal: %s", error)
cleanup()
cleanup()
+ raise
def handle_mbr(device):
def handle_mbr(device):
@@
-1650,14
+1649,13
@@
def handle_logging():
if options.verbose and options.quiet:
parser.error("please use either verbose (--verbose) or quiet (--quiet) option")
if options.verbose and options.quiet:
parser.error("please use either verbose (--verbose) or quiet (--quiet) option")
+ FORMAT = "%(message)s"
if options.verbose:
if options.verbose:
- FORMAT = "
Debug:
%(asctime)-15s %(message)s"
+ FORMAT = "%(asctime)-15s %(message)s"
logging.basicConfig(level=logging.DEBUG, format=FORMAT)
elif options.quiet:
logging.basicConfig(level=logging.DEBUG, format=FORMAT)
elif options.quiet:
- FORMAT = "Critical: %(message)s"
logging.basicConfig(level=logging.CRITICAL, format=FORMAT)
else:
logging.basicConfig(level=logging.CRITICAL, format=FORMAT)
else:
- FORMAT = "%(message)s"
logging.basicConfig(level=logging.INFO, format=FORMAT)
logging.basicConfig(level=logging.INFO, format=FORMAT)
@@
-1681,8
+1679,7
@@
def check_options(opts):
@opts option dict from OptionParser
"""
if opts.grubmbr and not opts.grub:
@opts option dict from OptionParser
"""
if opts.grubmbr and not opts.grub:
- logging.critical("Error: --grub-mbr requires --grub option.")
- sys.exit(1)
+ raise CriticalException("--grub-mbr requires --grub option.")
def check_programs():
def check_programs():
@@
-1782,7
+1779,7
@@
def main():
logging.info("Finished execution of grml2usb (%s). Have fun with your grml system.", PROG_VERSION)
except Exception, error:
logging.info("Finished execution of grml2usb (%s). Have fun with your grml system.", PROG_VERSION)
except Exception, error:
- # ignore error, error message has already been registered with logging
+ logging.critical("Fatal: %s", str(error))
sys.exit(1)
sys.exit(1)