I do not quite understand what is causing the grub.cfg to not exist. The logic behind this code: for path in [self.update_grub_command, self.grub_install_command, self.config_file, self.header_config_file]: if not os.path.isfile(path): raise SystemExit('Fatal error. Can not find %s' % path)
# Make sure config files are up to date os.system(self.update_grub_command) Is that it does not check for grub.cfg because it may not exist at the time, but is supposed to be created by update-grub, which is run immediately after the check. The first line of output you provided is not from sum, but it may be something that blocks update-grub from working. Try to investigate /boot/grub/device.map