Repository: osbuild/osbuild-composer
Pull request #2019 (2021-11-16 08:50:17)

RHEL-9.0: unify the default partitioning scheme used by all non-EDGE images
Modify the default partitioning scheme to use:
- /boot/efi - 200 MB
- /boot - 500 MB

and make the default partitioning scheme to be used by all EC2 images. As a consequence get rid of the EC2-specific partitioning scheme.

- RHEL-9.0: add separate `/boot` partition to default partition table
- RHEL-9.0: increase the size of `/boot/efi` partition to 200 MB
- RHEL-9.0: add / fix BIOS boot partition size comment
- RHEL-9.0: use the default partitioning scheme for all EC2 images
- Regenerate image test cases

Related to https://bugzilla.redhat.com/show_bug.cgi?id=2022805

This pull request includes:

- [x] adequate testing for the new functionality or fixed issue
- [ ] adequate documentation informing people about the change such as
  - [ ] submit a PR for the [guides](https://github.com/osbuild/guides) repository if this PR changed any behavior described there: https://www.osbuild.org/guides/

<!--
Thanks for proposing a change to osbuild-composer!

Please don't remove the above check list. These are things that each pull
request must have before it is merged. It helps maintainers to not forget
anything.

If the reason for ticking any of the boxes is ambiguous, please add a short
note explaining why.

In addition, if this pull request fixes a downstream issue, please refer to
test/README.md and add these additional items:

- [ ] 1st commit of any `rhbz#` related PR contains bug reproducer; CI reports FAIL or
- [ ] PR contains automated tests for new functionality and
- [ ] QE has approved reproducer/new tests and
- [ ] Subsequent commits provide bug fixes without modifying the reproducer; CI reports PASS and
- [ ] QE approves this PR; RHBZ status is set to `MODIFIED + Verified=Tested`
-->


gicmo: Thanks for this! I will have a look on Monday. 

Patch:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 17055fbbf..0ab01a68c 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -13,3 +13,4 @@ jobs:
         uses: osbuild/release-action@main
         with:
           token: "${{ secrets.SCHUTZBOT_GITHUB_ACCESS_TOKEN }}"
+          slack_webhook_url: "${{ secrets.SLACK_WEBHOOK_URL }}"
diff --git a/.golangci.yml b/.golangci.yml
index 34f2dc815..a3a15933c 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -3,10 +3,15 @@ linters-settings:
     disable:
       - shadow # default value recommended by golangci
       - composites
+  
+linters:
+  enable:
+    - gosec
 
 run:
   build-tags:
     - integration
+  timeout: 5m
 
 issues:
   # Maximum issues count per one linter. Set to 0 to disable. Default is 50.
diff --git a/cmd/osbuild-composer/composer.go b/cmd/osbuild-composer/composer.go
index 49b0cf710..051c51383 100644
--- a/cmd/osbuild-composer/composer.go
+++ b/cmd/osbuild-composer/composer.go
@@ -348,6 +348,7 @@ func createTLSConfig(c *connectionConfig) (*tls.Config, error) {
 		Certificates: []tls.Certificate{cert},
 		ClientAuth:   c.ClientAuth,
 		ClientCAs:    roots,
+		MinVersion:   tls.VersionTLS12,
 		VerifyPeerCertificate: func(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error {
 			for _, chain := range verifiedChains {
 				for _, domain := range c.AllowedDomains {
diff --git a/cmd/osbuild-worker/jobimpl-koji-finalize.go b/cmd/osbuild-worker/jobimpl-koji-finalize.go
index 9754cc5a8..41a5808f7 100644
--- a/cmd/osbuild-worker/jobimpl-koji-finalize.go
+++ b/cmd/osbuild-worker/jobimpl-koji-finalize.go
@@ -28,6 +28,7 @@ func (impl *KojiFinalizeJobImpl) kojiImport(
 	transport := http.DefaultTransport.(*http.Transport).Clone()
 	transport.TLSClientConfig = &tls.Config{
 		Renegotiation: tls.RenegotiateOnceAsClient,
+		MinVersion:    tls.VersionTLS12,
 	}
 
 	serverURL, err := url.Parse(server)
@@ -65,6 +66,7 @@ func (impl *KojiFinalizeJobImpl) kojiFail(server string, buildID int, token stri
 	transport := http.DefaultTransport.(*http.Transport).Clone()
 	transport.TLSClientConfig = &tls.Config{
 		Renegotiation: tls.RenegotiateOnceAsClient,
+		MinVersion:    tls.VersionTLS12,
 	}
 
 	serverURL, err := url.Parse(server)
diff --git a/cmd/osbuild-worker/jobimpl-koji-init.go b/cmd/osbuild-worker/jobimpl-koji-init.go
index 21d54b506..f85696e44 100644
--- a/cmd/osbuild-worker/jobimpl-koji-init.go
+++ b/cmd/osbuild-worker/jobimpl-koji-init.go
@@ -21,6 +21,7 @@ func (impl *KojiInitJobImpl) kojiInit(server, name, version, release string) (st
 	transport := http.DefaultTransport.(*http.Transport).Clone()
 	transport.TLSClientConfig = &tls.Config{
 		Renegotiation: tls.RenegotiateOnceAsClient,
+		MinVersion:    tls.VersionTLS12,
 	}
 
 	serverURL, err := url.Parse(server)
diff --git a/cmd/osbuild-worker/jobimpl-osbuild-koji.go b/cmd/osbuild-worker/jobimpl-osbuild-koji.go
index 46ce1016b..7f60650ce 100644
--- a/cmd/osbuild-worker/jobimpl-osbuild-koji.go
+++ b/cmd/osbuild-worker/jobimpl-osbuild-koji.go
@@ -28,6 +28,7 @@ func (impl *OSBuildKojiJobImpl) kojiUpload(file *os.File, server, directory, fil
 	transport := http.DefaultTransport.(*http.Transport).Clone()
 	transport.TLSClientConfig = &tls.Config{
 		Renegotiation: tls.RenegotiateOnceAsClient,
+		MinVersion:    tls.VersionTLS12,
 	}
 
 	serverURL, err := url.Parse(server)
diff --git a/cmd/osbuild-worker/main.go b/cmd/osbuild-worker/main.go
index 922fd6126..39de47d13 100644
--- a/cmd/osbuild-worker/main.go
+++ b/cmd/osbuild-worker/main.go
@@ -60,6 +60,7 @@ func createTLSConfig(config *connectionConfig) (*tls.Config, error) {
 	return &tls.Config{
 		RootCAs:      roots,
 		Certificates: certs,
+		MinVersion:   tls.VersionTLS12,
 	}, nil
 }
 
diff --git a/internal/boot/netns.go b/internal/boot/netns.go
index 50fccab58..171f487ed 100644
--- a/internal/boot/netns.go
+++ b/internal/boot/netns.go
@@ -90,7 +90,9 @@ func newNetworkNamespace() (NetNS, error) {
 	if err != nil {
 		return "", fmt.Errorf("cannot set up a loopback device in the new namespace: %v", err)
 	}
-
+	
+	// There's no potential command injection vector here
+	/* #nosec G204 */
 	cmd = exec.Command("mount", "-o", "bind", "/proc/self/ns/net", f.Name())
 	cmd.Stderr = os.Stderr
 	cmd.Stdout = os.Stderr
@@ -131,6 +133,8 @@ func (n NetNS) Path() string {
 
 // Delete deletes the namespaces
 func (n NetNS) Delete() error {
+	// There's no potential command injection vector here
+        /* #nosec G204 */
 	cmd := exec.Command("umount", n.Path())
 	cmd.Stderr = os.Stderr
 	cmd.Stdout = os.Stdout
diff --git a/internal/cloud/awscloud/awscloud.go b/internal/cloud/awscloud/awscloud.go
index 9aa282c1e..48748bf95 100644
--- a/internal/cloud/awscloud/awscloud.go
+++ b/internal/cloud/awscloud/awscloud.go
@@ -202,6 +202,8 @@ func (a *AWS) Register(name, bucket, key string, shareWith []string, rpmArch str
 		log.Printf("[AWS] 🎥 Sharing ec2 snapshot")
 		var userIds []*string
 		for _, v := range shareWith {
+			// Implicit memory alasing doesn't couse any bug in this case
+			/* #nosec G601 */
 			userIds = append(userIds, &v)
 		}
 		_, err := a.ec2.ModifySnapshotAttribute(
@@ -281,6 +283,8 @@ func (a *AWS) Register(name, bucket, key string, shareWith []string, rpmArch str
 		var launchPerms []*ec2.LaunchPermission
 		for _, id := range shareWith {
 			launchPerms = append(launchPerms, &ec2.LaunchPermission{
+				// Implicit memory alasing doesn't couse any bug in this case
+				/* #nosec G601 */
 				UserId: &id,
 			})
 		}
diff --git a/internal/cloud/gcp/storage.go b/internal/cloud/gcp/storage.go
index 6b3d548c7..522802ee0 100644
--- a/internal/cloud/gcp/storage.go
+++ b/internal/cloud/gcp/storage.go
@@ -2,6 +2,8 @@ package gcp
 
 import (
 	"context"
+	// gcp uses MD5 hashes
+	/* #nosec G501 */
 	"crypto/md5"
 	"fmt"
 	"io"
@@ -46,6 +48,8 @@ func (g *GCP) StorageObjectUpload(ctx context.Context, filename, bucket, object
 	defer imageFile.Close()
 
 	// Compute MD5 checksum of the image file for later verification
+	// gcp uses MD5 hashes
+	/* #nosec G401 */
 	imageFileHash := md5.New()
 	if _, err := io.Copy(imageFileHash, imageFile); err != nil {
 		return nil, fmt.Errorf("cannot create md5 of the image: %v", err)
diff --git a/internal/cloudapi/v2/errors.go b/internal/cloudapi/v2/errors.go
index b0378fc4f..e4ace4ddf 100644
--- a/internal/cloudapi/v2/errors.go
+++ b/internal/cloudapi/v2/errors.go
@@ -193,6 +193,8 @@ func APIErrorList(page int, pageSize int, c echo.Context) *ErrorList {
 
 	errs := getServiceErrors()[min(page*pageSize, len(getServiceErrors())):min(((page+1)*pageSize), len(getServiceErrors()))]
 	for _, e := range errs {
+		// Implicit memory alasing doesn't couse any bug in this case
+		/* #nosec G601 */
 		list.Items = append(list.Items, *APIError(e.code, &e, c))
 	}
 	list.Size = len(list.Items)
diff --git a/internal/distro/rhel84/distro.go b/internal/distro/rhel84/distro.go
index 10559066a..9d9860edd 100644
--- a/internal/distro/rhel84/distro.go
+++ b/internal/distro/rhel84/distro.go
@@ -295,6 +295,8 @@ func (t *imageType) Manifest(c *blueprint.Customizations,
 	packageSpecSets map[string][]rpmmd.PackageSpec,
 	seed int64) (distro.Manifest, error) {
 	source := rand.NewSource(seed)
+	// math/rand is good enough in this case
+	/* #nosec G404 */
 	rng := rand.New(source)
 	pipeline, err := t.pipeline(c, options, repos, packageSpecSets["packages"], packageSpecSets["build-packages"], rng)
 	if err != nil {
diff --git a/internal/distro/rhel84/distro_v2.go b/internal/distro/rhel84/distro_v2.go
index 5803a1327..0c020c1d7 100644
--- a/internal/distro/rhel84/distro_v2.go
+++ b/internal/distro/rhel84/distro_v2.go
@@ -137,6 +137,8 @@ func (t *imageTypeS2) Manifest(c *blueprint.Customizations,
 	packageSpecSets map[string][]rpmmd.PackageSpec,
 	seed int64) (distro.Manifest, error) {
 	source := rand.NewSource(seed)
+	// math/rand is good enough in this case
+	/* #nosec G404 */
 	rng := rand.New(source)
 	pipelines, err := t.pipelines(c, options, repos, packageSpecSets, rng)
 	if err != nil {
diff --git a/internal/distro/rhel85/distro.go b/internal/distro/rhel85/distro.go
index 22d1f4367..1948b94a5 100644
--- a/internal/distro/rhel85/distro.go
+++ b/internal/distro/rhel85/distro.go
@@ -338,6 +338,8 @@ func (t *imageType) Manifest(customizations *blueprint.Customizations,
 	}
 
 	source := rand.NewSource(seed)
+	// math/rand is good enough in this case
+	/* #nosec G404 */
 	rng := rand.New(source)
 
 	pipelines, err := t.pipelines(t, customizations, options, repos, packageSpecSets, rng)
diff --git a/internal/distro/rhel85/pipelines.go b/internal/distro/rhel85/pipelines.go
index 4f917c0da..c91ef6192 100644
--- a/internal/distro/rhel85/pipelines.go
+++ b/internal/distro/rhel85/pipelines.go
@@ -512,6 +512,8 @@ func tarInstallerPipelines(t *imageType, customizations *blueprint.Customization
 	installerPackages := packageSetSpecs[installerPkgsKey]
 	for _, pkg := range installerPackages {
 		if pkg.Name == "kernel" {
+			// Implicit memory alasing doesn't couse any bug in this case
+			/* #nosec G601 */
 			kernelPkg = &pkg
 			break
 		}
@@ -1345,6 +1347,8 @@ func kernelVerStr(pkgs []rpmmd.PackageSpec, kernelName, arch string) string {
 	kernelPkg := new(rpmmd.PackageSpec)
 	for _, pkg := range pkgs {
 		if pkg.Name == kernelName {
+			// Implicit memory alasing doesn't couse any bug in this case
+			/* #nosec G601 */
 			kernelPkg = &pkg
 			break
 		}
diff --git a/internal/distro/rhel86/distro.go b/internal/distro/rhel86/distro.go
index c3a3688f8..34801c3df 100644
--- a/internal/distro/rhel86/distro.go
+++ b/internal/distro/rhel86/distro.go
@@ -372,6 +372,8 @@ func (t *imageType) Manifest(customizations *blueprint.Customizations,
 	}
 
 	source := rand.NewSource(seed)
+	// math/rand is good enough in this case
+	/* #nosec G404 */
 	rng := rand.New(source)
 
 	pipelines, err := t.pipelines(t, customizations, options, repos, packageSpecSets, rng)
diff --git a/internal/distro/rhel86/pipelines.go b/internal/distro/rhel86/pipelines.go
index 5f7aee836..5c58a0297 100644
--- a/internal/distro/rhel86/pipelines.go
+++ b/internal/distro/rhel86/pipelines.go
@@ -679,6 +679,8 @@ func tarInstallerPipelines(t *imageType, customizations *blueprint.Customization
 	installerPackages := packageSetSpecs[installerPkgsKey]
 	for _, pkg := range installerPackages {
 		if pkg.Name == "kernel" {
+			// Implicit memory alasing doesn't couse any bug in this case
+			/* #nosec G601 */
 			kernelPkg = &pkg
 			break
 		}
@@ -1487,6 +1489,8 @@ func kernelVerStr(pkgs []rpmmd.PackageSpec, kernelName, arch string) string {
 	kernelPkg := new(rpmmd.PackageSpec)
 	for _, pkg := range pkgs {
 		if pkg.Name == kernelName {
+			// Implicit memory alasing doesn't couse any bug in this case
+			/* #nosec G601 */
 			kernelPkg = &pkg
 			break
 		}
diff --git a/internal/distro/rhel90/distro.go b/internal/distro/rhel90/distro.go
index d1adde287..29ecec37e 100644
--- a/internal/distro/rhel90/distro.go
+++ b/internal/distro/rhel90/distro.go
@@ -372,6 +372,8 @@ func (t *imageType) Manifest(customizations *blueprint.Customizations,
 	}
 
 	source := rand.NewSource(seed)
+	// math/rand is good enough in this case
+	/* #nosec G404 */
 	rng := rand.New(source)
 
 	pipelines, err := t.pipelines(t, customizations, options, repos, packageSpecSets, rng)
@@ -777,7 +779,7 @@ func newDistro(distroName string) distro.Distro {
 		buildPipelines:      []string{"build"},
 		payloadPipelines:    []string{"os", "image"},
 		exports:             []string{"image"},
-		basePartitionTables: ec2BasePartitionTables,
+		basePartitionTables: defaultBasePartitionTables,
 	}
 
 	amiImgTypeAarch64 := imageType{
@@ -797,7 +799,7 @@ func newDistro(distroName string) distro.Distro {
 		buildPipelines:      []string{"build"},
 		payloadPipelines:    []string{"os", "image"},
 		exports:             []string{"image"},
-		basePartitionTables: ec2BasePartitionTables,
+		basePartitionTables: defaultBasePartitionTables,
 	}
 
 	ec2ImgTypeX86_64 := imageType{
@@ -818,7 +820,7 @@ func newDistro(distroName string) distro.Distro {
 		buildPipelines:      []string{"build"},
 		payloadPipelines:    []string{"os", "image", "archive"},
 		exports:             []string{"archive"},
-		basePartitionTables: ec2BasePartitionTables,
+		basePartitionTables: defaultBasePartitionTables,
 	}
 
 	ec2ImgTypeAarch64 := imageType{
@@ -838,7 +840,7 @@ func newDistro(distroName string) distro.Distro {
 		buildPipelines:      []string{"build"},
 		payloadPipelines:    []string{"os", "image", "archive"},
 		exports:             []string{"archive"},
-		basePartitionTables: ec2BasePartitionTables,
+		basePartitionTables: defaultBasePartitionTables,
 	}
 
 	ec2HaImgTypeX86_64 := imageType{
@@ -859,7 +861,7 @@ func newDistro(distroName string) distro.Distro {
 		buildPipelines:      []string{"build"},
 		payloadPipelines:    []string{"os", "image", "archive"},
 		exports:             []string{"archive"},
-		basePartitionTables: ec2BasePartitionTables,
+		basePartitionTables: defaultBasePartitionTables,
 	}
 
 	ec2SapImgTypeX86_64 := imageType{
@@ -880,7 +882,7 @@ func newDistro(distroName string) distro.Distro {
 		buildPipelines:      []string{"build"},
 		payloadPipelines:    []string{"os", "image", "archive"},
 		exports:             []string{"archive"},
-		basePartitionTables: ec2BasePartitionTables,
+		basePartitionTables: defaultBasePartitionTables,
 	}
 
 	tarImgType := imageType{
diff --git a/internal/distro/rhel90/partition_tables.go b/internal/distro/rhel90/partition_tables.go
index e5010b94a..3e039eb6c 100644
--- a/internal/distro/rhel90/partition_tables.go
+++ b/internal/distro/rhel90/partition_tables.go
@@ -11,24 +11,38 @@ var defaultBasePartitionTables = distro.BasePartitionTableMap{
 		Type: "gpt",
 		Partitions: []disk.Partition{
 			{
-				Size:     2048,
+				Size:     2048, // 1MB
 				Bootable: true,
 				Type:     disk.BIOSBootPartitionGUID,
 				UUID:     disk.BIOSBootPartitionUUID,
 			},
 			{
-				Size: 204800,
+				Size: 409600, // 200 MB
 				Type: disk.EFISystemPartitionGUID,
 				UUID: disk.EFISystemPartitionUUID,
 				Filesystem: &disk.Filesystem{
 					Type:         "vfat",
 					UUID:         disk.EFIFilesystemUUID,
 					Mountpoint:   "/boot/efi",
+					Label:        "EFI-SYSTEM",
 					FSTabOptions: "defaults,uid=0,gid=0,umask=077,shortname=winnt",
 					FSTabFreq:    0,
 					FSTabPassNo:  2,
 				},
 			},
+			{
+				Size: 1024000, // 500 MB
+				Type: disk.FilesystemDataGUID,
+				UUID: disk.FilesystemDataUUID,
+				Filesystem: &disk.Filesystem{
+					Type:         "xfs",
+					Mountpoint:   "/boot",
+					Label:        "boot",
+					FSTabOptions: "defaults",
+					FSTabFreq:    0,
+					FSTabPassNo:  0,
+				},
+			},
 			{
 				Type: disk.FilesystemDataGUID,
 				UUID: disk.RootPartitionUUID,
@@ -48,44 +62,38 @@ var defaultBasePartitionTables = distro.BasePartitionTableMap{
 		Type: "gpt",
 		Partitions: []disk.Partition{
 			{
-				Size: 204800,
+				Size: 409600, // 200 MB
 				Type: disk.EFISystemPartitionGUID,
 				UUID: disk.EFISystemPartitionUUID,
 				Filesystem: &disk.Filesystem{
 					Type:         "vfat",
 					UUID:         disk.EFIFilesystemUUID,
 					Mountpoint:   "/boot/efi",
+					Label:        "EFI-SYSTEM",
 					FSTabOptions: "defaults,uid=0,gid=0,umask=077,shortname=winnt",
 					FSTabFreq:    0,
 					FSTabPassNo:  2,
 				},
 			},
 			{
+				Size: 1024000, // 500 MB
 				Type: disk.FilesystemDataGUID,
-				UUID: disk.RootPartitionUUID,
+				UUID: disk.FilesystemDataUUID,
 				Filesystem: &disk.Filesystem{
 					Type:         "xfs",
-					Label:        "root",
-					Mountpoint:   "/",
+					Mountpoint:   "/boot",
+					Label:        "boot",
 					FSTabOptions: "defaults",
 					FSTabFreq:    0,
 					FSTabPassNo:  0,
 				},
 			},
-		},
-	},
-	distro.Ppc64leArchName: disk.PartitionTable{
-		UUID: "0x14fc63d2",
-		Type: "dos",
-		Partitions: []disk.Partition{
-			{
-				Size:     8192,
-				Type:     "41",
-				Bootable: true,
-			},
 			{
+				Type: disk.FilesystemDataGUID,
+				UUID: disk.RootPartitionUUID,
 				Filesystem: &disk.Filesystem{
 					Type:         "xfs",
+					Label:        "root",
 					Mountpoint:   "/",
 					FSTabOptions: "defaults",
 					FSTabFreq:    0,
@@ -94,41 +102,31 @@ var defaultBasePartitionTables = distro.BasePartitionTableMap{
 			},
 		},
 	},
-	distro.S390xArchName: disk.PartitionTable{
+	distro.Ppc64leArchName: disk.PartitionTable{
 		UUID: "0x14fc63d2",
 		Type: "dos",
 		Partitions: []disk.Partition{
 			{
+				Size:     8192,
+				Type:     "41",
 				Bootable: true,
+			},
+			{
+				Size: 1024000, // 500 MB
+				Type: disk.FilesystemDataGUID,
+				UUID: disk.FilesystemDataUUID,
 				Filesystem: &disk.Filesystem{
 					Type:         "xfs",
-					Mountpoint:   "/",
+					Mountpoint:   "/boot",
+					Label:        "boot",
 					FSTabOptions: "defaults",
 					FSTabFreq:    0,
 					FSTabPassNo:  0,
 				},
 			},
-		},
-	},
-}
-
-var ec2BasePartitionTables = distro.BasePartitionTableMap{
-	distro.X86_64ArchName: disk.PartitionTable{
-		UUID: "D209C89E-EA5E-4FBD-B161-B461CCE297E0",
-		Type: "gpt",
-		Partitions: []disk.Partition{
 			{
-				Size:     2048,
-				Bootable: true,
-				Type:     disk.BIOSBootPartitionGUID,
-				UUID:     disk.BIOSBootPartitionUUID,
-			},
-			{
-				Type: disk.FilesystemDataGUID,
-				UUID: disk.RootPartitionUUID,
 				Filesystem: &disk.Filesystem{
 					Type:         "xfs",
-					Label:        "root",
 					Mountpoint:   "/",
 					FSTabOptions: "defaults",
 					FSTabFreq:    0,
@@ -137,41 +135,27 @@ var ec2BasePartitionTables = distro.BasePartitionTableMap{
 			},
 		},
 	},
-	distro.Aarch64ArchName: disk.PartitionTable{
-		UUID: "D209C89E-EA5E-4FBD-B161-B461CCE297E0",
-		Type: "gpt",
+	distro.S390xArchName: disk.PartitionTable{
+		UUID: "0x14fc63d2",
+		Type: "dos",
 		Partitions: []disk.Partition{
 			{
-				Size: 409600,
-				Type: disk.EFISystemPartitionGUID,
-				UUID: disk.EFISystemPartitionUUID,
-				Filesystem: &disk.Filesystem{
-					Type:         "vfat",
-					UUID:         disk.EFIFilesystemUUID,
-					Mountpoint:   "/boot/efi",
-					FSTabOptions: "defaults,uid=0,gid=0,umask=077,shortname=winnt",
-					FSTabFreq:    0,
-					FSTabPassNo:  2,
-				},
-			},
-			{
-				Size: 1048576,
+				Size: 1024000, // 500 MB
 				Type: disk.FilesystemDataGUID,
 				UUID: disk.FilesystemDataUUID,
 				Filesystem: &disk.Filesystem{
 					Type:         "xfs",
 					Mountpoint:   "/boot",
+					Label:        "boot",
 					FSTabOptions: "defaults",
 					FSTabFreq:    0,
 					FSTabPassNo:  0,
 				},
 			},
 			{
-				Type: disk.FilesystemDataGUID,
-				UUID: disk.RootPartitionUUID,
+				Bootable: true,
 				Filesystem: &disk.Filesystem{
 					Type:         "xfs",
-					Label:        "root",
 					Mountpoint:   "/",
 					FSTabOptions: "defaults",
 					FSTabFreq:    0,
@@ -181,13 +165,14 @@ var ec2BasePartitionTables = distro.BasePartitionTableMap{
 		},
 	},
 }
+
 var edgeBasePartitionTables = distro.BasePartitionTableMap{
 	distro.X86_64ArchName: disk.PartitionTable{
 		UUID: "D209C89E-EA5E-4FBD-B161-B461CCE297E0",
 		Type: "gpt",
 		Partitions: []disk.Partition{
 			{
-				Size:     2048, // 2MB
+				Size:     2048, // 1MB
 				Bootable: true,
 				Type:     disk.BIOSBootPartitionGUID,
 				UUID:     disk.BIOSBootPartitionUUID,
diff --git a/internal/distro/rhel90/pipelines.go b/internal/distro/rhel90/pipelines.go
index 47fa54a02..235533b2b 100644
--- a/internal/distro/rhel90/pipelines.go
+++ b/internal/distro/rhel90/pipelines.go
@@ -19,12 +19,12 @@ func qcow2Pipelines(t *imageType, customizations *blueprint.Customizations, opti
 	pipelines := make([]osbuild.Pipeline, 0)
 	pipelines = append(pipelines, *buildPipeline(repos, packageSetSpecs[buildPkgsKey], t.arch.distro.runner))
 
-	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget)
+	partitionTable, err := t.getPartitionTable(customizations.GetFilesystems(), options, rng)
 	if err != nil {
 		return nil, err
 	}
 
-	partitionTable, err := t.getPartitionTable(customizations.GetFilesystems(), options, rng)
+	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget, &partitionTable)
 	if err != nil {
 		return nil, err
 	}
@@ -71,12 +71,13 @@ func prependKernelCmdlineStage(pipeline *osbuild.Pipeline, t *imageType, pt *dis
 func vhdPipelines(t *imageType, customizations *blueprint.Customizations, options distro.ImageOptions, repos []rpmmd.RepoConfig, packageSetSpecs map[string][]rpmmd.PackageSpec, rng *rand.Rand) ([]osbuild.Pipeline, error) {
 	pipelines := make([]osbuild.Pipeline, 0)
 	pipelines = append(pipelines, *buildPipeline(repos, packageSetSpecs[buildPkgsKey], t.arch.distro.runner))
-	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget)
+
+	partitionTable, err := t.getPartitionTable(customizations.GetFilesystems(), options, rng)
 	if err != nil {
 		return nil, err
 	}
 
-	partitionTable, err := t.getPartitionTable(customizations.GetFilesystems(), options, rng)
+	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget, &partitionTable)
 	if err != nil {
 		return nil, err
 	}
@@ -100,12 +101,13 @@ func vhdPipelines(t *imageType, customizations *blueprint.Customizations, option
 func vmdkPipelines(t *imageType, customizations *blueprint.Customizations, options distro.ImageOptions, repos []rpmmd.RepoConfig, packageSetSpecs map[string][]rpmmd.PackageSpec, rng *rand.Rand) ([]osbuild.Pipeline, error) {
 	pipelines := make([]osbuild.Pipeline, 0)
 	pipelines = append(pipelines, *buildPipeline(repos, packageSetSpecs[buildPkgsKey], t.arch.distro.runner))
-	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget)
+
+	partitionTable, err := t.getPartitionTable(customizations.GetFilesystems(), options, rng)
 	if err != nil {
 		return nil, err
 	}
 
-	partitionTable, err := t.getPartitionTable(customizations.GetFilesystems(), options, rng)
+	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget, &partitionTable)
 	if err != nil {
 		return nil, err
 	}
@@ -129,12 +131,13 @@ func vmdkPipelines(t *imageType, customizations *blueprint.Customizations, optio
 func openstackPipelines(t *imageType, customizations *blueprint.Customizations, options distro.ImageOptions, repos []rpmmd.RepoConfig, packageSetSpecs map[string][]rpmmd.PackageSpec, rng *rand.Rand) ([]osbuild.Pipeline, error) {
 	pipelines := make([]osbuild.Pipeline, 0)
 	pipelines = append(pipelines, *buildPipeline(repos, packageSetSpecs[buildPkgsKey], t.arch.distro.runner))
-	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget)
+
+	partitionTable, err := t.getPartitionTable(customizations.GetFilesystems(), options, rng)
 	if err != nil {
 		return nil, err
 	}
 
-	partitionTable, err := t.getPartitionTable(customizations.GetFilesystems(), options, rng)
+	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget, &partitionTable)
 	if err != nil {
 		return nil, err
 	}
@@ -615,7 +618,7 @@ func tarPipelines(t *imageType, customizations *blueprint.Customizations, option
 	pipelines := make([]osbuild.Pipeline, 0)
 	pipelines = append(pipelines, *buildPipeline(repos, packageSetSpecs[buildPkgsKey], t.arch.distro.runner))
 
-	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget)
+	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget, nil)
 	if err != nil {
 		return nil, err
 	}
@@ -658,7 +661,7 @@ func tarInstallerPipelines(t *imageType, customizations *blueprint.Customization
 	pipelines := make([]osbuild.Pipeline, 0)
 	pipelines = append(pipelines, *buildPipeline(repos, packageSetSpecs[buildPkgsKey], t.arch.distro.runner))
 
-	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget)
+	treePipeline, err := osPipeline(repos, packageSetSpecs[osPkgsKey], packageSetSpecs[blueprintPkgsKey], customizations, options, t.enabledServices, t.disabledServices, t.defaultTarget, nil)
 	if err != nil {
 		return nil, err
 	}
@@ -669,6 +672,8 @@ func tarInstallerPipelines(t *imageType, customizations *blueprint.Customization
 	installerPackages := packageSetSpecs[installerPkgsKey]
 	for _, pkg := range installerPackages {
 		if pkg.Name == "kernel" {
+			// Implicit memory alasing doesn't couse any bug in this case
+			/* #nosec G601 */
 			kernelPkg = &pkg
 			break
 		}
@@ -783,13 +788,25 @@ func buildPipeline(repos []rpmmd.RepoConfig, buildPackageSpecs []rpmmd.PackageSp
 	return p
 }
 
-func osPipeline(repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec, bpPackages []rpmmd.PackageSpec, c *blueprint.Customizations, options distro.ImageOptions, enabledServices, disabledServices []string, defaultTarget string) (*osbuild.Pipeline, error) {
+func osPipeline(repos []rpmmd.RepoConfig,
+	packages []rpmmd.PackageSpec,
+	bpPackages []rpmmd.PackageSpec,
+	c *blueprint.Customizations,
+	options distro.ImageOptions,
+	enabledServices, disabledServices []string,
+	defaultTarget string,
+	pt *disk.PartitionTable) (*osbuild.Pipeline, error) {
 	p := new(osbuild.Pipeline)
 	p.Name = "os"
 	p.Build = "name:build"
 	packages = append(packages, bpPackages...)
 	p.AddStage(osbuild.NewRPMStage(rpmStageOptions(repos), rpmStageInputs(packages)))
-	p.AddStage(osbuild.NewFixBLSStage(&osbuild.FixBLSStageOptions{}))
+	// If the /boot is on a separate partition, the prefix for the BLS stage must be ""
+	if pt == nil || pt.BootPartition() == nil {
+		p.AddStage(osbuild.NewFixBLSStage(&osbuild.FixBLSStageOptions{}))
+	} else {
+		p.AddStage(osbuild.NewFixBLSStage(&osbuild.FixBLSStageOptions{Prefix: common.StringToPtr("")}))
+	}
 	language, keyboard := c.GetPrimaryLocale()
 	if language != nil {
 		p.AddStage(osbuild.NewLocaleStage(&osbuild.LocaleStageOptions{Language: *language}))
@@ -1487,6 +1504,8 @@ func kernelVerStr(pkgs []rpmmd.PackageSpec, kernelName, arch string) string {
 	kernelPkg := new(rpmmd.PackageSpec)
 	for _, pkg := range pkgs {
 		if pkg.Name == kernelName {
+			// Implicit memory alasing doesn't couse any bug in this case
+			/* #nosec G601 */
 			kernelPkg = &pkg
 			break
 		}
diff --git a/internal/distro/rhel90beta/distro.go b/internal/distro/rhel90beta/distro.go
index 11fa61073..4387c9b87 100644
--- a/internal/distro/rhel90beta/distro.go
+++ b/internal/distro/rhel90beta/distro.go
@@ -373,6 +373,8 @@ func (t *imageType) Manifest(customizations *blueprint.Customizations,
 	}
 
 	source := rand.NewSource(seed)
+	// math/rand is good enough in this case
+	/* #nosec G404 */
 	rng := rand.New(source)
 
 	pipelines, err := t.pipelines(t, customizations, options, repos, packageSpecSets, rng)
diff --git a/internal/distro/rhel90beta/pipelines.go b/internal/distro/rhel90beta/pipelines.go
index 190dccfdd..1bfd9a9ea 100644
--- a/internal/distro/rhel90beta/pipelines.go
+++ b/internal/distro/rhel90beta/pipelines.go
@@ -644,6 +644,8 @@ func tarInstallerPipelines(t *imageType, customizations *blueprint.Customization
 	installerPackages := packageSetSpecs[installerPkgsKey]
 	for _, pkg := range installerPackages {
 		if pkg.Name == "kernel" {
+			// Implicit memory alasing doesn't couse any bug in this case
+			/* #nosec G601 */
 			kernelPkg = &pkg
 			break
 		}
@@ -1157,6 +1159,8 @@ func kernelVerStr(pkgs []rpmmd.PackageSpec, kernelName, arch string) string {
 	kernelPkg := new(rpmmd.PackageSpec)
 	for _, pkg := range pkgs {
 		if pkg.Name == kernelName {
+			// Implicit memory alasing doesn't couse any bug in this case
+			/* #nosec G601 */
 			kernelPkg = &pkg
 			break
 		}
diff --git a/internal/osbuild2/result.go b/internal/osbuild2/result.go
index f1aaf77a9..2bdf5bbd7 100644
--- a/internal/osbuild2/result.go
+++ b/internal/osbuild2/result.go
@@ -151,6 +151,8 @@ func convertStageResults(v1Stages []osbuild1.StageResult) (PipelineResult, Pipel
 	result := make([]StageResult, len(v1Stages))
 	metadata := make(map[string]StageMetadata)
 	for idx, srv1 := range v1Stages {
+		// Implicit memory alasing doesn't couse any bug in this case
+		/* #nosec G601 */
 		stageResult, stageMetadata := convertStageResult(&srv1)
 		result[idx] = *stageResult
 		if stageMetadata != nil {
diff --git a/internal/store/store.go b/internal/store/store.go
index bdb3803f5..103e4ae8f 100644
--- a/internal/store/store.go
+++ b/internal/store/store.go
@@ -4,6 +4,8 @@ package store
 
 import (
 	"crypto/rand"
+	// The use of SHA1 is valid here
+	/* #nosec G505 */
 	"crypto/sha1"
 	"encoding/hex"
 	"errors"
@@ -90,6 +92,8 @@ func New(stateDir *string, arch distro.Arch, log *log.Logger) *Store {
 }
 
 func randomSHA1String() (string, error) {
+	// The use of SHA1 is accepted here
+	/* #nosec G401 */
 	hash := sha1.New()
 	data := make([]byte, 20)
 	n, err := rand.Read(data)
diff --git a/internal/upload/azure/azurestorage.go b/internal/upload/azure/azurestorage.go
index e25e784e7..d9821aef5 100644
--- a/internal/upload/azure/azurestorage.go
+++ b/internal/upload/azure/azurestorage.go
@@ -4,6 +4,8 @@ import (
 	"bufio"
 	"bytes"
 	"context"
+	// azure uses MD5 hashes
+	/* #nosec G501 */
 	"crypto/md5"
 	"errors"
 	"fmt"
@@ -88,6 +90,8 @@ func (c StorageClient) UploadPageBlob(metadata BlobMetadata, fileName string, th
 	}
 
 	// Hash the imageFile
+	// azure uses MD5 hashes
+	/* #nosec G401 */
 	imageFileHash := md5.New()
 	if _, err := io.Copy(imageFileHash, imageFile); err != nil {
 		return fmt.Errorf("cannot create md5 of the image: %v", err)
diff --git a/internal/upload/koji/koji.go b/internal/upload/koji/koji.go
index f9cec6f0a..7ff7fca87 100644
--- a/internal/upload/koji/koji.go
+++ b/internal/upload/koji/koji.go
@@ -2,6 +2,8 @@ package koji
 
 import (
 	"bytes"
+	// koji uses MD5 hashes
+	/* #nosec G501 */
 	"crypto/md5"
 	"encoding/json"
 	"errors"
@@ -343,6 +345,8 @@ func (k *Koji) uploadChunk(chunk []byte, filepath, filename string, offset uint6
 func (k *Koji) Upload(file io.Reader, filepath, filename string) (string, uint64, error) {
 	chunk := make([]byte, 1024*1024) // upload a megabyte at a time
 	offset := uint64(0)
+	// Koji uses MD5 hashes
+	/* #nosec G401 */
 	hash := md5.New()
 	for {
 		n, err := file.Read(chunk)
diff --git a/schutzbot/slack_notification.sh b/schutzbot/slack_notification.sh
index 47cd7ff29..9e50600fa 100755
--- a/schutzbot/slack_notification.sh
+++ b/schutzbot/slack_notification.sh
@@ -3,7 +3,7 @@
 set -eux
 
 COMPOSE_ID=$(cat COMPOSE_ID)
-MESSAGE="\"Nightly pipeline execution on *$COMPOSE_ID* finished with status *$1* $2 \n Link to results: $CI_PIPELINE_URL \""
+MESSAGE="\"Nightly pipeline execution on *$COMPOSE_ID* finished with status *$1* $2 \n QE: @atodorov, @jrusz, @jabia \n Link to results: $CI_PIPELINE_URL \""
 
 curl \
     -X POST \


Test patch:
diff --git a/cmd/osbuild-auth-tests/main_test.go b/cmd/osbuild-auth-tests/main_test.go
index a5b2c884f..97da2bddc 100644
--- a/cmd/osbuild-auth-tests/main_test.go
+++ b/cmd/osbuild-auth-tests/main_test.go
@@ -42,6 +42,7 @@ func createTLSConfig(config *connectionConfig) (*tls.Config, error) {
 	return &tls.Config{
 		RootCAs:      roots,
 		Certificates: []tls.Certificate{cert},
+		MinVersion:   tls.VersionTLS12,
 	}, nil
 }
 
diff --git a/cmd/osbuild-composer-cli-tests/main_test.go b/cmd/osbuild-composer-cli-tests/main_test.go
index 47e902d33..466460cb8 100644
--- a/cmd/osbuild-composer-cli-tests/main_test.go
+++ b/cmd/osbuild-composer-cli-tests/main_test.go
@@ -270,6 +270,8 @@ func getComposeStatus(t *testing.T, uuid uuid.UUID) string {
 }
 
 func getLogs(t *testing.T, uuid uuid.UUID) string {
+	// There's no potential command injection vector here
+	/* #nosec G204 */
 	cmd := exec.Command("composer-cli", "compose", "log", uuid.String())
 	cmd.Stderr = os.Stderr
 	stdoutReader, err := cmd.StdoutPipe()
diff --git a/cmd/osbuild-koji-tests/main_test.go b/cmd/osbuild-koji-tests/main_test.go
index 5afb46dd8..037bd07c6 100644
--- a/cmd/osbuild-koji-tests/main_test.go
+++ b/cmd/osbuild-koji-tests/main_test.go
@@ -45,6 +45,7 @@ func TestKojiRefund(t *testing.T) {
 
 	transport.TLSClientConfig = &tls.Config{
 		RootCAs: certPool,
+		MinVersion: tls.VersionTLS12,
 	}
 
 	// login
@@ -105,6 +106,7 @@ func TestKojiImport(t *testing.T) {
 
 	transport.TLSClientConfig = &tls.Config{
 		RootCAs: certPool,
+		MinVersion: tls.VersionTLS12,
 	}
 
 	// login
@@ -194,6 +196,8 @@ func TestKojiImport(t *testing.T) {
 	require.NoError(t, err)
 
 	// check if the build is really there:
+	// There's no potential command injection vector here
+	/* #nosec G204 */
 	cmd := exec.Command(
 		"koji",
 		"--server", server,
diff --git a/internal/disk/disk_test.go b/internal/disk/disk_test.go
index 02f9fbb02..9da55b570 100644
--- a/internal/disk/disk_test.go
+++ b/internal/disk/disk_test.go
@@ -41,6 +41,8 @@ func TestDisk_DynamicallyResizePartitionTable(t *testing.T) {
 		},
 	}
 	var expectedSize uint64 = 2147483648
+	// math/rand is good enough in this case
+	/* #nosec G404 */
 	rng := rand.New(rand.NewSource(0))
 	pt = disk.CreatePartitionTable(mountpoints, 1024, pt, rng)
 	assert.GreaterOrEqual(t, expectedSize, pt.Size)
diff --git a/internal/distro/rhel85/distro_internal_test.go b/internal/distro/rhel85/distro_internal_test.go
index 63054949d..5b11f935a 100644
--- a/internal/distro/rhel85/distro_internal_test.go
+++ b/internal/distro/rhel85/distro_internal_test.go
@@ -28,6 +28,8 @@ var mountpoints = []blueprint.FilesystemCustomization{
 	},
 }
 
+// math/rand is good enough in this case
+/* #nosec G404 */
 var rng = rand.New(rand.NewSource(0))
 
 func containsMountpoint(expected []disk.Partition, mountpoint string) bool {
diff --git a/internal/distro/rhel86/distro_internal_test.go b/internal/distro/rhel86/distro_internal_test.go
index 97e5d1765..cf0bc04dc 100644
--- a/internal/distro/rhel86/distro_internal_test.go
+++ b/internal/distro/rhel86/distro_internal_test.go
@@ -28,6 +28,8 @@ var mountpoints = []blueprint.FilesystemCustomization{
 	},
 }
 
+// math/rand is good enough in this case
+/* #nosec G404 */
 var rng = rand.New(rand.NewSource(0))
 
 func containsMountpoint(expected []disk.Partition, mountpoint string) bool {
diff --git a/internal/jsondb/db_test.go b/internal/jsondb/db_test.go
index c18b45949..9349e664d 100644
--- a/internal/jsondb/db_test.go
+++ b/internal/jsondb/db_test.go
@@ -49,7 +49,7 @@ func TestDegenerate(t *testing.T) {
 		db := jsondb.New(dir, 0755)
 
 		// write-only file
-		err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0644)
+		err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
 		require.NoError(t, err)
 
 		var d document
@@ -63,7 +63,7 @@ func TestCorrupt(t *testing.T) {
 	require.NoError(t, err)
 	defer cleanupTempDir(t, dir)
 
-	err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0755)
+	err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("{"), 0600)
 	require.NoError(t, err)
 
 	db := jsondb.New(dir, 0755)
@@ -77,7 +77,7 @@ func TestRead(t *testing.T) {
 	require.NoError(t, err)
 	defer cleanupTempDir(t, dir)
 
-	err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("true"), 0755)
+	err = ioutil.WriteFile(path.Join(dir, "one.json"), []byte("true"), 0600)
 	require.NoError(t, err)
 
 	db := jsondb.New(dir, 0755)
diff --git a/internal/test/helpers.go b/internal/test/helpers.go
index a194e33f1..4e0fff8a7 100644
--- a/internal/test/helpers.go
+++ b/internal/test/helpers.go
@@ -212,6 +212,9 @@ func SetUpTemporaryRepository() (string, error) {
 	if err != nil {
 		return "", err
 	}
+
+	// There's no potential command injection vector here
+	/* #nosec G204 */
 	cmd := exec.Command("createrepo_c", path.Join(dir))
 	err = cmd.Start()
 	if err != nil {
diff --git a/internal/weldr/api_test.go b/internal/weldr/api_test.go
index aee82639c..a7fe2724b 100644
--- a/internal/weldr/api_test.go
+++ b/internal/weldr/api_test.go
@@ -564,6 +564,8 @@ func TestBlueprintsChanges(t *testing.T) {
 
 	api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
 	rand.Seed(time.Now().UnixNano())
+	// math/rand is good enough in this case
+	/* #nosec G404 */
 	id := strconv.Itoa(rand.Int())
 	ignoreFields := []string{"commit", "timestamp"}
 
@@ -606,6 +608,8 @@ func TestBlueprintsUndo(t *testing.T) {
 
 	api, _ := createWeldrAPI(tempdir, rpmmd_mock.BaseFixture)
 	rand.Seed(time.Now().UnixNano())
+	// math/rand is good enough in this case
+	/* #nosec G404 */
 	id := strconv.Itoa(rand.Int())
 	ignoreFields := []string{"commit", "timestamp"}
 
@@ -941,6 +945,8 @@ func TestComposeLogs(t *testing.T) {
 
 		var buffer bytes.Buffer
 
+		// vulnerability already tested
+		/* #nosec G110 */
 		_, err = io.Copy(&buffer, tr)
 		require.NoErrorf(t, err, "cannot copy untar result")
 		require.Equalf(t, c.ExpectedFileContent, buffer.String(), "%s: unexpected log content", c.Path)
diff --git a/test/data/manifests/rhel_90-aarch64-ami-boot.json b/test/data/manifests/rhel_90-aarch64-ami-boot.json
index 881d90bea..7cf8bf82e 100644
--- a/test/data/manifests/rhel_90-aarch64-ami-boot.json
+++ b/test/data/manifests/rhel_90-aarch64-ami-boot.json
@@ -1055,14 +1055,14 @@
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 1048576,
+                  "size": 1024000,
                   "start": 411648,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "CB07C243-BC44-4717-853E-28852021225B"
                 },
                 {
-                  "size": 19511196,
-                  "start": 1460224,
+                  "size": 19535772,
+                  "start": 1435648,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1096,7 +1096,8 @@
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
-              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
             },
             "devices": {
               "device": {
@@ -1104,7 +1105,7 @@
                 "options": {
                   "filename": "image.raw",
                   "start": 411648,
-                  "size": 1048576
+                  "size": 1024000
                 }
               }
             }
@@ -1120,8 +1121,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
-                  "start": 1460224,
-                  "size": 19511196
+                  "start": 1435648,
+                  "size": 19535772
                 }
               }
             }
@@ -1151,7 +1152,7 @@
                 "options": {
                   "filename": "image.raw",
                   "start": 411648,
-                  "size": 1048576
+                  "size": 1024000
                 }
               },
               "efi": {
@@ -1166,8 +1167,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
-                  "start": 1460224,
-                  "size": 19511196
+                  "start": 1435648,
+                  "size": 19535772
                 }
               }
             },
@@ -9841,8 +9842,8 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 9989732352,
-        "start": 747634688,
+        "size": 10002315264,
+        "start": 735051776,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
         "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
@@ -9859,9 +9860,9 @@
       {
         "bootable": false,
         "fstype": "xfs",
-        "label": null,
+        "label": "boot",
         "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
-        "size": 536870912,
+        "size": 524288000,
         "start": 210763776,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
diff --git a/test/data/manifests/rhel_90-aarch64-ec2-boot.json b/test/data/manifests/rhel_90-aarch64-ec2-boot.json
index 0b0f12450..d18f79b1b 100644
--- a/test/data/manifests/rhel_90-aarch64-ec2-boot.json
+++ b/test/data/manifests/rhel_90-aarch64-ec2-boot.json
@@ -1059,14 +1059,14 @@
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 1048576,
+                  "size": 1024000,
                   "start": 411648,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "CB07C243-BC44-4717-853E-28852021225B"
                 },
                 {
-                  "size": 19511196,
-                  "start": 1460224,
+                  "size": 19535772,
+                  "start": 1435648,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1100,7 +1100,8 @@
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
-              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
             },
             "devices": {
               "device": {
@@ -1108,7 +1109,7 @@
                 "options": {
                   "filename": "image.raw",
                   "start": 411648,
-                  "size": 1048576
+                  "size": 1024000
                 }
               }
             }
@@ -1124,8 +1125,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
-                  "start": 1460224,
-                  "size": 19511196
+                  "start": 1435648,
+                  "size": 19535772
                 }
               }
             }
@@ -1155,7 +1156,7 @@
                 "options": {
                   "filename": "image.raw",
                   "start": 411648,
-                  "size": 1048576
+                  "size": 1024000
                 }
               },
               "efi": {
@@ -1170,8 +1171,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
-                  "start": 1460224,
-                  "size": 19511196
+                  "start": 1435648,
+                  "size": 19535772
                 }
               }
             },
@@ -9881,8 +9882,8 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 9989732352,
-        "start": 747634688,
+        "size": 10002315264,
+        "start": 735051776,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
         "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
@@ -9899,9 +9900,9 @@
       {
         "bootable": false,
         "fstype": "xfs",
-        "label": null,
+        "label": "boot",
         "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
-        "size": 536870912,
+        "size": 524288000,
         "start": 210763776,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
diff --git a/test/data/manifests/rhel_90-aarch64-openstack-boot.json b/test/data/manifests/rhel_90-aarch64-openstack-boot.json
index 82ab871fa..ec3fd904a 100644
--- a/test/data/manifests/rhel_90-aarch64-openstack-boot.json
+++ b/test/data/manifests/rhel_90-aarch64-openstack-boot.json
@@ -299,7 +299,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "ro net.ifnames=0"
             }
           },
@@ -847,7 +847,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -891,6 +893,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 },
@@ -907,7 +915,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "ro net.ifnames=0",
               "uefi": {
                 "vendor": "redhat",
@@ -942,14 +951,20 @@
               "uuid": "D209C89E-EA5E-4FBD-B161-B461CCE297E0",
               "partitions": [
                 {
-                  "size": 204800,
+                  "size": 409600,
                   "start": 2048,
                   "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 8181660,
-                  "start": 206848,
+                  "size": 1024000,
+                  "start": 411648,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 6952860,
+                  "start": 1435648,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -975,7 +990,7 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 2048,
-                  "size": 204800
+                  "size": 409600
                 }
               }
             }
@@ -984,6 +999,23 @@
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 411648,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -991,8 +1023,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 206848,
-                  "size": 8181660
+                  "start": 1435648,
+                  "size": 6952860
                 }
               }
             }
@@ -1017,20 +1049,28 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 411648,
+                  "size": 1024000
+                }
+              },
               "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 2048,
-                  "size": 204800
+                  "size": 409600
                 }
               },
               "root": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 206848,
-                  "size": 8181660
+                  "start": 1435648,
+                  "size": 6952860
                 }
               }
             },
@@ -1041,6 +1081,12 @@
                 "source": "root",
                 "target": "/"
               },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
               {
                 "name": "efi",
                 "type": "org.osbuild.fat",
@@ -9062,7 +9108,7 @@
   "image-info": {
     "/etc/resolv.conf": [],
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 ro net.ifnames=0",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 ro net.ifnames=0",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.aarch64"
     },
     "bootloader": "unknown",
@@ -9071,9 +9117,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.aarch64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.aarch64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 ro net.ifnames=0 $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.aarch64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.aarch64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 ro net.ifnames=0 $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.aarch64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.aarch64"
       }
@@ -9247,6 +9293,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -9776,20 +9830,30 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 4189009920,
-        "start": 105906176,
+        "size": 3559864320,
+        "start": 735051776,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
-        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
       {
         "bootable": false,
         "fstype": "vfat",
         "label": null,
         "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
-        "size": 104857600,
+        "size": 209715200,
         "start": 1048576,
         "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
         "uuid": "7B77-95E7"
+      },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 210763776,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
       }
     ],
     "passwd": [
diff --git a/test/data/manifests/rhel_90-aarch64-qcow2-boot.json b/test/data/manifests/rhel_90-aarch64-qcow2-boot.json
index e059b7c0a..e7343e7e0 100644
--- a/test/data/manifests/rhel_90-aarch64-qcow2-boot.json
+++ b/test/data/manifests/rhel_90-aarch64-qcow2-boot.json
@@ -296,7 +296,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto"
             }
           },
@@ -850,7 +850,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -913,6 +915,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 },
@@ -929,7 +937,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
               "uefi": {
                 "vendor": "redhat",
@@ -964,14 +973,20 @@
               "uuid": "D209C89E-EA5E-4FBD-B161-B461CCE297E0",
               "partitions": [
                 {
-                  "size": 204800,
+                  "size": 409600,
                   "start": 2048,
                   "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 20764572,
-                  "start": 206848,
+                  "size": 1024000,
+                  "start": 411648,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19535772,
+                  "start": 1435648,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -997,7 +1012,7 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 2048,
-                  "size": 204800
+                  "size": 409600
                 }
               }
             }
@@ -1006,6 +1021,23 @@
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 411648,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1013,8 +1045,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 206848,
-                  "size": 20764572
+                  "start": 1435648,
+                  "size": 19535772
                 }
               }
             }
@@ -1039,20 +1071,28 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 411648,
+                  "size": 1024000
+                }
+              },
               "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 2048,
-                  "size": 204800
+                  "size": 409600
                 }
               },
               "root": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 206848,
-                  "size": 20764572
+                  "start": 1435648,
+                  "size": 19535772
                 }
               }
             },
@@ -1063,6 +1103,12 @@
                 "source": "root",
                 "target": "/"
               },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
               {
                 "name": "efi",
                 "type": "org.osbuild.fat",
@@ -9150,7 +9196,7 @@
   "image-info": {
     "/etc/resolv.conf": [],
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.aarch64"
     },
     "bootloader": "unknown",
@@ -9159,9 +9205,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.aarch64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.aarch64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.aarch64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.aarch64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.aarch64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.aarch64"
       }
@@ -9335,6 +9381,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -9876,20 +9930,30 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 10631460864,
-        "start": 105906176,
+        "size": 10002315264,
+        "start": 735051776,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
-        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
       {
         "bootable": false,
         "fstype": "vfat",
         "label": null,
         "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
-        "size": 104857600,
+        "size": 209715200,
         "start": 1048576,
         "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
         "uuid": "7B77-95E7"
+      },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 210763776,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
       }
     ],
     "passwd": [
diff --git a/test/data/manifests/rhel_90-aarch64-qcow2_customize-boot.json b/test/data/manifests/rhel_90-aarch64-qcow2_customize-boot.json
index 80cf89e75..65498c52e 100644
--- a/test/data/manifests/rhel_90-aarch64-qcow2_customize-boot.json
+++ b/test/data/manifests/rhel_90-aarch64-qcow2_customize-boot.json
@@ -354,7 +354,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto"
             }
           },
@@ -1137,7 +1137,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -1253,6 +1255,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 },
@@ -1269,7 +1277,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto debug",
               "uefi": {
                 "vendor": "redhat",
@@ -1304,14 +1313,20 @@
               "uuid": "D209C89E-EA5E-4FBD-B161-B461CCE297E0",
               "partitions": [
                 {
-                  "size": 204800,
+                  "size": 409600,
                   "start": 2048,
                   "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 20764572,
-                  "start": 206848,
+                  "size": 1024000,
+                  "start": 411648,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19535772,
+                  "start": 1435648,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1337,7 +1352,7 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 2048,
-                  "size": 204800
+                  "size": 409600
                 }
               }
             }
@@ -1346,6 +1361,23 @@
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 411648,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1353,8 +1385,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 206848,
-                  "size": 20764572
+                  "start": 1435648,
+                  "size": 19535772
                 }
               }
             }
@@ -1379,20 +1411,28 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 411648,
+                  "size": 1024000
+                }
+              },
               "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 2048,
-                  "size": 204800
+                  "size": 409600
                 }
               },
               "root": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 206848,
-                  "size": 20764572
+                  "start": 1435648,
+                  "size": 19535772
                 }
               }
             },
@@ -1403,6 +1443,12 @@
                 "source": "root",
                 "target": "/"
               },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
               {
                 "name": "efi",
                 "type": "org.osbuild.fat",
@@ -11584,7 +11630,7 @@
   "image-info": {
     "/etc/resolv.conf": [],
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto debug",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto debug",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.aarch64"
     },
     "bootloader": "unknown",
@@ -11593,9 +11639,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
-        "linux": "/boot/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
+        "initrd": "/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
+        "linux": "/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
         "title": "Red Hat Enterprise Linux (0-rescue-ffffffffffffffffffffffffffffffff) 9.0 (Plow)",
         "version": "0-rescue-ffffffffffffffffffffffffffffffff"
       },
@@ -11603,9 +11649,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.aarch64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.aarch64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.aarch64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.aarch64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.aarch64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.aarch64"
       }
@@ -11787,6 +11833,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -12347,20 +12401,30 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 10631460864,
-        "start": 105906176,
+        "size": 10002315264,
+        "start": 735051776,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
-        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
       {
         "bootable": false,
         "fstype": "vfat",
         "label": null,
         "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
-        "size": 104857600,
+        "size": 209715200,
         "start": 1048576,
         "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
         "uuid": "7B77-95E7"
+      },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 210763776,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
       }
     ],
     "passwd": [
diff --git a/test/data/manifests/rhel_90-ppc64le-qcow2-boot.json b/test/data/manifests/rhel_90-ppc64le-qcow2-boot.json
index e55b98cbe..20b6542e7 100644
--- a/test/data/manifests/rhel_90-ppc64le-qcow2-boot.json
+++ b/test/data/manifests/rhel_90-ppc64le-qcow2-boot.json
@@ -301,7 +301,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto"
             }
           },
@@ -907,7 +907,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -970,6 +972,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 }
@@ -979,7 +987,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
               "legacy": "powerpc-ieee1275",
               "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.ppc64le"
@@ -1017,8 +1026,14 @@
                   "type": "41"
                 },
                 {
-                  "size": 20961180,
-                  "start": 10240
+                  "size": 1024000,
+                  "start": 10240,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19937180,
+                  "start": 1034240
                 }
               ]
             },
@@ -1034,7 +1049,8 @@
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
-              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
             },
             "devices": {
               "device": {
@@ -1042,7 +1058,23 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 10240,
-                  "size": 20961180
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 1034240,
+                  "size": 19937180
                 }
               }
             }
@@ -1067,12 +1099,20 @@
               ]
             },
             "devices": {
-              "root": {
+              "boot": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 10240,
-                  "size": 20961180
+                  "size": 1024000
+                }
+              },
+              "root": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 1034240,
+                  "size": 19937180
                 }
               }
             },
@@ -1082,6 +1122,12 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
               }
             ]
           },
@@ -1100,7 +1146,7 @@
                 "type": "partition",
                 "partlabel": "dos",
                 "number": 1,
-                "path": "/boot/grub2"
+                "path": "/grub2"
               }
             }
           }
@@ -9941,7 +9987,7 @@
       ]
     },
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.ppc64le"
     },
     "bootloader": "unknown",
@@ -9950,9 +9996,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.ppc64le.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.ppc64le",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.ppc64le.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.ppc64le",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.ppc64le) 9.0 (Plow)",
         "version": "5.14.0-4.el9.ppc64le"
       }
