Eu não penso assim.
O Btrfs é projetado para executar muitas operações diferentes on-line, ou seja, com o sistema de arquivos montado. Essa é uma boa maneira de evitar ter que codificar tudo duas vezes, uma vez no driver do kernel para ações on-line e uma vez nas ferramentas do espaço do usuário para ações off-line. Não codificar essas coisas duas vezes leva a menos bugs e menos chances de que a funcionalidade in-kernel e userspace divirjam de alguma forma.
O outro método que pensei seria criar um pequeno sistema de arquivos Btrfs com todas as configurações e subvolumes que você deseja, desmontá-lo e obter uma imagem em nível de bloco dele. Em seguida, implemente esse estilo de cortador de cookies de imagem em muitos novos dispositivos de bloco. Mas isso não ajuda em nada, já que agora você tem que montar o sistema de arquivos para redimensioná-lo (crescer) para o tamanho do dispositivo de bloco subjacente.