Is there a way to achieve manually btrfs subvolumes on CoreOS

I am trying to achieve almost same btrfs subvolume partition table like Fedora Silverblue.

My silverblue subvolumes (its default fedora silverblue partition table):

$ sudo btrfs subvolume list /
ID 256 gen 155434 top level 5 path var
ID 257 gen 155434 top level 5 path home
ID 258 gen 155429 top level 5 path root

I know there is a waiting issue for subvolume ignition support here: Support creating and mounting Btrfs subvolumes · Issue #890 · coreos/ignition · GitHub.

Just I want to know if there is a manual way to do that atm.

AFAIK, /etc is outside of the immutable portion of the ostree, so you should be able to setup the subvols and add them to /etc/stab using the UUID from sudo blkid like this (note that /home is a subvol with the same UUID as / in this example and the subvol option specifies which subvol to mount to that location):

UUID=4b26d2ad-8c5b-4086-a5da-fa114663c9f9 /                       btrfs   subvol=root,x-systemd.device-timeout=0 0 0
UUID=fcc0be44-1392-45e5-af17-03672387d7d9 /boot                   ext4    defaults        1 2
UUID=7945-47B0          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
UUID=4b26d2ad-8c5b-4086-a5da-fa114663c9f9 /home                   btrfs   subvol=home,x-systemd.device-timeout=0 0 0

I could be wrong but I think you might want /home to be at /var/home instead on CoreOS.

I don’t think It will work without mounting root partition (with live cd or on another distribution) and then creating subvolumes and moving/copying files to corresponding subvolume folders. The problem I have, finding correct subvolume/folder match for copy. fstab is the last part of the process.