@@ -10126,6 +10172,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -10720,12 +10774,22 @@
       {
         "bootable": false,
         "fstype": "xfs",
-        "label": null,
+        "label": "boot",
         "partuuid": "14fc63d2-02",
-        "size": 10732124160,
+        "size": 524288000,
         "start": 5242880,
-        "type": "83",
+        "type": "0",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+      },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": null,
+        "partuuid": "14fc63d2-03",
+        "size": 10207836160,
+        "start": 529530880,
+        "type": "83",
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       }
     ],
     "passwd": [
diff --git a/test/data/manifests/rhel_90-ppc64le-qcow2_customize-boot.json b/test/data/manifests/rhel_90-ppc64le-qcow2_customize-boot.json
index a4b5fe2ac..36e7e88da 100644
--- a/test/data/manifests/rhel_90-ppc64le-qcow2_customize-boot.json
+++ b/test/data/manifests/rhel_90-ppc64le-qcow2_customize-boot.json
@@ -359,7 +359,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto"
             }
           },
@@ -1200,7 +1200,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -1316,6 +1318,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 }
@@ -1325,7 +1333,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto debug",
               "legacy": "powerpc-ieee1275",
               "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.ppc64le"
@@ -1363,8 +1372,14 @@
                   "type": "41"
                 },
                 {
-                  "size": 20961180,
-                  "start": 10240
+                  "size": 1024000,
+                  "start": 10240,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19937180,
+                  "start": 1034240
                 }
               ]
             },
