diff --git a/docs/setup-guide.md b/docs/setup-guide.md index cde3a14..d04d78a 100644 --- a/docs/setup-guide.md +++ b/docs/setup-guide.md @@ -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 diff --git a/scripts/perc-nonraid.sh b/scripts/perc-nonraid.sh index 5dbd131..d343cfa 100755 --- a/scripts/perc-nonraid.sh +++ b/scripts/perc-nonraid.sh @@ -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 diff --git a/scripts/stagger-spinup.sh b/scripts/stagger-spinup.sh index 15477ac..5b1a170 100755 --- a/scripts/stagger-spinup.sh +++ b/scripts/stagger-spinup.sh @@ -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@" - 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) ──────────────────────────────────────────