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 ### 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 ```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 ### Run the script
@@ -300,17 +316,15 @@ To check current speed: `ipmitool sdr type Fan`
### Staggered spin-up ### 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 **Linux service** (staggers drives in standby at OS boot):
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):
```bash ```bash
cp /opt/local_proxmox/scripts/stagger-spinup.sh /usr/local/sbin/stagger-spinup.sh 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/ cp /opt/local_proxmox/scripts/stagger-spinup.service /etc/systemd/system/
systemctl daemon-reload systemctl daemon-reload
systemctl enable stagger-spinup.service systemctl enable stagger-spinup.service
+8 -3
View File
@@ -10,9 +10,14 @@ set -euo pipefail
PERCCLI=$(command -v perccli || command -v perccli64 || true) PERCCLI=$(command -v perccli || command -v perccli64 || true)
if [[ -z "$PERCCLI" ]]; then if [[ -z "$PERCCLI" ]]; then
echo "perccli not found. Install from:" echo "perccli not found. Install it:"
echo " https://www.dell.com/support (search 'PERCCLI')" echo " curl -L --referer 'https://www.dell.com/' \\"
echo " or: dpkg -i perccli_*.deb" 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 exit 1
fi fi
+12 -18
View File
@@ -28,25 +28,19 @@ HDPARM=$(command -v hdparm || true)
# ── iDRAC BIOS method (Layer 1) ─────────────────────────────────────────────── # ── iDRAC BIOS method (Layer 1) ───────────────────────────────────────────────
configure_idrac() { configure_idrac() {
if ! command -v racadm &>/dev/null; then # BIOS.StorageSettings.HddSeq was removed in R730xd BIOS 2.19+.
echo "racadm not found." # The BIOS-level stagger is no longer available; rely on Layer 2 (Linux service).
echo "Option A: Run from iDRAC SSH:" echo "NOTE: BIOS.StorageSettings.HddSeq was removed in R730xd BIOS 2.19+."
echo " ssh root@<idrac-ip>" echo "The iDRAC/BIOS layer for staggered spin-up is not available on this firmware."
echo " racadm set BIOS.StorageSettings.HddSeq Enabled"
echo " racadm jobqueue create BIOS.Setup.1-1"
echo " # Then reboot to apply."
echo "" echo ""
echo "Option B: iDRAC web UI:" echo "Use the Linux systemd service (Layer 2) instead — it handles the same"
echo " System BIOS → Power Management → Hard Disk Drive Sequencing → Enabled" echo "job by staggering drives that are in standby at OS boot time."
echo " Apply and reboot." echo ""
return 0 echo "To install the service:"
fi echo " cp stagger-spinup.sh /usr/local/sbin/stagger-spinup.sh"
echo " chmod +x /usr/local/sbin/stagger-spinup.sh"
echo "Enabling iDRAC hard disk drive sequencing (staggered spin-up)..." echo " # copy stagger-spinup.service to /etc/systemd/system/"
racadm set BIOS.StorageSettings.HddSeq Enabled echo " systemctl daemon-reload && systemctl enable stagger-spinup.service"
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"
} }
# ── Linux spin-up stagger (Layer 2) ────────────────────────────────────────── # ── Linux spin-up stagger (Layer 2) ──────────────────────────────────────────