diff --git a/stages/org.osbuild.mkfs.btrfs b/stages/org.osbuild.mkfs.btrfs index dd2cc9dd..c96129e8 100755 --- a/stages/org.osbuild.mkfs.btrfs +++ b/stages/org.osbuild.mkfs.btrfs @@ -37,6 +37,11 @@ SCHEMA_2 = r""" "description": "Label for the file system", "type": "string", "maxLength": 256 + }, + "metadata": { + "description": "Profile for the metadata block groups", + "type": "string", + "enum": ["single", "dup"] } } } @@ -48,11 +53,15 @@ def main(devices, options): uuid = options["uuid"] label = options.get("label") + metadata = options.get("metadata") opts = [] if label: opts = ["-L", label] + if metadata: + opts += ["-m", metadata] + subprocess.run(["mkfs.btrfs", "-U", uuid] + opts + [device], encoding='utf8', check=True) diff --git a/test/data/manifests/fedora-boot-btrfs.json b/test/data/manifests/fedora-boot-btrfs.json index ea8406ed..befdf6f7 100644 --- a/test/data/manifests/fedora-boot-btrfs.json +++ b/test/data/manifests/fedora-boot-btrfs.json @@ -1105,7 +1105,8 @@ "type": "org.osbuild.mkfs.btrfs", "options": { "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75", - "label": "root" + "label": "root", + "metadata": "dup" }, "devices": { "device": { diff --git a/test/data/manifests/fedora-boot-btrfs.mpp.yaml b/test/data/manifests/fedora-boot-btrfs.mpp.yaml index 2b612b56..74ca41d2 100644 --- a/test/data/manifests/fedora-boot-btrfs.mpp.yaml +++ b/test/data/manifests/fedora-boot-btrfs.mpp.yaml @@ -166,6 +166,7 @@ pipelines: options: uuid: 6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 label: root + metadata: dup devices: device: type: org.osbuild.loopback