:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Copyright (c) 2017 Enea AB, Cavium and others. : : All rights reserved. This program and the accompanying materials : are made available under the terms of the Apache License, Version 2.0 : which accompanies this distribution, and is available at : http://www.apache.org/licenses/LICENSE-2.0 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: From: Stanislaw Kardach Date: Tue, 8 Mar 2016 21:08:55 +0100 Subject: [PATCH] Add fs for efi partition --- debian/control | 1 + fuel_agent/drivers/nailgun.py | 13 ++++++++++--- specs/fuel-agent.spec | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/debian/control b/debian/control index e843980..c763ab9 100644 --- a/debian/control +++ b/debian/control @@ -40,5 +40,6 @@ Depends: bzip2, qemu-user-static, binfmt-support, dmidecode, + dosfstools, ethtool, gdisk, diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py index 94280e8..1463f22 100644 --- a/fuel_agent/drivers/nailgun.py +++ b/fuel_agent/drivers/nailgun.py @@ -82,6 +82,9 @@ class Nailgun(BaseDataDriver): # was already allocated on first matching volume # or not self._boot_partition_done = False + # this var states whether ESP partition was already + # allocated on the first matching volume or not + self._esp_partition_done = False # this var is used as a flag that /boot fs # has already been added. we need this to # get rid of md over all disks for /boot partition. @@ -351,10 +354,14 @@ class Nailgun(BaseDataDriver): LOG.debug('Adding bios_grub partition on disk %s: size=24' % disk['name']) parted.add_partition(size=24, flags=['bios_grub']) - # uefi partition (for future use) - LOG.debug('Adding UEFI partition on disk %s: size=200' % + # uefi partition - added only once. + if self._is_boot_disk(disk) and not self._esp_partition_done: + LOG.debug('Adding UEFI partition on disk %s: size=200' % disk['name']) - parted.add_partition(size=200, flags=['esp']) + prt = parted.add_partition(size=200, flags=['esp']) + partition_scheme.add_fs(device=prt.name, mount='/boot/efi', + fs_type='vfat') + self._esp_partition_done = True LOG.debug('Looping over all volumes on disk %s' % disk['name']) for volume in disk['volumes']: diff --git a/specs/fuel-agent.spec b/specs/fuel-agent.spec index 18af4b9..8604e57 100644 --- a/specs/fuel-agent.spec +++ b/specs/fuel-agent.spec @@ -50,6 +50,7 @@ Requires: xfsprogs Requires: pciutils Requires: ethtool Requires: debootstrap +Requires: dosfstools Requires: dpkg Requires: qemu-user-static Requires: xz