Where is the code responsible for fedora silverblue 37 autopart that generates the multiple btrfs subvolumes?

So I’ve been looking at my installed fedora silverblue 37 layout in terms of partitions on my m.2 sata ssd.

I appreciate all this layout, but I am curious to find the exact code in the installer or kickstart files that actually made that happen. When I got to pykickstart “autopart” I really got lost in that code, but I didn’t find /var/home, /var, /sysroot/ostree/deploy/fedora/var, /usr, /etc, /, /sysroot anywhere in there. Please could anybody tell me where to find that? Is it in anaconda? create-appliance? Why am I asking? Because I would like to repeat this for the Starfive VisionFive 2 SBC’s storage layout to attempt to create fedora silverblue 37 image on top of that layout for the VF2 SBC. Thank you in advance.

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 476.9G  0 disk 
├─sda1   8:1    0   600M  0 part /boot/efi
├─sda2   8:2    0     1G  0 part /boot
└─sda3   8:3    0 475.4G  0 part /var/home
                                 /var
                                 /sysroot/ostree/deploy/fedora/var
                                 /usr
                                 /etc
                                 /
                                 /sysroot
zram0  252:0    0     8G  0 disk [SWAP]

/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
/dev/sda2 on /boot type ext4 (rw,relatime,seclabel)
/dev/sda3 on /var/home type btrfs (rw,relatime,seclabel,compress=zstd:1,space_cache,subvolid=256,subvol=/home)
/dev/sda3 on /var type btrfs (rw,relatime,seclabel,compress=zstd:1,space_cache,subvolid=258,subvol=/root)
/dev/sda3 on /sysroot/ostree/deploy/fedora/var type btrfs (rw,relatime,seclabel,compress=zstd:1,space_cache,subvolid=258,subvol=/root)
/dev/sda3 on /usr type btrfs (ro,relatime,seclabel,compress=zstd:1,space_cache,subvolid=258,subvol=/root)
/dev/sda3 on /etc type btrfs (rw,relatime,seclabel,compress=zstd:1,space_cache,subvolid=258,subvol=/root)
/dev/sda3 on / type btrfs (rw,relatime,seclabel,compress=zstd:1,space_cache,subvolid=258,subvol=/root)
/dev/sda3 on /sysroot type btrfs (ro,relatime,seclabel,compress=zstd:1,space_cache,subvolid=258,subvol=/root)

Without looking at the code… I believe that Anaconda passes the autopart configuration to Blivet. I’m not sure exactly where, though…

Thank you. I got some hits:

I spent a long while looking in that project. I admit this is way over my head. I didn’t find anywhere there
that passes anything like these directories in on go as parameters anywhere. Neither in kickstart.ks scripts or in anaconda .py sources. It seems anaconda is used to install silverblue. I found some change comments discussing ostree related to silverblue.

i was specifically looking for one spot of code that mentions all this or at least a larger subset of these and never found it.

/boot/efi
/boot
/var/home
/var
/sysroot/ostree/deploy/fedora/var
/usr
/etc
/
/sysroot

I’d recommend starting here:

https://pagure.io/workstation-ostree-config

Also,

@dustymabe might be the one to ask about any of the rpm-ostree Fedora variants and how they’re built.

2 Likes