To provide a storage device for updating a firmware code without using a host.
The storage system composed of a plurality of storage devices connected through a network diagnoses whether data of a control program for controlling a first storage device is destroyed or not when starting the first storage device. When the data of the control program for the first storage device is destroyed, a signal showing the data destruction of the control program is transmitted to the network. It is determined whether a second storage device having received the signal on the network stores the control program the same as that stored in the first storage device. When the same control program is stored, the second storage device transmits the control program to the first storage device. The first storage device rewrites the destroyed control program with the control program received from the second storage device.