BCVK-TO-DISK(8)
π NAME π
ok so bcvk-to-disk β bestie, this is the girl that installs bootc images onto actual persistent disk images. like, real disks. bootable ones. she's that girl. part of the bcvk manual, section 8 (system administration, iykyk).
β¨ SYNOPSIS β¨
bcvk to-disk [-h|--help] [OPTIONS] IMAGE
π¦ DESCRIPTION π¦
She does the whole automated installation of bootc containers onto disk images, using ephemeral VMs as her little installation environment. Multiple filesystems? yes. Custom sizing? absolutely. Bootable disk images ready for production deployment? periodt. π
The installation process, step by step, no skipping:
- Creates a new disk image with the specified filesystem layout
- Boots an ephemeral VM with the target container image
- Runs
bootc install to-diskwithin the VM to install to the disk - Produces a bootable disk image that can be deployed anywhere
πΈ OPTIONS πΈ
SOURCE_IMAGEβ the container image to install. This argument is required. no source, no slay.TARGET_DISKβ the target disk/device path. Also required, bestie. you gotta tell her where.--filesystem=FILESYSTEMβ root filesystem type, likeext4,xfs,btrfs. pick your vibe.--root-size=ROOT_SIZEβ root filesystem size (e.g.,'10G','5120M').--storage-path=STORAGE_PATHβ path to host container storage. she'll auto-detect it if you don't specify, so no stress.--target-transport=TARGET_TRANSPORTβ the transport; e.g.oci,oci-archive,containers-storage. Defaults toregistry.--karg=KARGβ set a kernel argument.--composefs-backendβ default to composefs-native storage.--bootloader=BOOTLOADERβ which bootloader to use for the composefs-native backend.--allow-missing-fsverityβ allow installation without fs-verity support for the composefs-native backend. she's being lenient, okay?--disk-size=DISK_SIZEβ disk size to create (e.g.10G,5120M, or a plain number for bytes).--format=FORMATβ output disk image format.
Possible values:
rawqcow2
Default: raw
--itype=ITYPEβ instance type (e.g.,u1.nano,u1.small,u1.medium). Overridesvcpus/memoryif specified. she said I'm in charge now.--memory=MEMORYβ memory size (e.g.4G,2048M, or a plain number for MB).
Default: 4G
--vcpus=VCPUSβ number of vCPUs (overridden by--itypeif specified, so watch the hierarchy bestie).--consoleβ connect the QEMU console to the container's stdio (visible viapodman logs/attach).--debugβ enable debug mode (drop to shell instead of running QEMU). π--virtio-serial-out=NAME:FILEβ add virtio-serial device with output to file (format:name:/path/to/file).--execute=EXECUTEβ execute command inside VM via systemd and capture output.-K,--ssh-keygenβ generate SSH keypair and inject via systemd credentials. π--virtiofsd=VIRTIOFSD_BINARYβ path tovirtiofsdbinary (overrides auto-detection).--output=OUTPUTβ select how VM output is presented.
Possible values:
consolejournal
Default: console
--log-dir=STREAMS=DIRβ write VM log streams to files inDIR.--install-log=INSTALL_LOGβ configure logging forbootc installby setting theRUST_LOGenvironment variable.--label=LABELβ add metadata to the container inkey=valueform.--dry-runβ check if the disk would be regenerated without actually creating it. manifesting β¨ without the commitment.--bootc-install-podman-arg=BOOTC_INSTALL_PODMAN_ARGSβ pass an extra argument to the innerpodman runthat executesbootc install. May be specified multiple times. Useful for testing edge cases; for example--bootc-install-podman-arg=--read-onlystresses the install path by making the container rootfs read-only, which exercises bootloader code paths that avoid writing to the host's read-only/boot(similar to osbuild sandbox environments).
π ARGUMENTS π
IMAGEβ container image reference to install (e.g.,registry.example.com/my-bootc:latest).
π EXAMPLES π
Create a raw disk image:
bcvk to-disk quay.io/centos-bootc/centos-bootc:stream10 /path/to/disk.img
Create a qcow2 disk image (more compact):
bcvk to-disk --format qcow2 quay.io/fedora/fedora-bootc:42 /path/to/fedora.qcow2
Create with specific disk size:
bcvk to-disk --disk-size 20G quay.io/fedora/fedora-bootc:42 /path/to/large-disk.img
Create with custom filesystem and root size:
bcvk to-disk --filesystem btrfs --root-size 15G quay.io/fedora/fedora-bootc:42 /path/to/btrfs-disk.img
Development workflow β test then create deployment image:
# Test the container as a VM first
bcvk ephemeral run-ssh my-app
# If good, create the deployment image
bcvk to-disk my-app /tmp/my-app.img
π VERSION π
v0.1.0
ok that's literally the whole page bestie π«Ά this one's v0.1.0, and yeah she lives in the bcvk man page set. go make some bootable disk images, you've got this. πβ¨
π¦ where this page comes from
- fedora 43: bcvk 0.19.0-1.fc43
- fedora 43: bcvk 0.21.0-1.fc43 Β· Apache-2.0 OR MIT
- fedora 44: bcvk 0.19.0-1.fc44
- fedora 44: bcvk 0.21.0-1.fc44 Β· Apache-2.0 OR MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms