mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-25 02:52:07 +00:00
Handle Ubuntu hardcoded grub cfg
Ubuntu hardcodes grub.cfg to another location. Make a stub file as a flag to guide osimage to know where grub.cfg goes.
This commit is contained in:
parent
610bc793b7
commit
22cb2bdc40
@ -2,6 +2,7 @@
|
||||
import eventlet
|
||||
import eventlet.green.select as select
|
||||
import eventlet.green.subprocess as subprocess
|
||||
from fnmatch import fnmatch
|
||||
import glob
|
||||
import logging
|
||||
logging.getLogger('libarchive').addHandler(logging.NullHandler())
|
||||
@ -153,6 +154,14 @@ def update_boot_esxi(profiledir, profile, label):
|
||||
'{0}/boot.img'.format(profiledir), profname], preexec_fn=relax_umask)
|
||||
|
||||
|
||||
def find_glob(loc, fileglob):
|
||||
for cdir, _, fs in os.walk(loc):
|
||||
for f in fs:
|
||||
if fnmatch(f, fileglob):
|
||||
return os.path.join(cdir, f)
|
||||
return None
|
||||
|
||||
|
||||
def update_boot_linux(profiledir, profile, label):
|
||||
profname = os.path.basename(profiledir)
|
||||
kernelargs = profile.get('kernelargs', '')
|
||||
@ -170,7 +179,11 @@ def update_boot_linux(profiledir, profile, label):
|
||||
for initramfs in initrds:
|
||||
grubcfg += " /initramfs/{0}".format(initramfs)
|
||||
grubcfg += "\n}\n"
|
||||
with open(profiledir + '/boot/efi/boot/grub.cfg', 'w') as grubout:
|
||||
# well need to honor grubprefix path if different
|
||||
grubcfgpath = find_glob(profiledir + '/boot', 'grub.cfg')
|
||||
if not grubcfgpath:
|
||||
grubcfgpath = profiledir + '/boot/efi/boot/grub.cfg'
|
||||
with open(grubcfgpath, 'w') as grubout:
|
||||
grubout.write(grubcfg)
|
||||
ipxeargs = kernelargs
|
||||
for initramfs in initrds:
|
||||
|
@ -1378,6 +1378,10 @@ def gather_bootloader(outdir, rootpath='/'):
|
||||
grubs = glob.glob(grubs)
|
||||
if len(grubs) == 1:
|
||||
grubbin = grubs[0]
|
||||
if 'ubuntu' in grubbin: # we needd to store a hint that this grub has a different hard coded prefix
|
||||
mkdirp(os.path.join(outdir, 'boot/EFI/ubuntu/'))
|
||||
with open(os.path.join(outdir, 'boot/EFI/ubuntu/grub.cfg'), 'w') as wo:
|
||||
wo.write('')
|
||||
shutil.copyfile(grubbin, os.path.join(outdir, 'boot/efi/boot/grubx64.efi'))
|
||||
shutil.copyfile(grubbin, os.path.join(outdir, 'boot/efi/boot/grub.efi'))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user