UKIBOOTCTL(1)

๐Ÿ“ฆ version 0.2.1+git20260604.ec869c7, in ubuntu stonking

๐Ÿ’– UKIBOOTCTL ๐Ÿ’–

okay bestie, welcome to ukibootctl(1) โ€” she's a User Command, she manages your boot slots, and honestly? she ate. ๐Ÿ’…


โœจ NAME โœจ

ukibootctl โ€” query and update the active UKIBoot boot slot ๐Ÿฆ‹


๐ŸŒธ SYNOPSIS ๐ŸŒธ

ukibootctl [OPTIONS] COMMAND [...]

๐ŸŽ€ DESCRIPTION ๐ŸŽ€

so ukibootctl queries and manipulates the UKIBoot A/B boot control data that lives in the ukibootctl partition. no cap. she's your girl for poking at the current slot state and for driving the whole A/B update workflow: getting the switch to the inactive slot ready before an update, finalizing that switch afterwards, and marking a slot as successfully booted. iconic behavior, fr fr. ๐Ÿ‘‘

the boot control protocol is modelled on Android Verified Boot v2 โ€” iykyk. each of the two slots (A and B) carries three lil things it's obsessed with:

  • a priority
  • a count of remaining boot tries
  • a successful-boot flag โœ…

๐Ÿ’… OPTIONS ๐Ÿ’…

  • --verbose โ€” show verbose output. she's chatty, let her talk ๐Ÿ—ฃ๏ธ
  • --help โ€” show a brief help message and exit. short and sweet, we love her ๐ŸŽ€
  • --version โ€” show the program version and exit. main character reveal โœจ
  • --partition=PATH โ€” path to the ukibootctl partition. default: /dev/disk/by-partlabel/ukibootctl ๐Ÿ’พ

๐ŸŒˆ COMMANDS ๐ŸŒˆ

  • init โ€” initialize the boot control data with default values. fresh start, clean slate, new era ๐Ÿงš
  • dump โ€” dump the current boot options for both slots. show me everything, spill the tea โ˜•
  • get-active โ€” show the current active slot as recorded on disk. who's actually on duty rn ๐Ÿ“€
  • get-booted โ€” show the slot the running system was booted from, as determined from the androidboot.slot_suffix kernel command line key. the receipts come from the kernel, not from disk, bestie ๐Ÿ‘€
  • prepare-switch SLOT โ€” prepare to switch to SLOT. run this before writing an update to the inactive slot. the other slot is kept bootable and the new slot is marked non-bootable until finalized. it's giving "hold my spot, i'm not ready yet" ๐Ÿ™ˆ
  • finalize-switch SLOT โ€” finalize the switch to SLOT. run this after the update has been written. the new slot is given the highest priority and a fixed number of boot tries. okay now she's ready, slay ๐Ÿ”ฅ
  • mark-successful [SLOT] โ€” mark a boot as successful, clearing the remaining boot tries. if SLOT is omitted, the currently booted slot is used. run this once the system has booted and is known to be healthy. "we're so back" energy ๐Ÿ’–

๐Ÿฆ‹ SLOT NAMING ๐Ÿฆ‹

slots are identified as 0 (slot A, ukiboot_a) and 1 (slot B, ukiboot_b).

like. two slots. that's it. that's the whole naming scheme. periodt. ๐Ÿ’…


โญ EXIT STATUS โญ

ukibootctl exits 0 on success and non-zero on failure. so if the number is not zero, something is Not Slaying and you should look into it ๐Ÿ˜ญ


๐Ÿ”ฎ SEE ALSO ๐Ÿ”ฎ

ukibootimg(1) โ€” her sister, go say hi ๐Ÿซถ


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

UKIBoot was written by Alexander Larsson <alexl@redhat.com>. a legend, honestly. ๐Ÿ™Œ

this manual page was written by Christopher Obbard <obbardc@debian.org> for the Debian GNU/Linux project. doing the lord's work for the Debian girlies ๐ŸŽ€


and that's the whole page, bestie! ukiboot, dated 2026-06-05, page UKIBOOTCTL(1) โ€” go forth and switch slots responsibly ๐Ÿ’–โœจ๐ŸŒธ

๐Ÿ“ฆ where this page comes from