Skip to content
Back to skills

Dell Idrac Bmc Ops

ASecurity

Bring a Dell PowerEdge BMC (iDRAC) onto the network headlessly, standardize settings, stage firmware, drive an unattended install — Redfish/racadm gotchas, identity-before-power, phantom-drive from stale firmware. Use bringing up/diagnosing a BMC.

  • 3 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 19, 2026
ai-agentsrustgobashnodeapi

Works with

  • api

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add dryvist/claude-code-plugins --skill dell-idrac-bmc-ops --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dell Idrac Bmc Ops?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Dell Idrac Bmc Ops
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dryvist-dell-idrac-bmc-ops/badge)](https://www.skillsdirectory.com/skills/dryvist-dell-idrac-bmc-ops)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: dell-idrac-bmc-ops
description: Bring a Dell PowerEdge BMC (iDRAC) onto the network headlessly, standardize settings, stage firmware, drive an unattended install — Redfish/racadm gotchas, identity-before-power, phantom-drive from stale firmware. Use bringing up/diagnosing a BMC.
---

# Dell iDRAC BMC operations

Operating a Dell PowerEdge BMC (iDRAC) headlessly — no monitor, no KVM cart —
from cabling through a standardized, current-firmware baseline ready for an
unattended OS install. Every command below is copy-pasteable and generalizes
across iDRAC 6 (11G) through iDRAC 9 (14G+); where a generation can't reach a
step, that's called out rather than left to fail silently.

## The one rule that overrides everything else: identify before you act

**A BMC name or address answering is zero evidence of *which chassis* is
behind it.** BMC hostnames are commonly keyed by chassis model, not by node
role or number — nothing in a name like `idrac-r540` tells you which rack
node it fronts. A successful login proves a BMC exists and accepted your
credential; it says nothing about the hardware behind it.

Before **any** power action (reset, cycle, off), confirm the chassis serial
matches the machine you intend to touch:

```bash
ipmitool -I lanplus -H "$BMC" -U root -P "$PW" fru      # chassis/product serial
curl -sk "https://$BMC/redfish/v1/" | jq '.Oem.Dell'     # ManagerMACAddress, ServiceTag
```

If the serial doesn't match, or you can't get one, **do not issue a power
command.** This is not theoretical — guessing a BMC name from a node's role
has power-cycled the wrong live machine in this exact scenario.

## Headless bring-up

1. **Skip the front micro-USB port on macOS.** iDRAC Direct presents as an
   RNDIS network adapter; macOS ships no RNDIS driver, so the interface never
   appears at all. This isn't a cable or driver-install problem — it's a
   platform gap. Use the dedicated iDRAC RJ-45 port instead.

2. **Check whether the BMC is already reachable** before touching cables — a
   subnet sweep for hosts answering HTTPS on the management VLAN, or asking
   whatever controls that VLAN's DHCP leases which MACs are live.

3. **The zero-config fix, if it isn't reachable: move one cable.** If a
   switch port on the management VLAN already exists, plug the dedicated
   iDRAC NIC into it. iDRAC defaults to DHCP and self-configures — no port
   profile edit, no console. Give it several minutes to initialize on a cold
   box, then re-sweep.

4. **Fallbacks, cheapest first, if nothing appears:** an active VGA-to-HDMI
   adapter into any TV (fastest unblock); a serial console if BIOS
   redirection is already enabled; holding the front System ID button 16+
   seconds to reset iDRAC (does not clear a static IP).

5. **Identify the box before authenticating** — the Redfish service root is
   unauthenticated and returns the service tag and BMC MAC for free
   (`GET /redfish/v1/`, read `.Oem.Dell`). Take every MAC from this response,
   never from a chassis sticker — a label can describe the wrong interface.

6. **Try the default credential once, then read the pull-out tag.** A
   factory-reset controller doesn't reliably clear back to the well-known
   default; the real per-service-tag password is printed on the service-tag
   pull-out. iDRAC locks accounts after repeated failures — don't brute-force.

7. **Audit via Redfish before trusting anything a seller claimed** — system
   summary, CPU/memory, power, thermal, and the System Event Log. On old
   firmware (pre-4.x), `/Memory` and `/Storage` collections don't exist
   (404) — DIMM maps and per-drive health come from `racadm hwinventory` and
   `racadm storage get pdisks -o` instead. The SEL is where a used box tells
   the truth about how it was treated: recurring faults matter more than
   presence of any single event. Compare the BMC's own clock against now —
   a date sitting at an old epoch means a dead CMOS battery, not what the
   seller told you.

## Standardization baseline

Bring every BMC to one baseline so any node can be driven by the same
commands. Do this **in order** — later steps depend on earlier ones being
correct:

1. **Rotate the credential off the factory default first.** Everything else
   is pointless without it. Store the new value in your secret store
   *before* setting it — a value set and not stored is a locked-out BMC.
2. **Set identity** (hostname, domain) — a prior owner's hostname survives a
   factory erase and will show up in alerts and DHCP for years.
3. **Fix the clock before touching logs** — enable NTP and set the timezone,
   so every log entry from this point forward is stamped correctly. Do this
   before any log export/clear step, or the record becomes useless for
   correlation.
4. **Enable serial console redirection permanently** — what makes a node
   debuggable when it has no monitor and no OS.
5. **Check the power-redundancy policy** — a supply with no line input marks
   the whole chassis `Critical`, which then masks a real fault. Know which
   case you're in.
6. **Export the inherited event logs. Never clear them.** The SEL and
   Lifecycle Log are the machine's only provenance record and clearing them
   is irreversible. Treat clearing like a force-push: it needs a verified
   export first, then explicit human approval at the time — never part of
   an unattended run.

Record every BMC change in a running log as you go, not afterward — a BMC
holds state no configuration-management run will ever reconcile, so an
undocumented change here is invisible forever.

### Generation differences that bite

| Generation | Redfish | Virtual media | Notes |
| --- | --- | --- | --- |
| iDRAC 6 (11G) | none — 404 everywhere | broken | Use `ipmitool -I lanplus`, never Redfish. Falls back to Ventoy USB for install media. |
| iDRAC 9, firmware 3.x | partial (1.0.2) — no `/Memory`, no `/Storage` | NFS/CIFS only, `InsertMedia` returns 405 | Old-firmware symptoms below. |
| iDRAC 9, firmware 4.x+ | full | HTTP, NFS, CIFS, Redfish `InsertMedia` | Full HTML5 console with an Enterprise license. |

A `404`/`405` on old firmware is the generation talking, not a broken BMC —
read the allowable-values list rather than assuming a command should work:

```bash
curl -sk "${AUTH[@]}" "$R/Systems/System.Embedded.1" \
  | jq '.Actions["#ComputerSystem.Reset"]["ResetType@Redfish.AllowableValues"]'
```

### SSH to old BMC firmware needs legacy algorithms

Old BMC firmware negotiates only legacy SSH key-exchange and host-key
algorithms; modern OpenSSH refuses the handshake without an explicit opt-in,
and a loaded SSH agent makes the BMC drop the connection before it ever
prompts for a password:

```bash
RAC() {
  sshpass -e ssh -o StrictHostKeyChecking=no \
    -o KexAlgorithms=+diffie-hellman-group14-sha1 \
    -o HostKeyAlgorithms=+ssh-rsa \
    -o PubkeyAuthentication=no "root@$BMC" "$@"
}
```

## Firmware: mandatory before production use

Used gear routinely arrives years stale, and old firmware doesn't just lack
features — it can actively lie about hardware. A controller can report
**phantom drives** (physically removed disks still listed present, full
serial numbers, surviving a BMC reset and a cold power cycle) until firmware
is current. Treat a firmware update as a required onboarding step, before
any production data lands on the box.

**You cannot jump straight to current.** Dell does not support upgrading
directly from an old major to a current one — each stage is a hard
prerequisite for the next. Update in the documented staged sequence for your
model rather than trying to skip ahead.

### Firmware update gotchas — each looks like a different failure

- **Only the `WN64` package format works with `racadm update`.** The same
  version ships in multiple filenames on Dell's download page; the plain
  "Application" `.exe` is rejected with an unhelpful error. Only
  `..._WN64_<version>_A00.EXE` works.
- **The host must be powered off**, or the update job parks indefinitely
  because the OS holds the Lifecycle Controller.
- **`racadm update` is a repository command — it cannot push a bare DUP.**
  Pointed at a share with a single file and no `Catalog.xml`, it accepts the
  command, even logs progress, then fails. Use **Redfish multipart upload**
  instead — it pushes the file straight to the BMC with no share and no
  catalog:

  ```bash
  curl -sk -u "root:$PW" -X POST \
    "https://$BMC/redfish/v1/UpdateService/MultipartUpload" \
    -F 'UpdateParameters={"Targets":[],"@Redfish.OperationApplyTime":"Immediate"};type=application/json' \
    -F "UpdateFile=@/path/to/FIRMWARE.EXE;type=application/octet-stream"
  ```

- **An unfinished Lifecycle Controller first-run wizard blocks every queued
  job forever**, and powering the host off does not fix it (the trap that
  makes it look identical to the previous gotcha). It only shows on the
  console — no remote API dismisses it. Complete it once from the virtual
  console, then jobs move from `New` to `Scheduled` on their own.
- **A firmware/BIOS/RAID-config job can queue and never apply because POST
  never completes** — a storage controller reporting an unhealthy UEFI
  driver can halt POST at an interactive prompt. This is also what causes
  the phantom-drive symptom above: POST never finishing means the periodic
  hardware-inventory scan never runs. Resolution requires physical
  intervention (removing the offending drive) — nothing remote clears it.
- Dell's CDN blocks a bare `curl` user agent (403) — send a browser
  `User-Agent` and a `Referer` of `https://www.dell.com/`.

Update order once iDRAC itself is current: iDRAC/LC first (applies
everything else), then the RAID controller, then BIOS, then NICs/PSU/CPLD.
BIOS and RAID updates need a host power cycle; iDRAC resets itself
independently.

## Unattended install via BMC virtual media

An alternative to PXE netboot for driving an OS install with no monitor,
using the BMC's own virtual-media path instead of a network boot
infrastructure. Covers: resolving the true latest release (ISO + upgrade,
never ISO alone), selecting disks by serial not device name, the
build-time-baked answer file trap, per-generation virtual-media transport,
setting a one-time boot override, and detaching media after the final
dist-upgrade. Full sequence:
[references/virtual-media-install.md](references/virtual-media-install.md).

## Related

- **proxmox-cluster-ops** (this plugin) — the cluster-membership operations
  this install target eventually joins.
- **pxe-netboot** (this plugin) — the network-boot alternative to the
  BMC-virtual-media install path above, for hardware where virtual media is
  unreliable or unlicensed.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…