@@ -1380,7 +1395,8 @@
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
-              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
             },
             "devices": {
               "device": {
@@ -1388,7 +1404,23 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 10240,
-                  "size": 20961180
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 1034240,
+                  "size": 19937180
                 }
               }
             }
@@ -1413,12 +1445,20 @@
               ]
             },
             "devices": {
-              "root": {
+              "boot": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 10240,
-                  "size": 20961180
+                  "size": 1024000
+                }
+              },
+              "root": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 1034240,
+                  "size": 19937180
                 }
               }
             },
@@ -1428,6 +1468,12 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
               }
             ]
           },
@@ -1446,7 +1492,7 @@
                 "type": "partition",
                 "partlabel": "dos",
                 "number": 1,
-                "path": "/boot/grub2"
+                "path": "/grub2"
               }
             }
           }
@@ -12435,7 +12481,7 @@
       ]
     },
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto debug",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto debug",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.ppc64le"
     },
     "bootloader": "unknown",
@@ -12444,9 +12490,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
-        "linux": "/boot/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
+        "initrd": "/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
+        "linux": "/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
         "title": "Red Hat Enterprise Linux (0-rescue-ffffffffffffffffffffffffffffffff) 9.0 (Plow)",
         "version": "0-rescue-ffffffffffffffffffffffffffffffff"
       },
