Install a bootc container to a physical disk
Synopsis
Install a bootc compatible container image to a physical disk.
This command will:
- Validate the target disk
- Pull the container image (unless --skip-pull is specified)
- Wipe the disk (after confirmation)
- Create partitions (EFI: 2GB, boot: 1GB, root1: 12GB, root2: 12GB, var: remaining)
- Extract container filesystem
- Configure system and install bootloader
- Verify the installation
The dual root partitions enable A/B updates for system resilience.
Supported filesystems: btrfs (default), ext4
With --json flag, outputs streaming JSON Lines for progress updates.
Example: nbc install --image quay.io/example/myimage:latest --device /dev/sda nbc install --image localhost/myimage --device /dev/nvme0n1 --filesystem ext4 nbc install --image localhost/myimage --device /dev/nvme0n1 --karg console=ttyS0 nbc install --image localhost/myimage --device /dev/sda --json nbc install --local-image sha256:abc123 --device /dev/sda # Use staged image nbc install --device /dev/sda # Auto-detect staged image on ISO
nbc install [flags]
Options
-d, --device string Target disk device (required)
--encrypt Enable LUKS full disk encryption for root and var partitions
-f, --filesystem string Filesystem type for root and var partitions (ext4, btrfs) (default "btrfs")
-h, --help help for install
-i, --image string Container image reference (required unless --local-image or staged image exists)
-k, --karg stringArray Kernel argument to pass (can be specified multiple times)
--keyfile string Path to file containing LUKS passphrase (alternative to --passphrase)
--local-image string Use staged local image by digest (auto-detects from /var/cache/nbc/staged-install/ if not specified)
--passphrase string LUKS passphrase (required when --encrypt is set, unless --keyfile is provided)
--root-password-file string Path to file containing root password to set during installation
--skip-pull Skip pulling the image (use already pulled image)
--tpm2 Enroll TPM2 for automatic LUKS unlock (no PCR binding)
Options inherited from parent commands
-n, --dry-run dry run mode (no actual changes)
--json output in JSON format for machine-readable output
-v, --verbose verbose output
SEE ALSO
- nbc - A bootc container installer for physical disks