Merge "Add element block-device-efi-lvm"

This commit is contained in:
Zuul 2021-07-08 01:08:26 +00:00 committed by Gerrit Code Review
commit d286f64a76
7 changed files with 113 additions and 3 deletions

View 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.

View File

@ -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

View File

@ -0,0 +1 @@
block-device

View File

@ -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

View File

@ -14,7 +14,7 @@
mount_point: /boot/efi mount_point: /boot/efi
fstab: fstab:
options: "defaults" options: "defaults"
fsck-passno: 1 fsck-passno: 2
- name: BSP - name: BSP
type: 'EF02' type: 'EF02'
size: 8MiB size: 8MiB

View File

@ -285,9 +285,9 @@ function _arg_defaults_hack() {
local elements local elements
for arg do for arg do
if [[ "$arg" =~ "vm" ]]; then if [[ $arg = vm ]]; then
vm_seen=1 vm_seen=1
elif [[ "$arg" =~ "block-device-" ]]; then elif [[ $arg = block-device-* ]]; then
blockdev_seen=1 blockdev_seen=1
fi fi
elements="$elements $arg" elements="$elements $arg"

View File

@ -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.