aboutsummaryrefslogtreecommitdiffstats
path: root/patches/fuel-agent/multiarch-efi
diff options
context:
space:
mode:
Diffstat (limited to 'patches/fuel-agent/multiarch-efi')
-rw-r--r--patches/fuel-agent/multiarch-efi/0001-Add-esp-partition-flag.patch48
-rw-r--r--patches/fuel-agent/multiarch-efi/0002-Add-fs-for-efi-partition.patch66
2 files changed, 114 insertions, 0 deletions
diff --git a/patches/fuel-agent/multiarch-efi/0001-Add-esp-partition-flag.patch b/patches/fuel-agent/multiarch-efi/0001-Add-esp-partition-flag.patch
new file mode 100644
index 00000000..1b067b10
--- /dev/null
+++ b/patches/fuel-agent/multiarch-efi/0001-Add-esp-partition-flag.patch
@@ -0,0 +1,48 @@
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Tue, 8 Mar 2016 16:29:39 +0100
+Subject: [PATCH] Add <esp> partition flag.
+
+Parted flag <esp> (see [1]) will mark EFI system partition, allowing us
+to properly format and mount it during do_partitioning deployment phase.
+
+[1] https://www.gnu.org/software/parted/manual/html_node/set.html
+---
+ fuel_agent/drivers/nailgun.py | 2 +-
+ fuel_agent/utils/partition.py | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py
+index ef0e79a..94280e8 100644
+--- a/fuel_agent/drivers/nailgun.py
++++ b/fuel_agent/drivers/nailgun.py
+@@ -354,7 +354,7 @@ class Nailgun(BaseDataDriver):
+ # uefi partition (for future use)
+ LOG.debug('Adding UEFI partition on disk %s: size=200' %
+ disk['name'])
+- parted.add_partition(size=200)
++ parted.add_partition(size=200, flags=['esp'])
+
+ LOG.debug('Looping over all volumes on disk %s' % disk['name'])
+ for volume in disk['volumes']:
+diff --git a/fuel_agent/utils/partition.py b/fuel_agent/utils/partition.py
+index f7126b1..b811511 100644
+--- a/fuel_agent/utils/partition.py
++++ b/fuel_agent/utils/partition.py
+@@ -94,7 +94,7 @@ def set_partition_flag(dev, num, flag, state='on'):
+ :param dev: A device file, e.g. /dev/sda.
+ :param num: Partition number
+ :param flag: Flag name. Must be one of 'bios_grub', 'legacy_boot',
+- 'boot', 'raid', 'lvm'
++ 'boot', 'raid', 'lvm', 'esp'
+ :param state: Desiable flag state. 'on' or 'off'. Default is 'on'.
+
+ :returns: None
+@@ -104,7 +104,7 @@ def set_partition_flag(dev, num, flag, state='on'):
+ # parted supports more flags but we are interested in
+ # setting only this subset of them.
+ # not all of these flags are compatible with one another.
+- if flag not in ('bios_grub', 'legacy_boot', 'boot', 'raid', 'lvm'):
++ if flag not in ('bios_grub', 'legacy_boot', 'boot', 'raid', 'lvm', 'esp'):
+ raise errors.WrongPartitionSchemeError(
+ 'Unsupported partition flag: %s' % flag)
+ if state not in ('on', 'off'):
diff --git a/patches/fuel-agent/multiarch-efi/0002-Add-fs-for-efi-partition.patch b/patches/fuel-agent/multiarch-efi/0002-Add-fs-for-efi-partition.patch
new file mode 100644
index 00000000..c18c7093
--- /dev/null
+++ b/patches/fuel-agent/multiarch-efi/0002-Add-fs-for-efi-partition.patch
@@ -0,0 +1,66 @@
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
+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,6 +40,7 @@ Depends: bzip2,
+ qemu-user-static,
+ binfmt-support,
+ dmidecode,
++ dosfstools,
+ ethtool,
+ gdisk,
+ genisoimage,
+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