RAUC(1)
πΈ RAUC(1) β the rauc manual, but make it make sense π
okay bestie, so this is the manual page for rauc, aka safe and secure updating, and I'm gonna walk you through it like we're on facetime. the manual name you're looking at is RAUC β that's the program, that's the page, that's the whole vibe. β¨
π NAME
rauc β safe and secure updating. literally that's it, that's the whole thing, and honestly? iconic. π
π SYNOPSIS
rauc [OPTIONS...] bundle INPUTDIR BUNDLE
rauc [OPTIONS...] resign INBUNDLE OUTBUNDLE
rauc [OPTIONS...] extract BUNDLE OUTPUTDIR
rauc [OPTIONS...] extract-signature BUNDLE OUTPUTSIG
rauc [OPTIONS...] convert INBUNDLE OUTBUNDLE
rauc [OPTIONS...] encrypt INBUNDLE OUTBUNDLE
rauc [OPTIONS...] install BUNDLE
rauc [OPTIONS...] info BUNDLE
rauc [OPTIONS...] mount BUNDLE
rauc [OPTIONS...] status [SLOTNAME | mark-{good,bad,active}
[booted|other|SLOTNAME]]
rauc [OPTIONS...] write-slot SLOTNAME IMAGEFILE
the way that last status line is doing the most with those bracketsβ¦ she's complex, she's worth it, we love her. π«Ά
π¦ DESCRIPTION
so RAUC is a lightweight update client that runs on an Embedded Linux device and reliably controls the procedure of updating the device with a new firmware. no cap, that's the job description.
RAUC is also the tool on the host system that is used to create, inspect and modify update files (aka "bundles") for the device. so she does both sides of the group chat, lowkey main character energy. π
This manual page documents briefly the rauc command line utility β like, the short version.
It was written for the Debian GNU/Linux distribution to satisfy the packaging requirements. Thus it should only serve as a summary β so ngl, reading the comprehensive online manual (https://rauc.readthedocs.io/) is recommended. that one's the full lore, this is the recap. π
β¨ OPTIONS
The following general options can be used with most commands, however not all combinations make sense. (like, they're not all gonna slay together, y'know?)
-cFILENAME,--conf=FILENAME β use the given config file instead of the one at the compiled-in default path-CSECTION:KEY=VALUE,--confopt=SECTION:KEY=VALUE β Override parameters from the config file with the specified configuration settings. If specified parameter is not present in the config file it will still be set by this option. (she WILL be added, periodt) πββοΈ--keyring=PEMFILE β use specific keyring file--mount=PATH β mount prefix (/mnt/raucby default)-d,--debugβ enable debug output--versionβ display version-h,--helpβ print usage
π COMMANDS
π bundle INPUTDIR BUNDLE
Create a bundle from a content directory. yes, we're making a bundle. yes, it's gonna be cute. β¨
Options:
--cert=PEMFILE|PKCS11-URL β use given certificate file or the certificate referenced by the given PKCS#11 URL--key=PEMFILE|PKCS11-URL β use given private key file or the key referenced by the given PKCS#11 URL--intermediate=PEMFILE|PKCS11-URL β intermediate CA file or the certificate referenced by the given PKCS#11 URL--signing-keyring=PEMFILE β verification keyring file--mksquashfs-args=ARGS β mksquashfs extra args
π resign INBUNDLE OUTBUNDLE
Resign an already signed bundle. glow-up, but for signatures. π
Options:
--appendβ append instead of replace signature--cert=PEMFILE|PKCS11-URL β use given certificate file or the certificate referenced by the given PKCS#11 URL--key=PEMFILE|PKCS11-URL β use given private key file or the key referenced by the given PKCS#11 URL--intermediate=PEMFILE|PKCS11-URL β intermediate CA file or the certificate referenced by the given PKCS#11 URL--no-verifyβ disable bundle verification--no-check-timeβ don't check validity period of certificates against current time--signing-keyring=PEMFILE β verification keyring file
π§ extract BUNDLE OUTPUTDIR
Extract the bundle content to a directory. unboxing video, but make it filesystem. π¦
Options:
--key=PEMFILE|PKCS11-URL β use given decryption key file or the decryption key referenced by the given PKCS#11 URL--trust-environmentβ trust environment and skip bundle access checks
πΈ extract-signature BUNDLE OUTPUTSIG
Extract the bundle signature. just the signature. the ~lewk~ only. βοΈ
Options:
--key=PEMFILE|PKCS11-URL β use given decryption key file or the decryption key referenced by the given PKCS#11 URL--trust-environmentβ trust environment and skip bundle access checks
β convert INBUNDLE OUTBUNDLE
Convert an existing bundle to casync index bundle and store. she's getting a makeover. π«
Options:
--cert=PEMFILE|PKCS11-URL β use given certificate file or the certificate referenced by the given PKCS#11 URL--key=PEMFILE|PKCS11-URL β use given private key file or the key referenced by the given PKCS#11 URL--intermediate=PEMFILE|PKCS11-URL β intermediate CA file or the certificate referenced by the given PKCS#11 URL--trust-environmentβ trust environment and skip bundle access checks--no-verifyβ disable bundle verification--signing-keyring=PEMFILE β verification keyring file--mksquashfs-args=ARGS β mksquashfs extra args--casync-args=ARGS β casync extra args--ignore-image=SLOTCLASS β ignore image during conversion
π encrypt INBUNDLE OUTBUNDLE
Encrypt a crypt bundle. π (yes the name is like that. we don't ask, we just accept. π)
Options:
--toPEMFILE β recipient cert(s)
π₯ install BUNDLE
Install a bundle. the actual moment. the main event. π¬
Options:
--ignore-compatibleβ disable compatible check--ignore-version-limit=β disable version check--transaction-id=UUID β custom transaction ID--require-manifest-hash=HASH β require a specific manifest hash--progressβ show progress bar--tls-cert=PEMFILE|PKCS11-URL β TLS client certificate file or PKCS#11 URL--tls-key=PEMFILE|PKCS11-URL β TLS client key file or PKCS#11 URL--tls-ca=PEMFILE β TLS CA file--tls-no-verifyβ do not verify TLS server certificate-H,--http-header='HEADER: VALUE' β HTTP request header (multiple uses supported) β yes bestie you can stack it, she said multiple uses supported π--handler-args=ARGS β extra arguments for full custom handler--override-boot-slot=BOOTNAME β overrides auto-detection of booted slot
π¦ info BUNDLE
Print bundle info. a little peek at what's inside, no commitment. π
Options:
--no-verifyβ disable bundle verification--no-check-timeβ don't check validity period of certificates against current time--key=PEMFILE|PKCS11-URL β use given decryption key file or the decryption key referenced by the given PKCS#11 URL--output-format=[readable|shell|json|json-pretty|json-2]β select output format--dump-certβ dump certificate--dump-recipientsβ dump recipients
β οΈ okay so this part matters: thejson-2output format matches the structure of theInspectBundleD-Bus API and should be used instead ofjsonorjson-pretty. like, those two are giving deprecated cousin energy β usejson-2, periodt. π
π mount BUNDLE
Mount a bundle for development purposes to the bundle directory in RAUC's mount prefix. It must be unmounted manually by the user.
π«Ά heads up bestie: manually. like, you gotta unmount it yourself, nobody's doing it for you. don't just walk away and leave her mounted, that's not the vibe. π
π status [SLOTNAME | mark-{good,bad,active} [booted|other|SLOTNAME]]
Without further subcommand, it simply shows the system status or status of a specific slot. vibe check on your slots, basically. β
The subcommands mark-good and mark-bad can be used to set the state of a slot explicitly. These subcommands usually operate on the currently booted slot if not specified per additional parameter.
The subcommand mark-active allows one to manually switch to a different slot. Here too, the desired slot can be given per parameter, otherwise the currently booted one is used.
Options:
--detailedβ show more status details--output-format=[readable|shell|json|json-pretty]β select output format--override-boot-slot=BOOTNAME β overrides auto-detection of booted slot
π write-slot SLOTNAME IMAGEFILE
Manually write image to slot (using slot update handler). This bypasses all other update logic and is for development or special use only!
π¨ literally please read this: it bypasses all other update logic, and it is for development or special use only! not me watching you use this in productionβ¦ π don't. fr fr.
Options:
--image-typeβ Select explicit image type to use.
πΏ ENVIRONMENT
RAUC_KEY_PASSPHRASEβ Passphrase to use for accessing key files (signing only)RAUC_PKCS11_MODULEβ Library filename for PKCS#11 module (signing only)RAUC_PKCS11_PINβ PIN to use for accessing PKCS#11 keys (signing only)
(yeah they're all signing only, the trio said no entry for you otherwise π )
π§Έ FILES
/etc/rauc/system.conf, /run/rauc/system.conf, /usr/lib/rauc/system.conf
The system configuration file is the central configuration in RAUC that abstracts the loosely coupled storage setup, partitioning and boot strategy of your board to a coherent redundancy setup world view for RAUC. (she took all the messy lil pieces and made them a coherent redundancy setup world view β that's her whole thing. π)
RAUC configuration files are loaded from one of the listed directories in order of priority, only the first file found is used: /etc/rauc/, /run/rauc/, /usr/lib/rauc/. first one wins, no second chances, she doesn't do reruns. π
The system.conf is expected to describe the system RAUC runs on in a way that all relevant information for performing updates and making decisions are given.
Similar to other configuration files used by RAUC, the system configuration uses a key-value syntax (similar to those known from .ini files).
π AUTHORS
rauc is developed by Jan Luebbe, Enrico Joerns, Juergen Borleis and contributors. π«Ά legends, all of them.
This manual page was written by Michael Heimpold <<mhei@heimpold.de>>, for the Debian GNU/Linux system (but may be used by others). ty for your service, king. π
π SEE ALSO
casync(1), mksquashfs(1), unsquashfs(1)
Copyright β 2016-2026, Jan Luebbe, Enrico Joerns, the RAUC contributors
π ok that's the whole page bestie!! this was RAUC 1.15.2, dated Mar 28, 2026, and honestly? she ate. go read the online manual for the deep lore, and remember: unmount your bundles, use json-2, and never touch write-slot in production. love u, bye!! πβ¨π¦
π¦ where this page comes from
- arch rolling: rauc 1.15.2-1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms