Connectrix: 잘못된 부팅 설정으로 인해 펌웨어 업그레이드 중에 B-Series DS-6620B 스위치가 새 펌웨어로 부팅되지 않음
Summary: Connectrix B-Series: 잘못된 부팅 인수 설정으로 인해 펌웨어 업그레이드 중에 DS-6620B 스위치가 새 펌웨어로 부팅되지 않았습니다.
Symptoms
Fabric OS 8.1.0a에서 Fabric OS 8.1.2f로 업그레이드합니다.
영향:
스위치를 새 펌웨어로 업그레이드할 수 없습니다.
환경:
EMC 하드웨어: Connectrix DS-6620B
Brocade 소프트웨어: Fabric OS 8.1.0a
Brocade 소프트웨어: 패브릭 OS 8.1.2f
문제:
펌웨어 업그레이드에 실패했습니다.
펌웨어 업그레이드는 기본 펌웨어 다운로드 절차를 사용하여 시작되었습니다.
펌웨어 다운로드 중에 새 코드가 보조 파티션에 업로드되지만, 자동 재부팅이 발생하면 파티션을 스왑하기 위해 스위치가 이전 펌웨어 버전으로 부팅됩니다.
예:
펌웨어 쇼 출력:
DS6620B:root> firmwareshow
Appl Primary/Secondary Versions
------------------------------------------
FOS v8.1.0a
v8.1.2f
WARNING: Firmwaredownload is in progress.
DS6620B:FID1:root>
firmwaredownloadstatus 명령은 펌웨어가 스위치의 보조 파티션에 다운로드되었지만 그 이상은 다운로드되지 않았음을 나타냅니다.
본보기:
DS6620B:FID1:root> firmwaredownloadstatus
[1]: Fri Nov 30 18:18:26 2018
Firmware is being downloaded to the switch. This step may take up to 30 minutes.
[2]: Fri Nov 30 18:30:25 2018
Firmware has been downloaded to the secondary partition of the switch.
DS6620B:FID1:root>
이 상태에서 firmwarecommit 명령을 실행하면 다운로드한 펌웨어가 활성화되지 않았기 때문에 펌웨어를 시작할 수 없습니다 오류가 반환됩니다. firmwaredownloadstatus 명령에 Firmwarecommit failed가 표시됩니다. (0x1a)입니다.
본보기:
DS6620B:FID1:root> firmwarecommit
Cannot start firmwarecommit because the downloaded firmware is not activated.
DS6620B:FID1:root>
DS6620B:FID1:root> firmwaredownloadstatus
[1]: Fri Nov 30 18:18:26 2018
Firmware is being downloaded to the switch. This step may take up to 30 minutes.
[2]: Fri Nov 30 18:30:25 2018
Firmware has been downloaded to the secondary partition of the switch.
[3]: Fri Nov 30 19:44:40 2018
The firmware commit operation has started. This may take up to 10 minutes.
[4]: Fri Nov 30 19:44:40 2018
Firmware commit failed - Firmwarecommit failed. (0x1a)
DS6620B:FID1:root>
Cause
펌웨어 다운로드 후 새 펌웨어 버전으로 업그레이드가 부팅되지 않은 이 스위치에서 부팅 로더 매개변수(bootargs)가 특정 파티션으로 부팅하도록 수정된 것으로 확인되었습니다.
(root=/dev/sda$prt) 대신 (root=/dev/sda$prt)
예:
bootargs=root=/dev/sda1 rootfstype=ext4 quiet console=ttyS0,9600
일반적으로 업그레이드 프로세스 중에 펌웨어는 처음에 보조 파티션에 다운로드되고 주 파티션 펌웨어는 재부팅할 때까지 변경되지 않습니다.
주 파티션과 보조 파티션이 스왑되고 스위치는 일반적으로 새 펌웨어를 사용하여 파티션으로 부팅됩니다.
그러나 bootargs 매개변수가 이전에 (root=/dev/sda$prt) 대신 특정 파티션(root=/dev/sda1)으로 부팅하도록 수정되었기 때문에 스위치는 이전 펌웨어를 사용하여 파티션으로 부팅을 계속했습니다.
그 결과, 업그레이드 후 부팅 시 활성 펌웨어 버전은 예상 v8.1.2f 대신 v8.1.0a로 유지되었습니다.
부트로더 구성에서 잘못된 bootargs 값의 원인은 값이 실수로 설정된 비밀번호 복구 절차 때문입니다.
위의 명령을 실행한 후 bootargs 매개변수의 결과에 /dev/sda$prt 대신 /dev/sda1이 표시됩니다.
직렬 포트에서 가져온 예:
=> setenv bootargs "root=/dev/sda$prt rootfstype=ext4 console=ttyS0,9600 quiet"
=> saveenv
Saving Environment to NVRAM...
=>
=> printenv
bootargs=root=/dev/sda1 rootfstype=ext4 console=ttyS0,9600 quiet
=>
Resolution
수정: 복구하려면 bootargs 설정을 다시 기본값으로 수정합니다.
방법 #1:
- 루트로 스위치에 로그인하고 bootenv 명령을 사용합니다.
bootenv bootargs 'root=/dev/sda$prt rootfstype=ext4 console=ttyS0,9600 quiet'
hareboot
방법 #2:
- 직렬 콘솔을 통해 연결하고 부트로더 명령 셸을 입력합니다.
setenv bootargs 'root=/dev/sda$prt rootfstype=ext4 console=ttyS0,9600 quiet'
saveenv
boot
방법 #1 또는 #2를 따른 후 스위치는 새 펌웨어로 부팅하고 펌웨어 다운로드 프로세스를 완료해야 합니다.
Additional Information
bootargs=root=/dev/sda$prt rootfstype=ext4 콘솔=ttyS0,9600 조용한