@@ -12454,9 +12500,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.ppc64le.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.ppc64le",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.ppc64le.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.ppc64le",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.ppc64le) 9.0 (Plow)",
         "version": "5.14.0-4.el9.ppc64le"
       }
@@ -12638,6 +12684,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -13251,12 +13305,22 @@
       {
         "bootable": false,
         "fstype": "xfs",
-        "label": null,
+        "label": "boot",
         "partuuid": "14fc63d2-02",
-        "size": 10732124160,
+        "size": 524288000,
         "start": 5242880,
-        "type": "83",
+        "type": "0",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+      },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": null,
+        "partuuid": "14fc63d2-03",
+        "size": 10207836160,
+        "start": 529530880,
+        "type": "83",
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       }
     ],
     "passwd": [
diff --git a/test/data/manifests/rhel_90-s390x-qcow2-boot.json b/test/data/manifests/rhel_90-s390x-qcow2-boot.json
index bb7966c64..b94558ad9 100644
--- a/test/data/manifests/rhel_90-s390x-qcow2-boot.json
+++ b/test/data/manifests/rhel_90-s390x-qcow2-boot.json
@@ -405,7 +405,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto"
             }
           },
@@ -994,7 +994,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -1057,6 +1059,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 }
@@ -1092,10 +1100,16 @@
               "label": "dos",
               "uuid": "0x14fc63d2",
               "partitions": [
+                {
+                  "size": 1024000,
+                  "start": 2048,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
                 {
                   "bootable": true,
-                  "size": 20969372,
-                  "start": 2048
+                  "size": 19945372,
+                  "start": 1026048
                 }
               ]
             },
