NVME-TRANSCEND-BAD(1)

πŸ’… nvme-transcend-bad(1) β€” the NVMe Manual, bestie edition πŸŽ€

okay so real quick: this is nvme-transcend-bad, part of the NVMe Manual, and it's genuinely so niche and so specific and I love that for it. let's get into it ✨


🌸 NAME 🌸

nvme-transcend-badblock β€” literally just goes and retrieves your Transcend NVMe device's bad blocks. that's the whole assignment. no cap. πŸ’–


✨ SYNOPSIS ✨

nvme [<global-options>] transcend badblock <device>

like, that's it. that's the vibe. πŸ¦‹


πŸ’… DESCRIPTION πŸ’…

okay so here's the tea β˜• β€” for the NVMe device you hand it, this sends the Transcend vendor command and returns the bad block of the device. that's the entire plot. it's giving "one job, doing it well."

the <device> parameter is mandatory (not optional, do not skip it, I'm serious πŸ™ˆ) and it may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). pick your fave, both slay.

on success, the returned value would print the amount of bad blocks. like, it tells you how many bad blocks there are. that's the payoff. πŸ’«


🧚 OPTIONS 🧚

  • none β€” yes, exactly. none. zero. the options list is empty and honestly? iconic. nothing here, bestie, go home. 😭

πŸ‘‘ GLOBAL OPTIONS πŸ‘‘

these are the options defined at the top-level nvme command, and they're available to this subcommand too. so like, they're not yours exactly, but they'll absolutely show up for you. 🫢

  • --dry-run β€” prints the command that would be executed, but does not actually execute it. all the vibes, none of the consequences. πŸ’€
  • --no-ioctl-probing β€” disables probing for 64-bit IOCTL support. yep. that's what it does. moving on.
  • --no-retries β€” disables retry logic on transient errors. one shot, no do-overs. πŸ”₯
  • -o <fmt>, --output-format=<fmt> β€” set the reporting format to normal, tabular, 'json, or binary. only one output format may be used at a time β€” pick a lane bestie, you can't have all four. (and yes, that stray apostrophe before json is in the original, I'm not touching it, character for character periodt.)
  • --output-format-version=<version> β€” select the output format version. version 1 uses the original field naming, while version 2 (the default) provides more consistent and script-friendly field names. other versions are rejected β€” do not come for v2 with your little v3 nonsense, it will not be received. πŸ’…
  • --quiet β€” suppress informational messages. errors are still reported, and --quiet cancels any --verbose for the library log level. so it's a straight-up veto, not a negotiation. πŸŽ€
  • --set-options=<key=value>[,<key=value>...] β€” set libnvme library options for this invocation. supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir. go off with your key-value pairs. 🌈
  • --timeout=<ms> β€” set the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff). patience is a virtue, apparently. ⭐
  • -v, --verbose β€” increase the level of detail in the output. may be specified multiple times to further increase verbosity. stack it like collectibles, bestie. πŸ’œ
heads up 🫢 β€” these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. every single time. no exceptions.

🌟 EXAMPLES 🌟

  • print the Transcend device's bad blocks in a human readable format:
# nvme transcend badblock /dev/nvme0

see? one line. ate. πŸ’…


πŸ¦‹ NVME πŸ¦‹

part of the nvme-user suite. one of us, one of us, etc. πŸ’–


and that's the page, babe! πŸŽ€ source/version is the nvme-user suite, dated 10/30/2026 β€” same manual name, same date, just way more sparkle. go get those bad blocks. iykyk πŸ’œβœ¨

πŸ“¦ where this page comes from