HPE ProLiant DL360 Gen9의 온보드 P440ar RAID 컨트롤러를 LSI 9217-8i HBA로 교체하면서, 카드를 IT 모드로 크로스플래싱하고 부트 ROM과 UEFI 드라이버까지 얹어 실제로 부팅시키기까지의 전 과정을 정리했습니다. UEFI Shell의
sas2flash.efi하나로 끝내는 방법이며, 명령을 그대로 따라 하다 카드를 벽돌로 만들지 않도록 각 단계가 왜 필요한지에 초점을 맞췄습니다.
왜 IT 모드인가
ZFS나 Ceph 같은 소프트웨어 정의 스토리지는 디스크를 있는 그대로 넘겨받아야 합니다. 체크섬, 재동기화, 배드섹터 관리를 파일시스템/스토리지 계층이 직접 하기 때문에, 그 아래에서 RAID 컨트롤러가 캐싱·재배열·논리 볼륨 추상화를 하면 오히려 방해가 됩니다. 최악의 경우 컨트롤러 캐시와 ZFS의 무결성 가정이 충돌해 데이터가 조용히 깨질 수 있습니다.
그래서 이런 환경에서는 HBA(Host Bus Adapter)를 씁니다. HBA는 디스크를 그대로 OS에 노출하는 “멍청한” 컨트롤러입니다. LSI SAS2308 칩 기반 카드는 펌웨어에 따라 두 가지 성격을 가집니다.
- IR (Integrated RAID): 간단한 RAID 0/1을 지원하는 모드. 제품명으로는 9217-8i.
- IT (Initiator Target): 순수 패스스루 HBA 모드. 제품명으로는 9207-8i.
하드웨어는 동일하고 펌웨어만 다릅니다. 그래서 9217-8i에 9207-8i용 IT 펌웨어를 구우면 IT 모드 HBA가 됩니다. 이 작업을 크로스플래싱(crossflashing)이라고 부릅니다.
먼저 개념 세 가지를 분리하자
크로스플래싱이 헷갈리는 이유는 서로 다른 세 가지를 한 번에 다루기 때문입니다. 카드의 플래시 영역에는 독립적인 세 조각이 들어갑니다.
| 구성 요소 | 파일 | 역할 | 없으면 |
|---|---|---|---|
| 펌웨어 | 9207-8.bin | 카드의 동작 모드(IT/IR)와 기본 기능을 결정 | 카드가 동작 불능 |
| Legacy 부트 ROM | mptsas2.rom | 레거시 BIOS 부팅 시 카드에 연결된 디스크로 부팅 | Legacy 모드에서 이 카드의 디스크로 부팅 불가 |
| UEFI 드라이버 (BSD) | x64sas2.rom | UEFI 부팅 시 카드에 연결된 디스크로 부팅 | UEFI 모드에서 이 카드의 디스크로 부팅 불가 |

여기에 하나 더, SAS Address가 있습니다. 카드의 고유 주소로, 플래시를 완전히 지우면 함께 날아갈 수 있습니다. 그래서 작업 전 반드시 기록해둡니다.
핵심을 정리하면:
- 부트 ROM이 없어도 디스크는 OS에서 정상적으로 보입니다. 부트 ROM은 오직 “이 카드에 물린 디스크로 부팅할 때”만 필요합니다. OS가 별도 NVMe 등에 있고 이 카드는 데이터 디스크만 담당한다면 부트 ROM은 없어도 됩니다.
mptsas2.rom과x64sas2.rom은 별개 영역이라 공존합니다. 둘 다 구우면 Legacy/UEFI 어느 모드로 부팅하든 이 카드의 디스크로 부팅할 수 있습니다.
이 표만 이해하면 나머지는 절차입니다.
준비물
USB 구성
FAT32로 포맷하고 UEFI Shell로 부팅 가능한 USB에 다음 파일을 루트에 둡니다.
sas2flash.efi # 플래싱 도구 (UEFI EBC 버전)
9207-8.bin # IT 펌웨어
mptsas2.rom # Legacy 부트 ROM
x64sas2.rom # UEFI 드라이버
부팅 가능한 UEFI Shell은 서버 펌웨어에 내장된 것을 쓰거나(HPE Gen9은 부트 메뉴에서 UEFI Shell 진입 가능), ShellX64.efi를 USB에 함께 넣어 씁니다.
파일 어디서 받나
Broadcom(구 LSI/Avago) 사이트는 단종 제품 페이지를 정리하면서 제품 페이지 접근 시 Contact Sales로 리다이렉트되는 경우가 있습니다. curl이나 wget으로 직접 받으면 실제 파일 대신 HTML 페이지가 내려오는 일도 흔합니다. 받은 뒤에는 반드시 확인합니다.
file 받은파일.zip
# "Zip archive data ..." → 정상
# "HTML document ..." → 리다이렉트에 막힌 것
펌웨어와 Legacy 부트 ROM(9207-8.bin, mptsas2.rom)은 9207-8i_Package_P20_IR_IT_Firmware_BIOS_for_MSDOS_Windows 패키지 안에 들어 있습니다.
UEFI 드라이버(x64sas2.rom)는 별도의 UEFI_BSD_P20 패키지에 들어 있습니다. 압축 안에 일반 버전과 Signed(SecureBoot 대응) 버전이 함께 들어 있으며, SecureBoot 환경까지 고려하면 Signed 버전을 쓰는 편이 안전합니다.
unzip UEFI_BSD_P20.zip -d uefi
find uefi -iname "x64sas2.rom"
# .../uefi_bsd_rel/x64sas2.rom (일반)
# .../uefi_bsd_rel/Signed/x64sas2.rom (Signed) ← 이걸 사용
주의
반드시 신뢰할 수 있는 출처(공식 또는 알려진 미러)에서 받고, 가능하면 체크섬을 확인하세요. 잘못된 펌웨어 이미지를 구우면 카드가 복구 불가능해질 수 있습니다.
실전 플래싱
전 과정을 UEFI Shell에서 진행합니다. 부팅 메뉴에서 UEFI Shell 또는 USB로 진입한 뒤, 파일이 있는 파일시스템으로 이동합니다.
Shell> map -r # 파일시스템 목록 확인
Shell> fs2: # USB가 잡힌 번호로 이동 (fs0, fs1 ... 환경마다 다름)
FS2:> dir # 파일 4개가 보이는지 확인
1단계 — 현재 상태 확인 및 SAS Address 백업
FS2:> sas2flash.efi -list
출력에서 다음을 확인합니다.
Firmware Product ID—0x2714 (IR)이면 IR 모드,0x2214 (IT)이면 이미 IT 모드SAS Address— 반드시 메모해둡니다 (예:500605B-0-1A2B-3C4D)BIOS Version,UEFI BSD Version— 부트 ROM/UEFI 드라이버 존재 여부

2단계 — 플래시 지우기
IR 펌웨어가 올라가 있는 상태에서는 IT 펌웨어를 바로 덮어쓸 수 없습니다. 시도하면 다음 에러가 납니다.
ERROR: Cannot Flash IT Firmware over IR Firmware!
Firmware Image Validation Failed!
그래서 먼저 플래시를 지웁니다.
FS2:> sas2flash.efi -o -e 6
-o는 알파벳 소문자 o (advanced mode)입니다. 숫자 0을 넣으면Invalid command에러가 납니다.-e 6은 플래시 영역을 지우는 명령입니다.
⚠️ 이 시점부터 카드는 펌웨어가 없는 빈 상태입니다. 절대 재부팅하거나 전원을 끊지 말고 곧바로 다음 단계로 진행하세요.
여기서 전원이 나가면 카드가 벽돌이 됩니다.
Erase Flash Operation Successful!가 나오면 성공입니다. 이 직후 Failed Reconnecting the EFI Driver (Not Found) 같은 메시지가 보이는데, 펌웨어를 지웠으니 EFI 드라이버가 사라진 것이 당연합니다. 정상입니다.
3단계 — IT 펌웨어 + Legacy 부트 ROM
지운 직후 곧바로 펌웨어와 부트 ROM을 함께 굽습니다.
FS2:> sas2flash.efi -o -f 9207-8.bin -b mptsas2.rom
-f 9207-8.bin— IT 펌웨어-b mptsas2.rom— Legacy 부트 ROM
정상이라면 다음과 같은 흐름이 이어집니다.
Firmware Download Successful.
Adapter Successfully Reset.
Flash BIOS Image Successful.
Finished Processing Commands Successfully.
4단계 — UEFI 드라이버 추가
UEFI 모드에서도 이 카드의 디스크로 부팅해야 한다면 UEFI 드라이버를 추가로 굽습니다.
FS2:> sas2flash.efi -o -b x64sas2.rom
5단계 — 검증
FS2:> sas2flash.efi -list
목표 상태는 다음과 같습니다.
Firmware Product ID : 0x2214 (IT) ← IT 모드로 전환됨
Firmware Version : 20.00.07.00 ← IT 펌웨어 (P20)
BIOS Version : 07.39.02.00 ← Legacy 부트 ROM
UEFI BSD Version : 07.27.01.01 ← UEFI 드라이버
SAS Address : 500605B-0-1A2B-3C4D ← 백업해둔 주소와 동일한지 확인
SAS Address가 0이거나 백업값과 다르면 복원합니다.
FS2:> sas2flash.efi -o -sasadd 500605B01A2B3C4D

여기까지 오면 카드 작업은 끝입니다. 재부팅하면 POST 단계에서 LSI 부트 ROM이 로드되며 카드에 연결된 디스크 목록이 표시됩니다.

함정 모음 — 이 메시지가 나오면 이런 뜻이다
실제로 마주치기 쉬운 메시지들을 정리합니다.
ERROR: Cannot Flash IT Firmware over IR Firmware!
IR 펌웨어 위에 IT 펌웨어를 덮으려 했습니다.-o -e 6으로 먼저 지워야 합니다.ERROR: Invalid command -0-o의o를 숫자 0으로 입력했습니다. 알파벳 소문자 o가 맞습니다.sas2flash.efi -listall을 쳤는데 아무것도 안 나온다
드라이브/컨트롤러 인식 문제이거나 출력이 스크롤로 넘어간 경우입니다.map -r로 파일시스템을 다시 확인하고,pci -b로 카드가 PCI 목록에 잡히는지(LSI는 Vendor ID1000) 봅니다.Controller is not operational. A firmware download is required.
카드가 FAULT 상태입니다. 이 프롬프트에서 펌웨어 파일명을 입력하면 카드를 되살릴 수 있습니다. 즉 완전히 죽은 게 아니라 펌웨어 복구가 필요한 상태입니다.- 플래싱 후
UEFI BSD Version이N/A인데 UEFI로 부팅이 안 된다x64sas2.rom을 굽지 않았습니다. 4단계를 수행합니다. 반대로BIOS Version이N/A면mptsas2.rom을 굽지 않은 것이며, 이 경우 Legacy 부팅이 안 됩니다.
부팅 모드: Legacy냐 UEFI냐
플래싱을 마쳤다고 끝이 아닙니다. 카드에 부트 ROM이 있는 것과, OS가 그 부트 경로로 실제 부팅되는 것은 별개입니다.
카드에는 Legacy용(mptsas2.rom)과 UEFI용(x64sas2.rom) 부트 경로가 모두 들어갈 수 있지만, 실제 부팅은 서버의 부팅 모드와 OS가 설치된 부팅 방식이 맞아야 합니다.
- OS가 Legacy(BIOS/MBR)로 설치되어 있다면, 서버도 Legacy 부팅 모드여야 하고 카드에
mptsas2.rom이 있어야 합니다. - OS가 UEFI로 설치되어 있다면, 서버도 UEFI 부팅 모드여야 하고 카드에
x64sas2.rom이 있어야 합니다.
카드에 UEFI 드라이버가 있어도 OS 디스크에 UEFI 부트로더가 없으면 UEFI로 부팅되지 않습니다. 이 둘을 혼동하면 “분명히 x64sas2.rom을 구웠는데 UEFI로 안 뜬다”는 상황에 빠집니다.
교훈 한 가지 — ZFS-on-root의 부팅 모드 전환은 함정이 있다.
Proxmox를 ZFS 루트 + Legacy로 설치한 시스템을 나중에 UEFI로 바꾸려면, 부팅 중인 상태에서proxmox-boot-tool이나grub-install로는 잘 되지 않습니다. GRUB이 ZFS 루트 파일시스템을 인식하지 못해알 수 없는 파일 시스템(unknown filesystem)에러로 멈추기 때문입니다.proxmox-boot-tool은 현재 부팅 모드를 따라가므로, Legacy로 부팅 중이면 UEFI 부트로더를 설치하지 못하는 순환에 빠집니다. 부팅 모드를 정말 바꿔야 한다면 설치 ISO로 해당 모드(UEFI) rescue 부팅을 한 뒤 부트로더를 다시 설치하는 것이 정석입니다. 그럴 필요가 없다면, 이미 잘 부팅되는 Legacy 구성을 굳이 건드리지 않는 편이 안전합니다. 노드마다 부팅 모드가 조금 달라도 기능상 손해는 없습니다.
정리
크로스플래싱의 요지는 결국 세 가지를 구분하는 것입니다. 펌웨어(IT/IR 성격), Legacy 부트 ROM, UEFI 드라이버 — 이들은 카드의 서로 다른 영역이며 독립적으로 존재합니다. 순서는 언제나 “지우고, 펌웨어와 부트 ROM을 굽고, 필요하면 UEFI 드라이버를 얹고, 검증한다”입니다. -e 6 이후에는 전원을 건드리지 않는다는 것, SAS Address를 미리 백업한다는 것, 그리고 부트 ROM의 존재와 실제 부팅 성공은 별개라는 것 — 이 세 가지만 기억하면 9217-8i의 IT 모드 전환은 어렵지 않습니다.
스크린샷 속 SAS Address·보드 시리얼(Tracer Number) 등 하드웨어 식별값은 모자이크 처리했으며, 본문의 SAS Address(500605B-0-1A2B-3C4D)는 예시 값입니다. 실제 작업 시 sas2flash.efi -list로 확인한 본인 카드의 값을 사용하세요.