Add element block-device-efi-lvm
Element block-device-efi-lvm has been added which is like block-device-efi but defines an LVM logical group in the root partition. Three logical volumes are defined in that group, mounted to /, /var, and /home. This volume layout will not meet all requirements, but this is more of an example demonstrating the capability to encourage more usage of this existing feature. This is based on the overcloud-partition-uefi element in tripleo-image-elements, and I believe this capability is too useful to have the only working example buried in a related project repo. This change also fixes the element string matching in _arg_defaults_hack, the 'vm' test was also matching against 'lvm' and 'block-device-efi-lvm' elements. Also the 'block-device-' test now properly tests for this being the prefix of the block-device element. This change also makes block-device-efi fsck-passno compliant with the documentation[1] so that / has value 1 and all other mounts are set to 2. [1] https://www.man7.org/linux/man-pages/man5/fstab.5.html Change-Id: If86a0e49186ce5a65cc0084101d31ce59a97b854 Blueprint: whole-disk-default
This commit is contained in:
parent
75ee18b01b
commit
ab8d2910c4
16
diskimage_builder/elements/block-device-efi-lvm/README.rst
Normal file
16
diskimage_builder/elements/block-device-efi-lvm/README.rst
Normal file
@ -0,0 +1,16 @@
|
||||
====================
|
||||
Block Device EFI LVM
|
||||
====================
|
||||
|
||||
This provides a block-device configuration for the ``vm`` element to
|
||||
get a disk suitable for EFI booting which uses LVM to define multiple
|
||||
volumes mounted to /, /tmp, /var, and /home.
|
||||
|
||||
Please note that the sizes of the partitions may not
|
||||
be enough for production usage, they will need to be resized properly after
|
||||
deployment depending on the available disk size.
|
||||
|
||||
Note on x86 this provides the extra `BIOS boot partition
|
||||
<https://en.wikipedia.org/wiki/BIOS_boot_partition>`__ and a EFI boot
|
||||
partition for maximum compatability.
|
||||
|
@ -0,0 +1,73 @@
|
||||
- local_loop:
|
||||
name: image0
|
||||
|
||||
- partitioning:
|
||||
base: image0
|
||||
label: gpt
|
||||
partitions:
|
||||
- name: ESP
|
||||
type: 'EF00'
|
||||
size: 550MiB
|
||||
mkfs:
|
||||
type: vfat
|
||||
mount:
|
||||
mount_point: /boot/efi
|
||||
fstab:
|
||||
options: "defaults"
|
||||
fsck-passno: 2
|
||||
- name: BSP
|
||||
type: 'EF02'
|
||||
size: 8MiB
|
||||
- name: root
|
||||
flags: [ boot ]
|
||||
size: 40G
|
||||
- lvm:
|
||||
name: lvm
|
||||
base: [ root ]
|
||||
pvs:
|
||||
- name: pv
|
||||
base: root
|
||||
options: [ "--force" ]
|
||||
vgs:
|
||||
- name: vg
|
||||
base: [ "pv" ]
|
||||
options: [ "--force" ]
|
||||
lvs:
|
||||
- name: lv_root
|
||||
base: vg
|
||||
extents: 23%VG
|
||||
- name: lv_var
|
||||
base: vg
|
||||
extents: 57%VG
|
||||
- name: lv_home
|
||||
base: vg
|
||||
extents: 20%VG
|
||||
- mkfs:
|
||||
name: fs_root
|
||||
base: lv_root
|
||||
type: xfs
|
||||
label: "img-rootfs"
|
||||
mount:
|
||||
mount_point: /
|
||||
fstab:
|
||||
options: "rw,relatime"
|
||||
fsck-passno: 1
|
||||
- mkfs:
|
||||
name: fs_var
|
||||
base: lv_var
|
||||
type: xfs
|
||||
mount:
|
||||
mount_point: /var
|
||||
fstab:
|
||||
options: "rw,relatime"
|
||||
fsck-passno: 2
|
||||
- mkfs:
|
||||
name: fs_home
|
||||
base: lv_home
|
||||
type: xfs
|
||||
mount:
|
||||
mount_point: /home
|
||||
fstab:
|
||||
options: "rw,nodev,relatime"
|
||||
fsck-passno: 2
|
||||
|
@ -0,0 +1 @@
|
||||
block-device
|
@ -0,0 +1,10 @@
|
||||
#
|
||||
# Arch gate
|
||||
#
|
||||
|
||||
if [[ "ppc64 ppc64le ppc64el" =~ "$ARCH" ]]; then
|
||||
echo "block-device-efi is not supported on Power; use block-device-gpt or block-device-mbr"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export DIB_BLOCK_DEVICE=efi
|
@ -14,7 +14,7 @@
|
||||
mount_point: /boot/efi
|
||||
fstab:
|
||||
options: "defaults"
|
||||
fsck-passno: 1
|
||||
fsck-passno: 2
|
||||
- name: BSP
|
||||
type: 'EF02'
|
||||
size: 8MiB
|
||||
|
@ -285,9 +285,9 @@ function _arg_defaults_hack() {
|
||||
local elements
|
||||
|
||||
for arg do
|
||||
if [[ "$arg" =~ "vm" ]]; then
|
||||
if [[ $arg = vm ]]; then
|
||||
vm_seen=1
|
||||
elif [[ "$arg" =~ "block-device-" ]]; then
|
||||
elif [[ $arg = block-device-* ]]; then
|
||||
blockdev_seen=1
|
||||
fi
|
||||
elements="$elements $arg"
|
||||
|
@ -0,0 +1,10 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Element block-device-efi-lvm has been added which is like block-device-efi
|
||||
but defines an LVM logical group in the root partition. Four logical
|
||||
volumes are defined in that group, mounted to /, /tmp, /var, and /home.
|
||||
|
||||
This volume layout will not meet all requirements, but this is more of an
|
||||
example demonstrating the capability to encourage more usage of this
|
||||
existing feature.
|
Loading…
Reference in New Issue
Block a user