Linux Programmer

시게이트 ST200FP0021 firmware upgrade 본문

컴퓨터 관련/기타 등등

시게이트 ST200FP0021 firmware upgrade

sunyzero 2016. 12. 23. 01:32

얼마전부터 이상하게 시스템의 SSD 중에 1개가 데이터를 쓸려고 하면 인식이 끊겼다가 다시 인식되곤 했다. 그래서 파일 복사는 자꾸 실패...

제품명을 살펴보니 Seagate ST200FP0021 (200G) 제품이었다. 하드웨어 문제로 예상된 것은 OS가 리눅스일 때나 윈도우즈 일때나 불규칙하게 오류가 발생한다는 상황 때문이었다.


처음에는 SATA cable오류일지 몰라서 교체를 해봤으나 여전히 문제가 발생했다.


그래서 firmware version 문제가 아닐까 생각되어 살펴봤다. 내 시스템의 ST200FP0021 펌웨어 버전은 B690 이었다.

시게이트 홈페이지에서 검색해보니 B770 버전이 나와있길래 업그레이드를 시도했다.

그런데 펌웨어 업그레이드 방법이 리눅스 부팅 디스크를 만들어서 해야했다. 


(나는 시스템에 리눅스가 설치되어있어서 바로 리눅스에서 해도 되긴 하지만... 일단 시게이트 홈페이지에서 시킨대로 해보기로 했다.)


여기에는 리눅스를 몰라서 업그레이드 하면서 헤멜 분들을 위해 간단하게 적어둔다.

(참고로 펌웨어 업그레이드시에 디스크의 데이터는 날라가지 않는다. 혹시 백업하라는 경우도 있지만, 펌웨어로 날라간 경험은 없다. 그래도 혹시 중요한 데이터면 미리 백업받기를 권장한다.)



0. 시게이트에서 firmware를 다운로드 한다. (제품명이나 serial을 알면 쉽게 다운로드 할 수 있다.)

본인의 ST200FP0021에 맞는 파일로 600ProSSD-Aolani_19-SATA-B770.zip 파일을 다운로드 받았다.


1. 600ProSSD-Aolani_19-SATA-B770.zip 파일의 압축을 푼다.

아래와 같은 3개의 디렉터리가 생긴다.


bootable tools

firmware

linux cli tools


2. bootable tools 디렉터리로 이동하여 USBbootBuilder-13-SeaFlashLin-043.USBsetup.exe 를 실행한다.

실행 과정에서 USB memory를 꼽아두면 USB boot disk로 만들어준다. (당연히 USB 메모리의 내용은 전부 날라가고 새로운 부트 디스크가 만들어진다.)


3. 만들어진 USB boot disk에 firmware, linux cli tools 디렉터리를 복사해둔다. (해당 디렉터리의 파일만 복사해도 된다)


4. USB를 꼽고 USB boot disk로 부팅한다. tiny core linux로 부팅될 것이다.


5. 리눅스 부팅 후에 자동으로 usb가 마운트 된다고 설명되어있지만, 부팅후 살펴보니 usb가 마운트 되지 않았다.

본인은 SSD가 2개인데 각각 sda, sdb로 인식되어있었다. 예를 들어 아래와 같은 명령어를 쳐보면 파티션이 다음처럼 출력된다.

(sdb가 ST200FP0021이다.)


$ ls /mnt

sda1

sda2

sdb1

sdb2


아마 USB memory가 인식되었다면 sdc가 보일텐데... 그렇지는 않았다.



6. USB memory를 뺐다가 다시 끼우고 확인해보자.

$ ls /mnt

sda1

sda2

sdb1

sdb2

sdc4


새롭게 sdc4가 인식되었다. 이제 수동으로 마운트(mount) 명령을 내려보자.


$ sudo mkdir /mnt/usbdisk

$ sudo mount /dev/sdc4 /mnt/usbdisk

$ cd /mnt/usbdisk/firmware


새로운 sdc4를 /mnt/usbdisk로 마운트했다.

그리고 /mnt/usbdisk/firmware 디렉터리로 이동한 다음에 아래 명령을 실행 해본다.


$ sudo cp ../linux \cli \tools/seaflashlin_043_32 .

$ sudo mv seaflashlin_043_32  seaflashlin

$ sudo seaflash -i


seaflash -i 는 정보를 보여주는 명령으로, 가지고 있는 디스크 장치 목록이 보일 것이다. 본인은 /dev/sg1 이 seagate SSD이며 B690 버전이라고 표시되었다. 이제 펌웨어 업그레이드를 해보자.


$ sudo ./seaflash -c AOLANI_19_B770.CFS


CFS 파일을 지정하면 자동으로 펌웨어를 인식해서 업그레이드 해준다.

마지막으로 seaflashlin -i 로 펌웨어 버전을 확인해보자. 잘 됐다면 재부팅해보자.


현재까지 오류가 발생하지 않는 것으로 보아 펌웨어 오류였던 것 같다. 이제 오류 해결...

반응형
Comments