Aqui está a falha ( referência ):
command = [bcdedit, '/create', '/d', '%s' % self.info.distro.name, '/application', 'bootsector']
id = run_command(command)
id = id[id.index('{'):id.index('}')+1]
Então, basicamente, ele está executando o comando:
bcdedit /create /d Ubuntu /application bootsector
que deve adicionar uma entrada ao Gerenciador de Inicialização do Windows (BCD Store) para o Ubuntu e retornar uma resposta que contenha o GUID para a entrada, por exemplo.
{2e05fa55-5f6e-11e2-a7cc-95d88d2d9736}
Mas parece que o comando falha. A terceira linha é a linha de saída desse erro ValueError: substring not found
.
Então comecei explorando por que você não pode adicionar uma entrada ao armazenamento BCD.