refs #1337 add ogGrubInstallMbr, fix bugs
parent
87357f4f8e
commit
6a02b6f4f1
|
@ -474,7 +474,8 @@ def ogGrubInstallMbr (disk, par, checkos='FALSE', kernelparam=''):
|
|||
|
||||
if InventoryLib.ogIsEfiActive(): # Movemos el grubx64.efi
|
||||
for b in (glob.glob (f'{efisecondstage}/EFI/{efisubdir}/EFI/BOOT/*')):
|
||||
os.rename (f'{efisecondstage}/EFI/{efisubdir}/EFI/BOOT/{b}', f'{efisecondstage}/EFI/{efisubdir}/Boot/{b}')
|
||||
bn = os.path.basename (b)
|
||||
os.rename (f'{efisecondstage}/EFI/{efisubdir}/EFI/BOOT/{bn}', f'{efisecondstage}/EFI/{efisubdir}/Boot/{bn}')
|
||||
shutil.rmtree (f'{efisecondstage}/EFI/{efisubdir}/EFI')
|
||||
shutil.copy2 ('/usr/lib/shim/shimx64.efi.signed', f'{efisecondstage}/EFI/{efisubdir}/Boot/shimx64.efi')
|
||||
# Nombre OpenGnsys para cargador
|
||||
|
@ -484,7 +485,7 @@ def ogGrubInstallMbr (disk, par, checkos='FALSE', kernelparam=''):
|
|||
UEFILib.ogNvramAddEntry ('grub', '/EFI/grub/Boot/shimx64.efi')
|
||||
grubentry = UEFILib.ogNvramList()
|
||||
for l in grubentry.splitlines():
|
||||
words = l.split (maxsplit=1)
|
||||
words = l.split()
|
||||
if len(words) < 2: continue
|
||||
if 'grub' == words[1]:
|
||||
grubentry = words[0]
|
||||
|
|
|
@ -804,6 +804,7 @@ def ogGetPartitionActive (disk):
|
|||
def ogGetPartitionId (disk, par):
|
||||
DISK = ogDiskToDev (disk)
|
||||
if DISK is None: return
|
||||
fsid = None
|
||||
|
||||
pttype = ogGetPartitionTableType (disk)
|
||||
if 'GPT' == pttype:
|
||||
|
@ -814,7 +815,7 @@ def ogGetPartitionId (disk, par):
|
|||
if idx == par:
|
||||
fsid = code
|
||||
break
|
||||
if fsid == '8300' and f'{disk} {par}' == ogFindCache():
|
||||
if fsid == '8300' and f'{disk} {par}' == CacheLib.ogFindCache():
|
||||
fsid = 'CA00'
|
||||
elif 'MSDOS' == pttype:
|
||||
fsid = subprocess.run (['sfdisk', '--part-type', DISK, par], capture_output=True, text=True).stdout.strip()
|
||||
|
|
|
@ -307,9 +307,9 @@ def ogFormatFs (disk, par, fs=None, label=None):
|
|||
subprocess.run (['umount', PART])
|
||||
try:
|
||||
if input:
|
||||
errcode = subprocess.run ([prog, params, PART])
|
||||
errcode = subprocess.run ([prog] + params.split (' ') + [PART])
|
||||
else:
|
||||
errcode = subprocess.run ([prog, params, PART], input=input, text=True)
|
||||
errcode = subprocess.run ([prog] + params.split (' ') + [PART], input=input, text=True)
|
||||
except FileNotFoundError:
|
||||
SystemLib.ogRaiseError ([], ogGlobals.OG_ERR_NOTEXEC, prog)
|
||||
errcode = ogGlobals.OG_ERR_NOTEXEC
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
from SystemLib import ogHelp
|
||||
from BootLib import ogGrubInstallMbr
|
||||
|
||||
parser = argparse.ArgumentParser (add_help=False)
|
||||
parser.add_argument ('disk')
|
||||
parser.add_argument ('par')
|
||||
parser.add_argument ('checkos', nargs='?', default='FALSE')
|
||||
parser.add_argument ('kernelparam', nargs='?', default='')
|
||||
|
||||
if 2 == len (sys.argv) and 'help' == sys.argv[1]:
|
||||
#parser.print_help() sale en inglés aunque la locale indique otra cosa
|
||||
ogHelp ('ogGrubInstallMbr', 'ogGrubInstallMbr int_ndiskSecondStage int_partitionSecondStage bolean_Configure_2ndStage "param param"', ['ogGrubInstallMbr 1 1 FALSE', 'ogGrubInstallMbr 1 1 TRUE "nomodeset irqpoll pci=noacpi quiet splash"'])
|
||||
sys.exit (0)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
ret = ogGrubInstallMbr (args.disk, args.par, args.checkos, args.kernelparam)
|
||||
if ret is not None:
|
||||
if ret == True: sys.exit (0)
|
||||
elif ret == False: sys.exit (1)
|
||||
else: print (ret)
|
Loading…
Reference in New Issue