@@ -1111,7 +1125,8 @@
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
-              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
             },
             "devices": {
               "device": {
@@ -1119,7 +1134,23 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 2048,
-                  "size": 20969372
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 1026048,
+                  "size": 19945372
                 }
               }
             }
@@ -1144,6 +1175,14 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 2048,
+                  "size": 1024000
+                }
+              },
               "disk": {
                 "type": "org.osbuild.loopback",
                 "options": {
@@ -1154,8 +1193,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 2048,
-                  "size": 20969372
+                  "start": 1026048,
+                  "size": 19945372
                 }
               }
             },
@@ -1165,6 +1204,12 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
               }
             ]
           },
@@ -1175,6 +1220,14 @@
               "location": 2048
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 2048,
+                  "size": 1024000
+                }
+              },
               "disk": {
                 "type": "org.osbuild.loopback",
                 "options": {
@@ -1185,8 +1238,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 2048,
-                  "size": 20969372
+                  "start": 1026048,
+                  "size": 19945372
                 }
               }
             },
@@ -1196,6 +1249,12 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
               }
             ]
           }
@@ -10870,10 +10929,10 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "id": "-20211126121109-5.14.0-4.el9.s390x",
+        "id": "-20211207101433-5.14.0-4.el9.s390x",
         "initrd": "/boot/initramfs-5.14.0-4.el9.s390x.img",
         "linux": "/boot/vmlinuz-5.14.0-4.el9.s390x",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
         "title": " (5.14.0-4.el9.s390x)",
         "version": "5.14.0-4.el9.s390x"
       }
