The Silverblue installer crashes when trying to configure a new encrypted BTRFS volume

Hello there,
I was attempting to install Fedora Silverblue alongside Windows on my computer, but I’ve come to an unexpected issue. While configuring the partitioning on my drive through the Blivet GUI (I was going to install Silverblue on the same drive as Windows), I tried creating a new BTRFS partition with LUKS2 encryption. But once clicking “OK” to confirm the creation of this new partition, an “Unknown error ocurred”, leading to Anaconda terminating itself. The error was “‘DeviceFormat’ object has no attribute ‘_header_size’”, which seems to be a problem with part of the Blivet GUI program. Here is the traceback for reference (copied from screenshots):

Traceback (most recent call first):
  File "/usr/lib/python3.13/site-packages/blivetgui/blivet_utils.py", line 1346, in add_device
    actions = add_function(self, user_input)
  File "/usr/lib/python3.13/site-packages/blivetgui/blivet_utils.py", line 1037, in _create_partition
    actions.extend(self._create_format(user_input, luks_dev))
             ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/blivetgui/blivet_utils.py", line 935, in _create_format
    actions = self._create_btrfs_format(user_input, device)
  File "/usr/lib/python3.13/site-packages/blivetgui/blivet_utils.py", line 958, in _create_btrfs_format
    device.format = btrfs_fmt
    ^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/blivet/treads.py", line 935, in run_with_lock
    return m(*args, **kwargs)
  File "/usr/lib/python3.13/site-packages/blivet/devices/storage.py", line 836, in <lambda>
    lambda d, f: d._set_format(f),
                ~~~~~~~~~~~~~~^^^
  File "/usr/lib/python3.13/site-packages/blivet/treads.py", line 935, in run_with_lock
    return m(*args, **kwargs)
  File "/usr/lib/python3.13/site-packages/blivet/devices/storage.py", line 786, in _set_format
    if fmt.max_size and fmt.max_size < self.size:
                                    ^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/blivet/treads.py", line 935, in run_with_lock
    return m(*args, **kwargs)
  File "/usr/lib/python3.13/site-packages/blivet/devices/luks.py", line 80, in _get_size
    size = self.raw_device.size - self.raw_device.format._header_size.
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'DeviceFormat' object has no attribute '_header_size'

I’d like to ask if anyone has yet experienced this issue and if I should report this as a bug. Let me know if you need detailed reproduction steps (you pretty much juat need to create a partition, make it BTRFS, select encryption, select LUKS2, write a password and click “OK”).

There are some known limitations with Silverblue and manual partitioning (as well as dual booting). There’s a reference to a tracker issue there as well.

As an alternative, if you leave the whole disk space intended to be used by Silverblue as unallocated free space (i.e. unformatted), then choose Automatic Partitioning with Encryption in the Anaconda installer, it might work (the system partition will be LUKS2 encrypted).

Make sure necessary backup measures are in place.

This is likely a bug in the blivet package and should be reported to it in bugzilla.

Automatic partitioning did work. I’ve now managed to install Silverblue. Thank you!

1 Like

I’ve already made an account, will report it once I find the time. Just to make sure I don’t report it to the wrong place, this is where I should report it, right?

Yes, this is the right place