NVME-CONFIG-CONVER(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’… NVME-CONFIG-CONVER(1) β€” like, the nvme manual, but make it make sense

okay bestie so this is a page from the NVMe Manual (yes, from the nvme-user suite, we'll get there) and it's about a little command called nvme-config-convert. it converts your old dusty legacy NVMe-oF config into the shiny INI format. no cap, it's giving "glow-up for your config files" ✨


🌸 NAME

nvme-config-convert β€” converts a legacy NVMe-oF configuration into the INI format. that's it, that's the whole job πŸ’–


✨ SYNOPSIS

nvme [<global-options>] config convert
                        [--config=<file> | -J <file>]
                        [--output=<file>]
                        [--force]
                        [--verbose | -v]

like, you call nvme with your global options, then config convert, then sprinkle on whichever flags you need πŸŽ€


πŸ¦‹ DESCRIPTION

okay so picture this: you've got a pre-3.0 NVMe-oF configuration chilling in the legacy config.json JSON store and/or the discovery.conf argv-style file. this command takes all that and converts it into the INI configuration format that nvme connect-all and nvme discover actually use. iconic behavior, honestly.

the INI format itself is documented riiight here:

https://github.com/linux-nvme/nvme-cli/blob/master/libnvme/design/CONFIG.md

πŸ“– go read it, iykyk.

🌈 where does it look by default?

by default the command goes looking for the legacy files:

  • /usr/local/etc/nvme/config.json
  • /usr/local/etc/nvme/discovery.conf

and it converts whichever ones exist into a single configuration, matching exactly what nvme connect-all does. main character energy: same behavior, no surprises πŸ’…

want to convert a config.json at some non-default path instead? use --config. easy.

but β€” and this is the part people always miss, so pay attention bestie β€” just like with nvme connect-all, converting discovery.conf is not gated by --config. that file at /usr/local/etc/nvme/discovery.conf is always converted when it exists, whether or not you passed --config. it does not care about your flags. it does its own thing. periodt. πŸ™ˆ

πŸŽ€ where does the output go?

the converted configuration gets written to the file you give with --output. if you don't specify --output, it goes to the default spot:

/usr/local/etc/nvme/nvme-fabrics.conf

and unless you pass --force, the command refuses to overwrite an existing configuration. it's polite like that 🫢

on success, the converted legacy file(s) get renamed to <name>.converted so they don't get converted again on the next run. and yes β€” running the command again is totally safe πŸ”₯: if a source file is missing only because a previous run already converted and renamed it, that's treated as already done, not as an error. slay.

πŸ’€ malformed stuff

malformed entries β€” think invalid addressing, or an unreadable port β€” are skipped with a log message. the conversion keeps going. the one thing that stops it is a memory allocation failure. that's the only show-stopper.


πŸ’– OPTIONS

  • -J <file>, --config=<file> β€” convert this JSON file instead of the default /usr/local/etc/nvme/config.json. your file, your rules πŸ’œ
  • --output=<file> β€” write the converted configuration here instead of the default /usr/local/etc/nvme/nvme-fabrics.conf. pick your destination bestie 🎯
  • --force β€” overwrite an existing configuration at the target. ⚠️ heads up: any manual changes are lost. like, gone gone. be sure, okay?
  • -v, --verbose β€” crank up the level of detail in the output. more words, more lore πŸ”

🌟 EXAMPLES

  • convert the system's legacy configuration in place:
# nvme config convert
  • convert one specific configuration file for testing, without touching the system configuration:
# nvme config convert --config /tmp/config.json --output /tmp/nvme-fabrics.conf
πŸ’€ okay so note: unlike config.json, discovery.conf has no --config-style override β€” its path is always /usr/local/etc/nvme/discovery.conf. so if that file exists on the system, this command still converts it and renames it to discovery.conf.converted, even though --config is pointing somewhere else entirely. she's committed. she's not listening. πŸ™ˆ

🧚 SEE ALSO


πŸ‘‘ NVME

this lil beauty is part of the nvme-user suite. family πŸ’–


so yeah, that's the whole page β€” brought to you by NVMe, version dated 10/30/2026, and originally titled NVME-CONFIG-CONVER(1) in the manual. go forth and convert, bestie. you got this πŸ’…βœ¨

πŸ“¦ where this page comes from