Expand description
Partition type GUIDs from the Discoverable Partitions Specification (DPS)
This module contains constants for partition type GUIDs as defined by the UAPI Group’s Discoverable Partitions Specification.
Reference: https://uapi-group.org/specifications/specs/discoverable_partitions_specification/
§Overview
The Discoverable Partitions Specification (DPS) defines standardized partition type GUIDs that enable automatic discovery and mounting of partitions without explicit configuration. This is a key enabler for bootc’s installation process and for modern systemd-based initramfs implementations.
§How bootc uses DPS
When bootc install to-disk creates partitions, it sets the appropriate DPS
partition type GUID based on the target CPU architecture. This enables several
important capabilities:
§Automatic root discovery
With a DPS-aware bootloader and initramfs (containing systemd-gpt-auto-generator),
the root filesystem can be discovered and mounted automatically without requiring
a root= kernel argument. The initramfs:
- Reads the EFI
LoaderDevicePartUUIDvariable to identify the boot disk - Scans the GPT for a partition with the architecture-specific root type GUID
- Mounts that partition as the root filesystem
§Architecture-specific partition types
Each CPU architecture has its own root partition type GUID. This prevents
accidentally booting a system on incompatible hardware. bootc uses
this_arch_root to select the correct GUID at compile time.
§Composefs and sealed boot
When using the composefs backend with UKIs (Unified Kernel Images), bootc can
omit the root= kernel argument entirely. This enables:
- Measured boot: The kernel command line is part of the UKI signature
- Simplified image building: No machine-specific kernel arguments needed
- systemd-repart integration: Future support for declarative partition management
§Partition types included
This module defines constants for:
- Root partitions: Architecture-specific root filesystem partitions
- USR partitions: Separate
/usrpartitions (included for spec completeness; not currently used by bootc) - Verity partitions: dm-verity hash partitions for integrity verification
- Verity signature partitions: Signed verity root hashes
- Special partitions: ESP, XBOOTLDR, swap, home, var, etc.
§Usage (internal)
This is an internal module. Within bootc, it is used like:
use crate::discoverable_partition_specification::{this_arch_root, ESP};
// Get the root partition type GUID for the current architecture
let root_type: &str = this_arch_root();
// ESP GUID is architecture-independent
let esp_type: &str = ESP;Constants§
- ESP
- EFI System Partition (ESP) for UEFI boot
- HOME
- Home partition (/home)
- LINUX_
DATA - Generic Linux filesystem data partition
- ROOT_
ALPHA - Root partition for Alpha architecture
- ROOT_
ARC - Root partition for ARC architecture
- ROOT_
ARM - Root partition for 32-bit ARM architecture
- ROOT_
ARM64 - Root partition for 64-bit ARM/AArch64 architecture
- ROOT_
IA64 - Root partition for Itanium/IA-64 architecture
- ROOT_
LOONGARC H64 - Root partition for 64-bit LoongArch architecture
- ROOT_
MIPS - Root partition for 32-bit MIPS Big Endian
- ROOT_
MIPS64 - Root partition for 64-bit MIPS Big Endian
- ROOT_
MIPS64_ LE - Root partition for 64-bit MIPS Little Endian
- ROOT_
MIPS_ LE - Root partition for 32-bit MIPS Little Endian
- ROOT_
PARISC - Root partition for PA-RISC/HPPA architecture
- ROOT_
PPC - Root partition for 32-bit PowerPC
- ROOT_
PPC64 - Root partition for 64-bit PowerPC Big Endian
- ROOT_
PPC64_ LE - Root partition for 64-bit PowerPC Little Endian
- ROOT_
RISC V32 - Root partition for 32-bit RISC-V
- ROOT_
RISC V64 - Root partition for 64-bit RISC-V
- ROOT_
S390 - Root partition for s390 architecture
- ROOT_
S390X - Root partition for s390x architecture
- ROOT_
TILEGX - Root partition for TILE-Gx architecture
- ROOT_
VERITY_ ALPHA - Root verity partition for Alpha
- ROOT_
VERITY_ ARC - Root verity partition for ARC
- ROOT_
VERITY_ ARM - Root verity partition for 32-bit ARM
- ROOT_
VERITY_ ARM64 - Root verity partition for 64-bit ARM/AArch64
- ROOT_
VERITY_ IA64 - Root verity partition for Itanium/IA-64
- ROOT_
VERITY_ LOONGARC H64 - Root verity partition for 64-bit LoongArch
- ROOT_
VERITY_ MIPS - Root verity partition for 32-bit MIPS Big Endian
- ROOT_
VERITY_ MIPS64 - Root verity partition for 64-bit MIPS Big Endian
- ROOT_
VERITY_ MIPS64_ LE - Root verity partition for 64-bit MIPS Little Endian
- ROOT_
VERITY_ MIPS_ LE - Root verity partition for 32-bit MIPS Little Endian
- ROOT_
VERITY_ PARISC - Root verity partition for PA-RISC
- ROOT_
VERITY_ PPC - Root verity partition for 32-bit PowerPC
- ROOT_
VERITY_ PPC64 - Root verity partition for 64-bit PowerPC Big Endian
- ROOT_
VERITY_ PPC64_ LE - Root verity partition for 64-bit PowerPC Little Endian
- ROOT_
VERITY_ RISC V32 - Root verity partition for 32-bit RISC-V
- ROOT_
VERITY_ RISC V64 - Root verity partition for 64-bit RISC-V
- ROOT_
VERITY_ S390 - Root verity partition for s390
- ROOT_
VERITY_ S390X - Root verity partition for s390x
- ROOT_
VERITY_ SIG_ ALPHA - Root verity signature partition for Alpha
- ROOT_
VERITY_ SIG_ ARC - Root verity signature partition for ARC
- ROOT_
VERITY_ SIG_ ARM - Root verity signature partition for 32-bit ARM
- ROOT_
VERITY_ SIG_ ARM64 - Root verity signature partition for 64-bit ARM/AArch64
- ROOT_
VERITY_ SIG_ IA64 - Root verity signature partition for Itanium/IA-64
- ROOT_
VERITY_ SIG_ LOONGARC H64 - Root verity signature partition for 64-bit LoongArch
- ROOT_
VERITY_ SIG_ MIPS - Root verity signature partition for 32-bit MIPS Big Endian
- ROOT_
VERITY_ SIG_ MIPS64 - Root verity signature partition for 64-bit MIPS Big Endian
- ROOT_
VERITY_ SIG_ MIPS64_ LE - Root verity signature partition for 64-bit MIPS Little Endian
- ROOT_
VERITY_ SIG_ MIPS_ LE - Root verity signature partition for 32-bit MIPS Little Endian
- ROOT_
VERITY_ SIG_ PARISC - Root verity signature partition for PA-RISC
- ROOT_
VERITY_ SIG_ PPC - Root verity signature partition for 32-bit PowerPC
- ROOT_
VERITY_ SIG_ PPC64 - Root verity signature partition for 64-bit PowerPC Big Endian
- ROOT_
VERITY_ SIG_ PPC64_ LE - Root verity signature partition for 64-bit PowerPC Little Endian
- ROOT_
VERITY_ SIG_ RISC V32 - Root verity signature partition for 32-bit RISC-V
- ROOT_
VERITY_ SIG_ RISC V64 - Root verity signature partition for 64-bit RISC-V
- ROOT_
VERITY_ SIG_ S390 - Root verity signature partition for s390
- ROOT_
VERITY_ SIG_ S390X - Root verity signature partition for s390x
- ROOT_
VERITY_ SIG_ TILEGX - Root verity signature partition for TILE-Gx
- ROOT_
VERITY_ SIG_ X86 - Root verity signature partition for 32-bit x86
- ROOT_
VERITY_ SIG_ X86_ 64 - Root verity signature partition for 64-bit x86/AMD64
- ROOT_
VERITY_ TILEGX - Root verity partition for TILE-Gx
- ROOT_
VERITY_ X86 - Root verity partition for 32-bit x86
- ROOT_
VERITY_ X86_ 64 - Root verity partition for 64-bit x86/AMD64
- ROOT_
X86 - Root partition for 32-bit x86
- ROOT_
X86_ 64 - Root partition for 64-bit x86/AMD64
- SRV
- Server data partition (/srv)
- SWAP
- Swap partition
- TMP
- Temporary data partition (/var/tmp)
- USR_
ALPHA - /usr partition for Alpha architecture
- USR_ARC
- /usr partition for ARC architecture
- USR_ARM
- /usr partition for 32-bit ARM
- USR_
ARM64 - /usr partition for 64-bit ARM/AArch64
- USR_
IA64 - /usr partition for Itanium/IA-64
- USR_
LOONGARC H64 - /usr partition for 64-bit LoongArch
- USR_
MIPS - /usr partition for 32-bit MIPS Big Endian
- USR_
MIPS64 - /usr partition for 64-bit MIPS Big Endian
- USR_
MIPS64_ LE - /usr partition for 64-bit MIPS Little Endian
- USR_
MIPS_ LE - /usr partition for 32-bit MIPS Little Endian
- USR_
PARISC - /usr partition for PA-RISC
- USR_PPC
- /usr partition for 32-bit PowerPC
- USR_
PPC64 - /usr partition for 64-bit PowerPC Big Endian
- USR_
PPC64_ LE - /usr partition for 64-bit PowerPC Little Endian
- USR_
RISC V32 - /usr partition for 32-bit RISC-V
- USR_
RISC V64 - /usr partition for 64-bit RISC-V
- USR_
S390 - /usr partition for s390
- USR_
S390X - /usr partition for s390x
- USR_
TILEGX - /usr partition for TILE-Gx
- USR_
VERITY_ ALPHA - /usr verity partition for Alpha
- USR_
VERITY_ ARC - /usr verity partition for ARC
- USR_
VERITY_ ARM - /usr verity partition for 32-bit ARM
- USR_
VERITY_ ARM64 - /usr verity partition for 64-bit ARM/AArch64
- USR_
VERITY_ IA64 - /usr verity partition for Itanium/IA-64
- USR_
VERITY_ LOONGARC H64 - /usr verity partition for 64-bit LoongArch
- USR_
VERITY_ MIPS - /usr verity partition for 32-bit MIPS Big Endian
- USR_
VERITY_ MIPS64 - /usr verity partition for 64-bit MIPS Big Endian
- USR_
VERITY_ MIPS64_ LE - /usr verity partition for 64-bit MIPS Little Endian
- USR_
VERITY_ MIPS_ LE - /usr verity partition for 32-bit MIPS Little Endian
- USR_
VERITY_ PARISC - /usr verity partition for PA-RISC
- USR_
VERITY_ PPC - /usr verity partition for 32-bit PowerPC
- USR_
VERITY_ PPC64 - /usr verity partition for 64-bit PowerPC Big Endian
- USR_
VERITY_ PPC64_ LE - /usr verity partition for 64-bit PowerPC Little Endian
- USR_
VERITY_ RISC V32 - /usr verity partition for 32-bit RISC-V
- USR_
VERITY_ RISC V64 - /usr verity partition for 64-bit RISC-V
- USR_
VERITY_ S390 - /usr verity partition for s390
- USR_
VERITY_ S390X - /usr verity partition for s390x
- USR_
VERITY_ SIG_ ALPHA - /usr verity signature partition for Alpha
- USR_
VERITY_ SIG_ ARC - /usr verity signature partition for ARC
- USR_
VERITY_ SIG_ ARM - /usr verity signature partition for 32-bit ARM
- USR_
VERITY_ SIG_ ARM64 - /usr verity signature partition for 64-bit ARM/AArch64
- USR_
VERITY_ SIG_ IA64 - /usr verity signature partition for Itanium/IA-64
- USR_
VERITY_ SIG_ LOONGARC H64 - /usr verity signature partition for 64-bit LoongArch
- USR_
VERITY_ SIG_ MIPS - /usr verity signature partition for 32-bit MIPS Big Endian
- USR_
VERITY_ SIG_ MIPS64 - /usr verity signature partition for 64-bit MIPS Big Endian
- USR_
VERITY_ SIG_ MIPS64_ LE - /usr verity signature partition for 64-bit MIPS Little Endian
- USR_
VERITY_ SIG_ MIPS_ LE - /usr verity signature partition for 32-bit MIPS Little Endian
- USR_
VERITY_ SIG_ PARISC - /usr verity signature partition for PA-RISC
- USR_
VERITY_ SIG_ PPC - /usr verity signature partition for 32-bit PowerPC
- USR_
VERITY_ SIG_ PPC64 - /usr verity signature partition for 64-bit PowerPC Big Endian
- USR_
VERITY_ SIG_ PPC64_ LE - /usr verity signature partition for 64-bit PowerPC Little Endian
- USR_
VERITY_ SIG_ RISC V32 - /usr verity signature partition for 32-bit RISC-V
- USR_
VERITY_ SIG_ RISC V64 - /usr verity signature partition for 64-bit RISC-V
- USR_
VERITY_ SIG_ S390 - /usr verity signature partition for s390
- USR_
VERITY_ SIG_ S390X - /usr verity signature partition for s390x
- USR_
VERITY_ SIG_ TILEGX - /usr verity signature partition for TILE-Gx
- USR_
VERITY_ SIG_ X86 - /usr verity signature partition for 32-bit x86
- USR_
VERITY_ SIG_ X86_ 64 - /usr verity signature partition for 64-bit x86/AMD64
- USR_
VERITY_ TILEGX - /usr verity partition for TILE-Gx
- USR_
VERITY_ X86 - /usr verity partition for 32-bit x86
- USR_
VERITY_ X86_ 64 - /usr verity partition for 64-bit x86/AMD64
- USR_X86
- /usr partition for 32-bit x86
- USR_
X86_ 64 - /usr partition for 64-bit x86/AMD64
- VAR
- Variable data partition (/var)
- XBOOTLDR
- Extended Boot Loader Partition
Functions§
- this_
arch_ root - Returns the root partition GUID for the current architecture.