Confusingboat / flash-it

Easy one-step flashing for LSI SAS2-based HBA/RAID devices
GNU Affero General Public License v3.0
105 stars 30 forks source link

Unsuccessfull SBR rollback #11

Closed honzagula closed 4 years ago

honzagula commented 4 years ago

Hello,

I just tried to flash my H310 with the script from the Debian Live and run into some problem because I didn't boot with iomem=relaxed flag (Yes, my bad for not reading the instructions). Anyway, I downloaded your SBR restore script, run it and it said that everything is rolled back.

BUT after reboot with the right flag, I cant see the H310 anymore. Script didn't find the SAS address and even when I starting my server (R720) I can see S110 instead of H310. What should I do to fix it?

sudo opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -a0

User specified controller is not present.
Failed to get CpController object.

Exit Code: 0x01

Thank you for your help.

Confusingboat commented 4 years ago

Just to clarify, the SBR restore script only flashes the SBR; it doesn't flash anything else.

You didn't state where your flash failed, but what you'll likely end up doing is reflashing manually using lsirec and lsiutil. If your backups were successful you'll have six files:

I would advise that you keep an archive copy of this backup directory somewhere off the machine you're using to flash. Running hot with your only copy can result in the loss of some of this important data and leave you with no backup.

Here's a guide to using the lsirec utility to recover a card that I only remembered after writing all the stuff below. Please try this first.

Since lsirec doesn't care what device is at the address you give it, it's imperative you get the PCI address correct. If you've moved the adapter in question to another physical slot or you want to double check the address, you can do so using lspci -nnv | grep H310 -B1; you can play with the grep part to help find it easier or just remove the whole pipe and simply run lspci -nnv if you just want to look for it manually.

Once you've identified the correct corresponding PCI address and have the rest of the utilities downloaded/compiled, you'll probably start from around lines 157 of the flash-it script where the meat and potatoes begin:

LSIREC_ADDR="0000:${PCI_ADDRESS}"

# Unbind and halt PCI device
echo "Unbinding and halting device..."
echo
lsirec/lsirec ${LSIREC_ADDR} unbind
lsirec/lsirec ${LSIREC_ADDR} halt
echo

You can then skip the SBR modification stuff if you already have the modified SBR file and move right on down to flashing the SBR at line 197:

# Write modified SBR to device
echo "Writing modified SBR to device..."
echo
lsirec/lsirec ${LSIREC_ADDR} writesbr "${SBR_MODIFIED_FILE}"
echo

Continue on down the script, studying each section carefully and modifying the commands appropriately before executing everything one step at a time. A lot of the variables that appear in the script won't be set for you since you'll be doing it manually.

honzagula commented 4 years ago

The problem is that I didnt keep my backup files (i though that I reverted everything). I tried to modify the script and end up with "Waiting for MPT" message. Card never showed. But maybe it even doesn't matter because I dont have the SAS address required for the next step. Is there any solution or I already bricked my H310?

honzagula commented 4 years ago

I finally managed to complete the whole process. Turns out that you can choose your own SAS address without any problems.

Thank you for the script!