@@ -11047,6 +11106,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -11613,14 +11680,24 @@
     "partition-table-id": "0x14fc63d2",
     "partitions": [
       {
-        "bootable": true,
+        "bootable": false,
         "fstype": "xfs",
-        "label": null,
+        "label": "boot",
         "partuuid": "14fc63d2-01",
-        "size": 10736318464,
+        "size": 524288000,
         "start": 1048576,
-        "type": "83",
+        "type": "0",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+      },
+      {
+        "bootable": true,
+        "fstype": "xfs",
+        "label": null,
+        "partuuid": "14fc63d2-02",
+        "size": 10212030464,
+        "start": 525336576,
+        "type": "83",
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       }
     ],
     "passwd": [
@@ -11722,13 +11799,6 @@
       "missing": []
     },
     "selinux": {
-      "context-mismatch": [
-        {
-          "actual": "unconfined_u:object_r:boot_t:s0",
-          "expected": "system_u:object_r:boot_t:s0",
-          "filename": "/boot/bootmap"
-        }
-      ],
       "policy": {
         "SELINUX": "enforcing",
         "SELINUXTYPE": "targeted"
diff --git a/test/data/manifests/rhel_90-s390x-qcow2_customize-boot.json b/test/data/manifests/rhel_90-s390x-qcow2_customize-boot.json
index 9e5817685..b2d8c01ae 100644
--- a/test/data/manifests/rhel_90-s390x-qcow2_customize-boot.json
+++ b/test/data/manifests/rhel_90-s390x-qcow2_customize-boot.json
@@ -463,7 +463,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto"
             }
           },
@@ -1271,7 +1271,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -1387,6 +1389,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 }
@@ -1422,10 +1430,16 @@
               "label": "dos",
               "uuid": "0x14fc63d2",
               "partitions": [
+                {
+                  "size": 1024000,
+                  "start": 2048,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
                 {
                   "bootable": true,
-                  "size": 20969372,
-                  "start": 2048
+                  "size": 19945372,
+                  "start": 1026048
                 }
               ]
             },
@@ -1441,7 +1455,8 @@
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
-              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+              "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
             },
             "devices": {
               "device": {
@@ -1449,7 +1464,23 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 2048,
-                  "size": 20969372
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 1026048,
+                  "size": 19945372
                 }
               }
             }
@@ -1474,6 +1505,14 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 2048,
+                  "size": 1024000
+                }
+              },
               "disk": {
                 "type": "org.osbuild.loopback",
                 "options": {
@@ -1484,8 +1523,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 2048,
-                  "size": 20969372
+                  "start": 1026048,
+                  "size": 19945372
                 }
               }
             },
@@ -1495,6 +1534,12 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
               }
             ]
           },
@@ -1505,6 +1550,14 @@
               "location": 2048
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 2048,
+                  "size": 1024000
+                }
+              },
               "disk": {
                 "type": "org.osbuild.loopback",
                 "options": {
@@ -1515,8 +1568,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 2048,
-                  "size": 20969372
+                  "start": 1026048,
+                  "size": 19945372
                 }
               }
             },
@@ -1526,6 +1579,12 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
               }
             ]
           }
@@ -13204,10 +13263,10 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "id": "-20211126121319-0-rescue-ffffffffffffffffffffffffffffffff",
+        "id": "-20211207101636-0-rescue-ffffffffffffffffffffffffffffffff",
         "initrd": "/boot/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
         "linux": "/boot/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
         "title": " (0-rescue-ffffffffffffffffffffffffffffffff)",
         "version": "0-rescue-ffffffffffffffffffffffffffffffff"
       },
@@ -13215,10 +13274,10 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "id": "-20211126121319-5.14.0-4.el9.s390x",
+        "id": "-20211207101636-5.14.0-4.el9.s390x",
         "initrd": "/boot/initramfs-5.14.0-4.el9.s390x.img",
         "linux": "/boot/vmlinuz-5.14.0-4.el9.s390x",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
         "title": " (5.14.0-4.el9.s390x)",
         "version": "5.14.0-4.el9.s390x"
       }
@@ -13400,6 +13459,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -13985,14 +14052,24 @@
     "partition-table-id": "0x14fc63d2",
     "partitions": [
       {
-        "bootable": true,
+        "bootable": false,
         "fstype": "xfs",
-        "label": null,
+        "label": "boot",
         "partuuid": "14fc63d2-01",
-        "size": 10736318464,
+        "size": 524288000,
         "start": 1048576,
-        "type": "83",
+        "type": "0",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+      },
+      {
+        "bootable": true,
+        "fstype": "xfs",
+        "label": null,
+        "partuuid": "14fc63d2-02",
+        "size": 10212030464,
+        "start": 525336576,
+        "type": "83",
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       }
     ],
     "passwd": [
@@ -14096,13 +14173,6 @@
       "missing": []
     },
     "selinux": {
-      "context-mismatch": [
-        {
-          "actual": "unconfined_u:object_r:boot_t:s0",
-          "expected": "system_u:object_r:boot_t:s0",
-          "filename": "/boot/bootmap"
-        }
-      ],
       "policy": {
         "SELINUX": "enforcing",
         "SELINUXTYPE": "targeted"
diff --git a/test/data/manifests/rhel_90-x86_64-ami-boot.json b/test/data/manifests/rhel_90-x86_64-ami-boot.json
index d1c8cd70a..035b34ad0 100644
--- a/test/data/manifests/rhel_90-x86_64-ami-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-ami-boot.json
@@ -321,7 +321,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto"
             }
           },
@@ -834,7 +834,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -1012,8 +1014,21 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
+                },
+                {
+                  "uuid": "7B77-95E7",
+                  "vfs_type": "vfat",
+                  "path": "/boot/efi",
+                  "options": "defaults,uid=0,gid=0,umask=077,shortname=winnt",
+                  "passno": 2
                 }
               ]
             }
@@ -1021,7 +1036,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
               "legacy": "i386-pc",
               "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
@@ -1060,8 +1076,20 @@
                   "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
                 },
                 {
-                  "size": 20967324,
+                  "size": 409600,
                   "start": 4096,
+                  "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
+                  "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
+                },
+                {
+                  "size": 1024000,
+                  "start": 413696,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19533724,
+                  "start": 1437696,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1076,10 +1104,43 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.mkfs.fat",
+            "options": {
+              "volid": "7B7795E7"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 4096,
+                  "size": 409600
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1087,8 +1148,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
-                  "start": 4096,
-                  "size": 20967324
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             }
@@ -1113,12 +1174,28 @@
               ]
             },
             "devices": {
-              "root": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              },
+              "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
                   "start": 4096,
-                  "size": 20967324
+                  "size": 409600
+                }
+              },
+              "root": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             },
@@ -1128,6 +1205,18 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
+              {
+                "name": "efi",
+                "type": "org.osbuild.fat",
+                "source": "efi",
+                "target": "/boot/efi"
               }
             ]
           },
@@ -1145,8 +1234,8 @@
               "prefix": {
                 "type": "partition",
                 "partlabel": "gpt",
-                "number": 1,
-                "path": "/boot/grub2"
+                "number": 2,
+                "path": "/grub2"
               }
             }
           }
@@ -8816,7 +8905,7 @@
       "profile-id": "sssd"
     },
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
     },
     "bootloader": "grub",
@@ -8825,9 +8914,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
-        "linux": "/boot/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
+        "initrd": "/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
+        "linux": "/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
         "title": "Red Hat Enterprise Linux (0-rescue-ffffffffffffffffffffffffffffffff) 9.0 (Plow)",
         "version": "0-rescue-ffffffffffffffffffffffffffffffff"
       },
@@ -8835,9 +8924,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.x86_64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.x86_64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.x86_64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.x86_64"
       }
@@ -9027,11 +9116,27 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
         "0",
         "0"
+      ],
+      [
+        "UUID=7B77-95E7",
+        "/boot/efi",
+        "vfat",
+        "defaults,uid=0,gid=0,umask=077,shortname=winnt",
+        "0",
+        "2"
       ]
     ],
     "groups": [
@@ -9521,8 +9626,28 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 10735269888,
+        "size": 10001266688,
+        "start": 736100352,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
+      },
+      {
+        "bootable": false,
+        "fstype": "vfat",
+        "label": null,
+        "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
+        "size": 209715200,
         "start": 2097152,
+        "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
+        "uuid": "7B77-95E7"
+      },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 211812352,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
       },
diff --git a/test/data/manifests/rhel_90-x86_64-ec2-boot.json b/test/data/manifests/rhel_90-x86_64-ec2-boot.json
index 67c4de6e5..235c727dd 100644
--- a/test/data/manifests/rhel_90-x86_64-ec2-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-ec2-boot.json
@@ -321,7 +321,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto"
             }
           },
@@ -835,7 +835,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -1016,8 +1018,21 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
+                },
+                {
+                  "uuid": "7B77-95E7",
+                  "vfs_type": "vfat",
+                  "path": "/boot/efi",
+                  "options": "defaults,uid=0,gid=0,umask=077,shortname=winnt",
+                  "passno": 2
                 }
               ]
             }
@@ -1025,7 +1040,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
               "legacy": "i386-pc",
               "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
@@ -1064,8 +1080,20 @@
                   "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
                 },
                 {
-                  "size": 20967324,
+                  "size": 409600,
                   "start": 4096,
+                  "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
+                  "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
+                },
+                {
+                  "size": 1024000,
+                  "start": 413696,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19533724,
+                  "start": 1437696,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1080,10 +1108,43 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.mkfs.fat",
+            "options": {
+              "volid": "7B7795E7"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 4096,
+                  "size": 409600
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1091,8 +1152,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
-                  "start": 4096,
-                  "size": 20967324
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             }
@@ -1117,12 +1178,28 @@
               ]
             },
             "devices": {
-              "root": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              },
+              "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
                   "start": 4096,
