Merge pull request #9 from outis1one/claude/bios-vt-power-settings-mxjh0x

fix: remove iDRAC HddSeq dependency removed in BIOS 2.19+
This commit is contained in:
Outis
2026-06-27 00:22:30 -04:00
committed by GitHub
3 changed files with 44 additions and 31 deletions
+23 -9
View File
@@ -212,10 +212,26 @@ targets unconfigured physical disks.
### Install perccli
Download from Dell support (search "PERCCLI") or copy the `.deb` to the host:
`apt` does not carry perccli. Download the RPM from Dell and convert it:
```bash
dpkg -i perccli_*.deb
# Download (referer header required — Dell blocks plain curl)
curl -L \
--referer "https://www.dell.com/" \
--user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \
"https://dl.dell.com/FOLDER03559396M/1/perccli-1.17.10-1.noarch.rpm" \
-o /tmp/perccli.rpm
# Convert RPM → deb and install
apt install -y alien
alien --to-deb /tmp/perccli.rpm
dpkg -i /tmp/perccli_*.deb
# Binary lands in /opt/MegaRAID/perccli/ — symlink it into PATH
ln -s /opt/MegaRAID/perccli/perccli64 /usr/local/bin/perccli
# Verify
perccli show
```
### Run the script
@@ -300,17 +316,15 @@ To check current speed: `ipmitool sdr type Fan`
### Staggered spin-up
**Layer 1 — iDRAC BIOS** (fires at every boot, before OS):
> **BIOS 2.19+ note:** `BIOS.StorageSettings.HddSeq` was removed from the
> R730xd firmware. The iDRAC/BIOS layer (Layer 1) no longer works — skip it
> and go straight to the Linux service below.
```bash
bash /opt/local_proxmox/scripts/stagger-spinup.sh --idrac
# If racadm is not available, the script prints the iDRAC web UI path instead.
```
**Layer 2 — Linux service** (handles drives coming up from standby):
**Linux service** (staggers drives in standby at OS boot):
```bash
cp /opt/local_proxmox/scripts/stagger-spinup.sh /usr/local/sbin/stagger-spinup.sh
chmod +x /usr/local/sbin/stagger-spinup.sh
cp /opt/local_proxmox/scripts/stagger-spinup.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable stagger-spinup.service
+8 -3
View File
@@ -10,9 +10,14 @@ set -euo pipefail
PERCCLI=$(command -v perccli || command -v perccli64 || true)
if [[ -z "$PERCCLI" ]]; then
echo "perccli not found. Install from:"
echo " https://www.dell.com/support (search 'PERCCLI')"
echo " or: dpkg -i perccli_*.deb"
echo "perccli not found. Install it:"
echo " curl -L --referer 'https://www.dell.com/' \\"
echo " --user-agent 'Mozilla/5.0' \\"
echo " 'https://dl.dell.com/FOLDER03559396M/1/perccli-1.17.10-1.noarch.rpm' \\"
echo " -o /tmp/perccli.rpm"
echo " apt install -y alien && alien --to-deb /tmp/perccli.rpm"
echo " dpkg -i /tmp/perccli_*.deb"
echo " ln -s /opt/MegaRAID/perccli/perccli64 /usr/local/bin/perccli"
exit 1
fi
+13 -19
View File
@@ -28,25 +28,19 @@ HDPARM=$(command -v hdparm || true)
# ── iDRAC BIOS method (Layer 1) ───────────────────────────────────────────────
configure_idrac() {
if ! command -v racadm &>/dev/null; then
echo "racadm not found."
echo "Option A: Run from iDRAC SSH:"
echo " ssh root@<idrac-ip>"
echo " racadm set BIOS.StorageSettings.HddSeq Enabled"
echo " racadm jobqueue create BIOS.Setup.1-1"
echo " # Then reboot to apply."
echo ""
echo "Option B: iDRAC web UI:"
echo " System BIOS → Power Management → Hard Disk Drive Sequencing → Enabled"
echo " Apply and reboot."
return 0
fi
echo "Enabling iDRAC hard disk drive sequencing (staggered spin-up)..."
racadm set BIOS.StorageSettings.HddSeq Enabled
racadm jobqueue create BIOS.Setup.1-1
echo "Job queued. Reboot for the BIOS setting to take effect."
echo "Verify after reboot with: racadm get BIOS.StorageSettings.HddSeq"
# BIOS.StorageSettings.HddSeq was removed in R730xd BIOS 2.19+.
# The BIOS-level stagger is no longer available; rely on Layer 2 (Linux service).
echo "NOTE: BIOS.StorageSettings.HddSeq was removed in R730xd BIOS 2.19+."
echo "The iDRAC/BIOS layer for staggered spin-up is not available on this firmware."
echo ""
echo "Use the Linux systemd service (Layer 2) instead — it handles the same"
echo "job by staggering drives that are in standby at OS boot time."
echo ""
echo "To install the service:"
echo " cp stagger-spinup.sh /usr/local/sbin/stagger-spinup.sh"
echo " chmod +x /usr/local/sbin/stagger-spinup.sh"
echo " # copy stagger-spinup.service to /etc/systemd/system/"
echo " systemctl daemon-reload && systemctl enable stagger-spinup.service"
}
# ── Linux spin-up stagger (Layer 2) ──────────────────────────────────────────