Provisioning with qemu and libvirt
First, use the bootc-image-builder
project to make a .raw
or .qcow2
disk image from your container
image.
The default base images do not have any default credentials to log in. If you have not configured any, and you are directly passing the default base image into the below command, you will not be able to log into the virtual machine. See Authentication as well as Building containers for more information.
Example bootc-image-builder invocation
Particularly when using container images that require a pull secret,
you will need to ensure the image is pulled into your container storage
before invoking the below command via e.g. podman pull $CONTAINER_IMAGE .
The issue of authentication and image pulling is being discussed in
this PR.
|
# Pull the bootable container image
sudo podman pull $CONTAINER_IMAGE
# Create an output directory to write the qcow2 file to
mkdir -p output
# Create an empty config.toml for bootc-image-builder
sudo podman run \
--rm \
-it \
--privileged \
--pull=newer \
--security-opt label=type:unconfined_t \
-v $(pwd)/output:/output \
-v /var/lib/containers/storage:/var/lib/containers/storage \
quay.io/centos-bootc/bootc-image-builder:latest \
--local \
--type qcow2 \
$CONTAINER_IMAGE
There is no default root filesystem type configured for the Fedora
base images; you can specify one via the
etc. For supported filesystem types in the base images, see Storage. |
(Note that there are more options, such as including a config.json
which
can inject users and SSH keys)
libvirt
The libvirt project is supported on several platforms but is very common on Linux environments.
Here is a very simplified example virt-install
invocation:
sudo virt-install \
--name fedora-bootc \
--cpu host \
--vcpus 4 \
--memory 4096 \
--import --disk ./output/qcow2/disk.qcow2,format=qcow2 \
--os-variant fedora-eln
More information about virt-install
is available in its man page,
as well as other places such as Red Hat Enterprise Linux documentation.
qemu
Using "raw" qemu in some cases gives more control than higher level tools
such as libvirt
, but introduces architecture and platform specifics.
Want to help? Learn how to contribute to Fedora Docs ›