-                  "size": 20967324
+                  "size": 409600
+                }
+              },
+              "root": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             },
@@ -1132,6 +1209,18 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
+              {
+                "name": "efi",
+                "type": "org.osbuild.fat",
+                "source": "efi",
+                "target": "/boot/efi"
               }
             ]
           },
@@ -1149,8 +1238,8 @@
               "prefix": {
                 "type": "partition",
                 "partlabel": "gpt",
-                "number": 1,
-                "path": "/boot/grub2"
+                "number": 2,
+                "path": "/grub2"
               }
             }
           }
@@ -8855,7 +8944,7 @@
       "profile-id": "sssd"
     },
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
     },
     "bootloader": "grub",
@@ -8864,9 +8953,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
-        "linux": "/boot/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
+        "initrd": "/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
+        "linux": "/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
         "title": "Red Hat Enterprise Linux (0-rescue-ffffffffffffffffffffffffffffffff) 9.0 (Plow)",
         "version": "0-rescue-ffffffffffffffffffffffffffffffff"
       },
@@ -8874,9 +8963,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.x86_64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.x86_64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.x86_64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.x86_64"
       }
@@ -9066,11 +9155,27 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
         "0",
         "0"
+      ],
+      [
+        "UUID=7B77-95E7",
+        "/boot/efi",
+        "vfat",
+        "defaults,uid=0,gid=0,umask=077,shortname=winnt",
+        "0",
+        "2"
       ]
     ],
     "groups": [
@@ -9561,8 +9666,28 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 10735269888,
+        "size": 10001266688,
+        "start": 736100352,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
+      },
+      {
+        "bootable": false,
+        "fstype": "vfat",
+        "label": null,
+        "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
+        "size": 209715200,
         "start": 2097152,
+        "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
+        "uuid": "7B77-95E7"
+      },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 211812352,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
       },
diff --git a/test/data/manifests/rhel_90-x86_64-ec2_ha-boot.json b/test/data/manifests/rhel_90-x86_64-ec2_ha-boot.json
index c9e8cd426..6dc75f80d 100644
--- a/test/data/manifests/rhel_90-x86_64-ec2_ha-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-ec2_ha-boot.json
@@ -321,7 +321,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto"
             }
           },
@@ -1018,7 +1018,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -1199,8 +1201,21 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
+                },
+                {
+                  "uuid": "7B77-95E7",
+                  "vfs_type": "vfat",
+                  "path": "/boot/efi",
+                  "options": "defaults,uid=0,gid=0,umask=077,shortname=winnt",
+                  "passno": 2
                 }
               ]
             }
@@ -1208,7 +1223,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
               "legacy": "i386-pc",
               "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
@@ -1247,8 +1263,20 @@
                   "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
                 },
                 {
-                  "size": 20967324,
+                  "size": 409600,
                   "start": 4096,
+                  "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
+                  "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
+                },
+                {
+                  "size": 1024000,
+                  "start": 413696,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19533724,
+                  "start": 1437696,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1263,10 +1291,43 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.mkfs.fat",
+            "options": {
+              "volid": "7B7795E7"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 4096,
+                  "size": 409600
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1274,8 +1335,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
-                  "start": 4096,
-                  "size": 20967324
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             }
@@ -1300,12 +1361,28 @@
               ]
             },
             "devices": {
-              "root": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              },
+              "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
                   "start": 4096,
-                  "size": 20967324
+                  "size": 409600
+                }
+              },
+              "root": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             },
@@ -1315,6 +1392,18 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
+              {
+                "name": "efi",
+                "type": "org.osbuild.fat",
+                "source": "efi",
+                "target": "/boot/efi"
               }
             ]
           },
@@ -1332,8 +1421,8 @@
               "prefix": {
                 "type": "partition",
                 "partlabel": "gpt",
-                "number": 1,
-                "path": "/boot/grub2"
+                "number": 2,
+                "path": "/grub2"
               }
             }
           }
@@ -11231,7 +11320,7 @@
       "profile-id": "sssd"
     },
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
     },
     "bootloader": "grub",
@@ -11240,9 +11329,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
-        "linux": "/boot/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
+        "initrd": "/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
+        "linux": "/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto",
         "title": "Red Hat Enterprise Linux (0-rescue-ffffffffffffffffffffffffffffffff) 9.0 (Plow)",
         "version": "0-rescue-ffffffffffffffffffffffffffffffff"
       },
@@ -11250,9 +11339,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.x86_64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.x86_64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.x86_64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.x86_64"
       }
@@ -11445,11 +11534,27 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
         "0",
         "0"
+      ],
+      [
+        "UUID=7B77-95E7",
+        "/boot/efi",
+        "vfat",
+        "defaults,uid=0,gid=0,umask=077,shortname=winnt",
+        "0",
+        "2"
       ]
     ],
     "groups": [
@@ -12127,8 +12232,28 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 10735269888,
+        "size": 10001266688,
+        "start": 736100352,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
+      },
+      {
+        "bootable": false,
+        "fstype": "vfat",
+        "label": null,
+        "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
+        "size": 209715200,
         "start": 2097152,
+        "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
+        "uuid": "7B77-95E7"
+      },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 211812352,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
       },
diff --git a/test/data/manifests/rhel_90-x86_64-ec2_sap-boot.json b/test/data/manifests/rhel_90-x86_64-ec2_sap-boot.json
index ad033b723..316fee8e0 100644
--- a/test/data/manifests/rhel_90-x86_64-ec2_sap-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-ec2_sap-boot.json
@@ -321,7 +321,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto processor.max_cstate=1 intel_idle.max_cstate=1"
             }
           },
@@ -1052,7 +1052,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -1350,8 +1352,21 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
+                },
+                {
+                  "uuid": "7B77-95E7",
+                  "vfs_type": "vfat",
+                  "path": "/boot/efi",
+                  "options": "defaults,uid=0,gid=0,umask=077,shortname=winnt",
+                  "passno": 2
                 }
               ]
             }
@@ -1359,7 +1374,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto processor.max_cstate=1 intel_idle.max_cstate=1",
               "legacy": "i386-pc",
               "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
@@ -1398,8 +1414,20 @@
                   "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
                 },
                 {
-                  "size": 20967324,
+                  "size": 409600,
                   "start": 4096,
+                  "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
+                  "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
+                },
+                {
+                  "size": 1024000,
+                  "start": 413696,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19533724,
+                  "start": 1437696,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1414,10 +1442,43 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.mkfs.fat",
+            "options": {
+              "volid": "7B7795E7"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 4096,
+                  "size": 409600
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1425,8 +1486,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
-                  "start": 4096,
-                  "size": 20967324
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             }
@@ -1451,12 +1512,28 @@
               ]
             },
             "devices": {
-              "root": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              },
+              "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "image.raw",
                   "start": 4096,
-                  "size": 20967324
+                  "size": 409600
+                }
+              },
+              "root": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "image.raw",
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             },
@@ -1466,6 +1543,18 @@
                 "type": "org.osbuild.xfs",
                 "source": "root",
                 "target": "/"
+              },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
+              {
+                "name": "efi",
+                "type": "org.osbuild.fat",
+                "source": "efi",
+                "target": "/boot/efi"
               }
             ]
           },
@@ -1483,8 +1572,8 @@
               "prefix": {
                 "type": "partition",
                 "partlabel": "gpt",
-                "number": 1,
-                "path": "/boot/grub2"
+                "number": 2,
+                "path": "/grub2"
               }
             }
           }
@@ -11790,7 +11879,7 @@
       "profile-id": "sssd"
     },
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto processor.max_cstate=1 intel_idle.max_cstate=1",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto processor.max_cstate=1 intel_idle.max_cstate=1",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
     },
     "bootloader": "grub",
@@ -11799,9 +11888,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
-        "linux": "/boot/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto processor.max_cstate=1 intel_idle.max_cstate=1",
+        "initrd": "/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
+        "linux": "/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto processor.max_cstate=1 intel_idle.max_cstate=1",
         "title": "Red Hat Enterprise Linux (0-rescue-ffffffffffffffffffffffffffffffff) 9.0 (Plow)",
         "version": "0-rescue-ffffffffffffffffffffffffffffffff"
       },
@@ -11809,9 +11898,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.x86_64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto processor.max_cstate=1 intel_idle.max_cstate=1 $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.x86_64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto processor.max_cstate=1 intel_idle.max_cstate=1 $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.x86_64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.x86_64"
       }
@@ -12006,11 +12095,27 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
         "0",
         "0"
+      ],
+      [
+        "UUID=7B77-95E7",
+        "/boot/efi",
+        "vfat",
+        "defaults,uid=0,gid=0,umask=077,shortname=winnt",
+        "0",
+        "2"
       ]
     ],
     "groups": [
@@ -12721,8 +12826,28 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 10735269888,
+        "size": 10001266688,
+        "start": 736100352,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
+      },
+      {
+        "bootable": false,
+        "fstype": "vfat",
+        "label": null,
+        "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
+        "size": 209715200,
         "start": 2097152,
+        "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
+        "uuid": "7B77-95E7"
+      },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 211812352,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
         "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
       },
diff --git a/test/data/manifests/rhel_90-x86_64-openstack-boot.json b/test/data/manifests/rhel_90-x86_64-openstack-boot.json
index 66d1dbe7b..8530d4fe6 100644
--- a/test/data/manifests/rhel_90-x86_64-openstack-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-openstack-boot.json
@@ -337,7 +337,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "ro net.ifnames=0"
             }
           },
@@ -909,7 +909,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -953,6 +955,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 },
@@ -969,7 +977,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "ro net.ifnames=0",
               "legacy": "i386-pc",
               "uefi": {
@@ -1011,14 +1020,20 @@
                   "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
                 },
                 {
-                  "size": 204800,
+                  "size": 409600,
                   "start": 4096,
                   "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 8179612,
-                  "start": 208896,
+                  "size": 1024000,
+                  "start": 413696,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 6950812,
+                  "start": 1437696,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1044,7 +1059,7 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               }
             }
@@ -1053,6 +1068,23 @@
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1060,8 +1092,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 8179612
+                  "start": 1437696,
+                  "size": 6950812
                 }
               }
             }
@@ -1086,20 +1118,28 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              },
               "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               },
               "root": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 8179612
+                  "start": 1437696,
+                  "size": 6950812
                 }
               }
             },
@@ -1110,6 +1150,12 @@
                 "source": "root",
                 "target": "/"
               },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
               {
                 "name": "efi",
                 "type": "org.osbuild.fat",
@@ -1133,7 +1179,7 @@
                 "type": "partition",
                 "partlabel": "gpt",
                 "number": 2,
-                "path": "/boot/grub2"
+                "path": "/grub2"
               }
             }
           }
@@ -9525,7 +9571,7 @@
   "image-info": {
     "/etc/resolv.conf": [],
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 ro net.ifnames=0",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 ro net.ifnames=0",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
     },
     "bootloader": "grub",
@@ -9534,9 +9580,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.x86_64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 ro net.ifnames=0 $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.x86_64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 ro net.ifnames=0 $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.x86_64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.x86_64"
       }
@@ -9713,6 +9759,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -10262,21 +10316,31 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 4187961344,
-        "start": 106954752,
+        "size": 3558815744,
+        "start": 736100352,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
-        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
       {
         "bootable": false,
         "fstype": "vfat",
         "label": null,
         "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
-        "size": 104857600,
+        "size": 209715200,
         "start": 2097152,
         "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
         "uuid": "7B77-95E7"
       },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 211812352,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+      },
       {
         "bootable": false,
         "fstype": null,
diff --git a/test/data/manifests/rhel_90-x86_64-qcow2-boot.json b/test/data/manifests/rhel_90-x86_64-qcow2-boot.json
index d32bd06d5..2fe7cddde 100644
--- a/test/data/manifests/rhel_90-x86_64-qcow2-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-qcow2-boot.json
@@ -334,7 +334,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto"
             }
           },
@@ -898,7 +898,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -961,6 +963,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 },
@@ -977,7 +985,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
               "legacy": "i386-pc",
               "uefi": {
@@ -1019,14 +1028,20 @@
                   "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
                 },
                 {
-                  "size": 204800,
+                  "size": 409600,
                   "start": 4096,
                   "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 20762524,
-                  "start": 208896,
+                  "size": 1024000,
+                  "start": 413696,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19533724,
+                  "start": 1437696,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1052,7 +1067,7 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               }
             }
@@ -1061,6 +1076,23 @@
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1068,8 +1100,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 20762524
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             }
@@ -1094,20 +1126,28 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              },
               "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               },
               "root": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 20762524
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             },
@@ -1118,6 +1158,12 @@
                 "source": "root",
                 "target": "/"
               },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
               {
                 "name": "efi",
                 "type": "org.osbuild.fat",
@@ -1141,7 +1187,7 @@
                 "type": "partition",
                 "partlabel": "gpt",
                 "number": 2,
-                "path": "/boot/grub2"
+                "path": "/grub2"
               }
             }
           }
@@ -9431,7 +9477,7 @@
   "image-info": {
     "/etc/resolv.conf": [],
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
     },
     "bootloader": "grub",
@@ -9440,9 +9486,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.x86_64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.x86_64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.x86_64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.x86_64"
       }
@@ -9619,6 +9665,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -10166,21 +10220,31 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 10630412288,
-        "start": 106954752,
+        "size": 10001266688,
+        "start": 736100352,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
-        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
       {
         "bootable": false,
         "fstype": "vfat",
         "label": null,
         "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
-        "size": 104857600,
+        "size": 209715200,
         "start": 2097152,
         "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
         "uuid": "7B77-95E7"
       },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 211812352,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+      },
       {
         "bootable": false,
         "fstype": null,
diff --git a/test/data/manifests/rhel_90-x86_64-qcow2_customize-boot.json b/test/data/manifests/rhel_90-x86_64-qcow2_customize-boot.json
index cb3007669..7e75567f2 100644
--- a/test/data/manifests/rhel_90-x86_64-qcow2_customize-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-qcow2_customize-boot.json
@@ -392,7 +392,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto"
             }
           },
@@ -1202,7 +1202,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -1318,6 +1320,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 },
@@ -1334,7 +1342,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto debug",
               "legacy": "i386-pc",
               "uefi": {
@@ -1376,14 +1385,20 @@
                   "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
                 },
                 {
-                  "size": 204800,
+                  "size": 409600,
                   "start": 4096,
                   "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 20762524,
-                  "start": 208896,
+                  "size": 1024000,
+                  "start": 413696,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 19533724,
+                  "start": 1437696,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1409,7 +1424,7 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               }
             }
@@ -1418,6 +1433,23 @@
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1425,8 +1457,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 20762524
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             }
@@ -1451,20 +1483,28 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              },
               "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               },
               "root": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 20762524
+                  "start": 1437696,
+                  "size": 19533724
                 }
               }
             },
@@ -1475,6 +1515,12 @@
                 "source": "root",
                 "target": "/"
               },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
               {
                 "name": "efi",
                 "type": "org.osbuild.fat",
@@ -1498,7 +1544,7 @@
                 "type": "partition",
                 "partlabel": "gpt",
                 "number": 2,
-                "path": "/boot/grub2"
+                "path": "/grub2"
               }
             }
           }
@@ -12071,7 +12117,7 @@
   "image-info": {
     "/etc/resolv.conf": [],
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto debug",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto debug",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
     },
     "bootloader": "grub",
@@ -12080,9 +12126,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
-        "linux": "/boot/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
+        "initrd": "/initramfs-0-rescue-ffffffffffffffffffffffffffffffff.img",
+        "linux": "/vmlinuz-0-rescue-ffffffffffffffffffffffffffffffff",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto",
         "title": "Red Hat Enterprise Linux (0-rescue-ffffffffffffffffffffffffffffffff) 9.0 (Plow)",
         "version": "0-rescue-ffffffffffffffffffffffffffffffff"
       },
@@ -12090,9 +12136,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.x86_64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.x86_64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 console=tty0 console=ttyS0,115200n8 no_timer_check net.ifnames=0 crashkernel=auto $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.x86_64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.x86_64"
       }
@@ -12277,6 +12323,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -12855,21 +12909,31 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 10630412288,
-        "start": 106954752,
+        "size": 10001266688,
+        "start": 736100352,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
-        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
       {
         "bootable": false,
         "fstype": "vfat",
         "label": null,
         "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
-        "size": 104857600,
+        "size": 209715200,
         "start": 2097152,
         "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
         "uuid": "7B77-95E7"
       },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 211812352,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+      },
       {
         "bootable": false,
         "fstype": null,
diff --git a/test/data/manifests/rhel_90-x86_64-vhd-boot.json b/test/data/manifests/rhel_90-x86_64-vhd-boot.json
index 2cb945ee3..856897417 100644
--- a/test/data/manifests/rhel_90-x86_64-vhd-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-vhd-boot.json
@@ -334,7 +334,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "ro biosdevname=0 rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
             }
           },
@@ -898,7 +898,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -952,6 +954,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 },
@@ -968,7 +976,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "ro biosdevname=0 rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0",
               "legacy": "i386-pc",
               "uefi": {
@@ -1010,14 +1019,20 @@
                   "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
                 },
                 {
-                  "size": 204800,
+                  "size": 409600,
                   "start": 4096,
                   "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 8179612,
-                  "start": 208896,
+                  "size": 1024000,
+                  "start": 413696,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 6950812,
+                  "start": 1437696,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1043,7 +1058,7 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               }
             }
@@ -1052,6 +1067,23 @@
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1059,8 +1091,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 8179612
+                  "start": 1437696,
+                  "size": 6950812
                 }
               }
             }
@@ -1085,20 +1117,28 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              },
               "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               },
               "root": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 8179612
+                  "start": 1437696,
+                  "size": 6950812
                 }
               }
             },
@@ -1109,6 +1149,12 @@
                 "source": "root",
                 "target": "/"
               },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
               {
                 "name": "efi",
                 "type": "org.osbuild.fat",
@@ -1132,7 +1178,7 @@
                 "type": "partition",
                 "partlabel": "gpt",
                 "number": 2,
-                "path": "/boot/grub2"
+                "path": "/grub2"
               }
             }
           }
@@ -9427,7 +9473,7 @@
   "image-info": {
     "/etc/resolv.conf": [],
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 ro biosdevname=0 rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 ro biosdevname=0 rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
     },
     "bootloader": "grub",
@@ -9436,9 +9482,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.x86_64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 ro biosdevname=0 rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0 $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.x86_64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 ro biosdevname=0 rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0 $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.x86_64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.x86_64"
       }
@@ -9623,6 +9669,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -10164,21 +10218,31 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 4187961344,
-        "start": 106954752,
+        "size": 3558815744,
+        "start": 736100352,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
-        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
       {
         "bootable": false,
         "fstype": "vfat",
         "label": null,
         "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
-        "size": 104857600,
+        "size": 209715200,
         "start": 2097152,
         "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
         "uuid": "7B77-95E7"
       },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 211812352,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+      },
       {
         "bootable": false,
         "fstype": null,
diff --git a/test/data/manifests/rhel_90-x86_64-vmdk-boot.json b/test/data/manifests/rhel_90-x86_64-vmdk-boot.json
index 9eef96912..b629c9ea9 100644
--- a/test/data/manifests/rhel_90-x86_64-vmdk-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-vmdk-boot.json
@@ -334,7 +334,7 @@
           {
             "type": "org.osbuild.kernel-cmdline",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "kernel_opts": "ro net.ifnames=0"
             }
           },
@@ -882,7 +882,9 @@
           },
           {
             "type": "org.osbuild.fix-bls",
-            "options": {}
+            "options": {
+              "prefix": ""
+            }
           },
           {
             "type": "org.osbuild.locale",
@@ -926,6 +928,12 @@
                 {
                   "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
                   "vfs_type": "xfs",
+                  "path": "/boot",
+                  "options": "defaults"
+                },
+                {
+                  "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+                  "vfs_type": "xfs",
                   "path": "/",
                   "options": "defaults"
                 },
@@ -942,7 +950,8 @@
           {
             "type": "org.osbuild.grub2",
             "options": {
-              "root_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "root_fs_uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
+              "boot_fs_uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
               "kernel_opts": "ro net.ifnames=0",
               "legacy": "i386-pc",
               "uefi": {
@@ -984,14 +993,20 @@
                   "uuid": "FAC7F1FB-3E8D-4137-A512-961DE09A5549"
                 },
                 {
-                  "size": 204800,
+                  "size": 409600,
                   "start": 4096,
                   "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
                   "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33"
                 },
                 {
-                  "size": 8179612,
-                  "start": 208896,
+                  "size": 1024000,
+                  "start": 413696,
+                  "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+                  "uuid": "CB07C243-BC44-4717-853E-28852021225B"
+                },
+                {
+                  "size": 6950812,
+                  "start": 1437696,
                   "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
                   "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562"
                 }
@@ -1017,7 +1032,7 @@
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               }
             }
@@ -1026,6 +1041,23 @@
             "type": "org.osbuild.mkfs.xfs",
             "options": {
               "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+              "label": "boot"
+            },
+            "devices": {
+              "device": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              }
+            }
+          },
+          {
+            "type": "org.osbuild.mkfs.xfs",
+            "options": {
+              "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
               "label": "root"
             },
             "devices": {
@@ -1033,8 +1065,8 @@
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 8179612
+                  "start": 1437696,
+                  "size": 6950812
                 }
               }
             }
@@ -1059,20 +1091,28 @@
               ]
             },
             "devices": {
+              "boot": {
+                "type": "org.osbuild.loopback",
+                "options": {
+                  "filename": "disk.img",
+                  "start": 413696,
+                  "size": 1024000
+                }
+              },
               "efi": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
                   "start": 4096,
-                  "size": 204800
+                  "size": 409600
                 }
               },
               "root": {
                 "type": "org.osbuild.loopback",
                 "options": {
                   "filename": "disk.img",
-                  "start": 208896,
-                  "size": 8179612
+                  "start": 1437696,
+                  "size": 6950812
                 }
               }
             },
@@ -1083,6 +1123,12 @@
                 "source": "root",
                 "target": "/"
               },
+              {
+                "name": "boot",
+                "type": "org.osbuild.xfs",
+                "source": "boot",
+                "target": "/boot"
+              },
               {
                 "name": "efi",
                 "type": "org.osbuild.fat",
@@ -1106,7 +1152,7 @@
                 "type": "partition",
                 "partlabel": "gpt",
                 "number": 2,
-                "path": "/boot/grub2"
+                "path": "/grub2"
               }
             }
           }
@@ -9209,7 +9255,7 @@
   "image-info": {
     "/etc/resolv.conf": [],
     "boot-environment": {
-      "kernelopts": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 ro net.ifnames=0",
+      "kernelopts": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 ro net.ifnames=0",
       "saved_entry": "ffffffffffffffffffffffffffffffff-5.14.0-4.el9.x86_64"
     },
     "bootloader": "grub",
@@ -9218,9 +9264,9 @@
         "grub_arg": "--unrestricted",
         "grub_class": "kernel",
         "grub_users": "$grub_users",
-        "initrd": "/boot/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
-        "linux": "/boot/vmlinuz-5.14.0-4.el9.x86_64",
-        "options": "root=UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8 ro net.ifnames=0 $tuned_params",
+        "initrd": "/initramfs-5.14.0-4.el9.x86_64.img $tuned_initrd",
+        "linux": "/vmlinuz-5.14.0-4.el9.x86_64",
+        "options": "root=UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75 ro net.ifnames=0 $tuned_params",
         "title": "Red Hat Enterprise Linux (5.14.0-4.el9.x86_64) 9.0 (Plow)",
         "version": "5.14.0-4.el9.x86_64"
       }
@@ -9297,6 +9343,14 @@
     "fstab": [
       [
         "UUID=0194fdc2-fa2f-4cc0-81d3-ff12045b73c8",
+        "/boot",
+        "xfs",
+        "defaults",
+        "0",
+        "0"
+      ],
+      [
+        "UUID=6e4ff95f-f662-45ee-a82a-bdf44a2d0b75",
         "/",
         "xfs",
         "defaults",
@@ -9822,21 +9876,31 @@
         "fstype": "xfs",
         "label": "root",
         "partuuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562",
-        "size": 4187961344,
-        "start": 106954752,
+        "size": 3558815744,
+        "start": 736100352,
         "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
-        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+        "uuid": "6e4ff95f-f662-45ee-a82a-bdf44a2d0b75"
       },
       {
         "bootable": false,
         "fstype": "vfat",
         "label": null,
         "partuuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33",
-        "size": 104857600,
+        "size": 209715200,
         "start": 2097152,
         "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B",
         "uuid": "7B77-95E7"
       },
+      {
+        "bootable": false,
+        "fstype": "xfs",
+        "label": "boot",
+        "partuuid": "CB07C243-BC44-4717-853E-28852021225B",
+        "size": 524288000,
+        "start": 211812352,
+        "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4",
+        "uuid": "0194fdc2-fa2f-4cc0-81d3-ff12045b73c8"
+      },
       {
         "bootable": false,
         "fstype": null,