andkorn.org

a fine line between curiosity and madness.

Brocade ICX6610 Stack: Swapping Boot Images

I ran into a small issue recently: I had a stack of two Brocade ICX6610’s and they had two boot images:

  • FCXS07300a.bin (Switch Code)
  • FCXR07300a.bin (Router Code)

I wanted to swap the two and have the router code be primary. The issue is that I had a stack and the “flash rename” commands did not affect the secondary stack member. With “flash rename” I could move around flash images all I wanted on the primary member, but the secondary stayed the same. If I serial consoled into the secondary I could not modify its boot images to match.

So after some playing around I found the solution: use the “copy” command. Here we go:

The initial flash images:

1
2
3
4
5
6
7
8
9
10
11
ICX6610-24 Router>show flash
 Stack unit 1:
   Compressed Pri Code size = 5320842, Version:07.3.00aT7f1 (/foundry/FGS/os/FCXS07300a.bin)
   Compressed Sec Code size = 6803305, Version:07.3.00aT7f3 (/foundry/FGS/os/FCXR07300a.bin)
   Compressed Boot-Monitor Image size = 369491, Version:07.3.01T7f5
   Code Flash Free Space = 53084160
 Stack unit 2:
   Compressed Pri Code size = 5320842, Version 07.3.00aT7f1 (/foundry/FGS/os/FCXS07300a.bin)
   Compressed Sec Code size = 6803305, Version 07.3.00aT7f3 (/foundry/FGS/os/FCXR07300a.bin)
   Compressed Boot-Monitor Image size = 369491, Version 07.3.01T7f5
   Code Flash Free Space = 53084160

Go into enable mode and move the switch code over to a temporary file. We will later place it as the secondary code. Then copy the secondary code (router code) to primary code. This will auto-sync with the stack members (seen below).

1
2
3
4
5
6
7
8
9
10
ICX6610-24 Router>en
 No password has been assigned yet...
 ICX6610-24 Router#flash rename primary switchcode
 ICX6610-24 Router#copy flash flash primary
 ICX6610-24 Router#Flash Memory Write (8192 bytes per dot) ...Flash to Flash Done.
 ICX6610-24 Router#Downloading secondary image to members...

  Automatic copy to member units:  2
 Flash Memory Write (8192 bytes per dot) ...
 Flash to Flash Done.

Now we can place the switch code as the secondary, and then manually copy it over to the other stack member:

1
2
3
4
5
ICX6610-24 Router#flash delete secondary
 ICX6610-24 Router#flash rename switchcode secondary
 ICX6610-24 Router#copy flash flash unit-id-sec 2
 ICX6610-24 Router#Flash Memory Write (8192 bytes per dot) ...
 Flash to Flash Done.

Now we can see that the necessary flash layout was achieved. We can now boot it to make sure.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ICX6610-24 Router#show flash
 Stack unit 1:
   Compressed Pri Code size = 6803305, Version:07.3.00aT7f3 (/foundry/FGS/os/FCXR07300a.bin)
   Compressed Sec Code size = 5320842, Version:07.3.00aT7f1 (/foundry/FGS/os/FCXS07300a.bin)
   Compressed Boot-Monitor Image size = 369491, Version:07.3.01T7f5
   Code Flash Free Space = 53084160
 Stack unit 2:
   Compressed Pri Code size = 6803305, Version 07.3.00aT7f3 (/foundry/FGS/os/FCXR07300a.bin)
   Compressed Sec Code size = 5320842, Version 07.3.00aT7f1 (/foundry/FGS/os/FCXS07300a.bin)
   Compressed Boot-Monitor Image size = 369491, Version 07.3.01T7f5
   Code Flash Free Space = 53084160
 ICX6610-24 Router#boot system flash primary
 Are you sure? (enter 'y' or 'n'): y
 Reload request sent to attached stack member(s)...

Comments