TAGMEDIA(1)
π tagmedia(1) β the manual, but make it bestie π
okay so welcome to the tagmedia(1) page, bestie. grab a lil strawberry drink π and let's get into it, because this tool is lowkey iconic for anyone messing with installation or Live media.
πΈ NAME πΈ
tagmedia β add/remove tags to installation or Live media. that's the whole name, periodt.
β¨ SYNOPSIS β¨
tagmedia [OPTIONS] IMAGE
π DESCRIPTION π
okay so picture this: Installation/Live media carry some meta data stored in a reserved area in the ISO9660 file system. very main character energy, honestly.
tagmedia can display and modify these data. yes bestie, display and modify. we love a multitasking icon.
The data are in text form, structured as key=value pairs. Most notably they include a digest (checksum) over the entire medium that can be used for verification with checkmedia(1). so if you're like "is this ISO okay??" this is the whole vibe check.
The meta data block can optionally be signed to verify its authenticity. security slay π₯
IMAGE is an installation or Live medium; either ISO image or disk image. that's your target, your moment, your chosen file.
Meta data come in two flavors: SUSE (SLE, openSUSE) style and Red Hat (RHEL, Fedora, CentOS, AlmaLinux, Rocky, ...) style. Both variants are supported. no favoritism here, we support both fr fr.
For a detailed technical view, see file:///usr/share/doc/packages/libmediacheck6/README.html
If a digest was added, the media can be verified with checkmedia(1) (both Red Hat and SUSE style) or checkisomd5(1) (Red Hat style only). okay so that's the whole "go verify it" pipeline, iykyk.
π General options π
--style STYLEβ Data format.STYLEcan be either'rh'or'suse'(default: auto-detected). it literally sniffs the vibe for you unless you tell it otherwise.--versionβ Showtagmediaversion. short, sweet, gives you the numbers.-v,--verboseβ Show more detailed info (repeat for more). yes you can stack it, go off.--helpβ Write this help text. the classic "pls explain" button.
π Tag related options π
--showβ Show current tags (default if no option is given). like opening the group chat and reading receipts.--add-tag FOO=BARβ Add tagFOOwith valueBAR. new tag just dropped.--remove-tag FOOβ Remove tagFOO. not me deleting the tagβ¦ block vibes only.--cleanβ Remove all tags. full reset, clean slate, no notes.--export-tags FILEβ Export raw tag data toFILE. save the receipts for later, bestie.
π§ Digest related options π§
--digest DIGESTβ Add digestDIGEST(susestyle:md5,sha1,sha224,sha256,sha384,sha512;rhstyle:md5). yes the SUSE girlies get more hash options, that's just the tea.--fragments Nβ Split image intoNfragments with individual digests (susestyle default:0,rhstyle default:20). lil checksum pieces so you can find the problem area faster.--pad Nβ IgnoreN2 kiB blocks of padding at image end (susestyle). bye bye padding, not counted.--skip Nβ IgnoreN2 kiB blocks at image end (rhstyle, default:15). same energy, different style.--checkβ Tell installer to run media check at startup (susestyle). the installer gets a lil heads-up.--supportedβ Set supported flag (rhstyle). officially supported, periodt.--signature-tagβ When adding a digest, check for a signature block and add a'signature'tag if one is found (default for stylesuse). signature spotted? tag it.--no-signature-tagβ When adding a digest, do not check for a signature block (default for stylerh). no scan, no tag, we move.
π¦ Signature related options π¦
--create-signature KEYIDβ Sign meta data inIMAGEwith gpg keyKEYID. The public part ofKEYIDis exported to the fileIMAGE.key. crypto moment, very secure of you.--import-signature FILEβ Import signature fromFILE. bring the signature in.--export-signature FILEβ Export signature toFILE. send it out into the world.
π Legacy options π
--md5,--md5sumβ Equivalent to--digest md5. old school but still valid, no cap.
π₯ DIGEST NOTES π₯
The digest is calculated over the entire image, leaving out the meta data block and, if one exists, the signature block (unless --no-signature-tag is used). Padding blocks are also not taken into account. so it's not "everything everything" β it's the specific everything, bestie.
For SUSE style media a separate digest over the last partition is also added, if a partition table exists. If this happens to be an EFI System Partition, the last but one partition is used. yes, the last-but-one, read it again if you need to.
For Red Hat style media, the media is additionally split into parts (fragments) with separate checksums for each part to help localize where any mismatch occurs. so when something's off you can point at the fragment like "it's giving error right here".
For a description of how exactly the digests are calculated, see the detailed doc link below. no gatekeeping, the docs are right there.
π SIGNING NOTES π
You can add a signature of the meta data block. It can then be used to ensure the authenticity of the meta data, notably the stored digest. like a lil "trust me bestie" but cryptographically.
The signature is stored in a special 2 kiB block. The block can be anywhere in the image, usually as part of the file system. The block is identified by a magic id (see detailed doc link below). magic id?? iconic.
Note that usually this block has to be included during image creation. It does not have to be visible in the file system. so it can be sneaky like that.
tagmedia scans the image for a block with this magic id when calculating a digest and stores a reference to it in the 'signature' tag if one is found. found it? tagged it.
As an exception, if no such block had been identified, tagmedia will try to create one in the padding area, if a padding area exists. a lil backup plan, we love resourcefulness.
There are two options --signature-tag and --no-signature-tag that can be used to tell tagmedia explicitly whether to scan for a signature block or not. explicit instructions only, no guessing.
If you do not want tagmedia to run gpg directly, it is also possible to create the signature independently of tagmedia using --export-tags to store the raw meta data in a file, then sign it and import the signature using the --import-signature option. DIY crypto era, honestly kind of slay.
π OPEN BUILD SERVICE π
If a signature block is present the OBS will automatically sign images with the project key. automatic signing, we love to see it.
You can get the public part of the project key needed for verification with osc signkey. go get that key, bestie.
β EXAMPLES β
# display current meta data
tagmedia foo.iso
# create digest
tagmedia --digest sha256 foo.iso
# create digest, adding a rh-style fragment digest for early error detection
tagmedia --digest sha256 --fragments 20 foo.iso
# create signature, using gpg key id foo-key
tagmedia --create-signature foo-key foo.iso
π SEE ALSO π
checkisomd5(1), checkmedia(1), gpg(1), implantisomd5(1), osc(1).
π«Ά LINKS π«Ά
- detailed doc:
https://github.com/openSUSE/checkmedia/blob/master/README.adoc - libmediacheck doc:
https://github.com/openSUSE/checkmedia/blob/master/mediacheck.md - checkmedia web site:
https://github.com/openSUSE/checkmedia - Open Build Service:
https://openbuildservice.org - openSUSE Build Service:
https://build.opensuse.org
this whole page is tagmedia 6.5, dated 2025-05-13 β mwah π go tag some media, bestie.
π¦ where this page comes from
- opensuse-leap 16.0: checkmedia 6.6-160000.1.1 Β· GPL-3.0-or-later
- opensuse-leap 16.0: checkmedia 6.6-160000.1.1 Β· GPL-3.0-or-later
- opensuse-leap 16.0: checkmedia 6.6-160000.1.1 Β· GPL-3.0-or-later
- opensuse-leap 16.0: checkmedia 6.6-160000.1.1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms