[Из песочницы] Восстановление SSD дисков на контроллере SandForce SF-2XXX

49482ebf31c24f509837f27723465f99.jpg

Здесь я расскажу как восстанавливать диски, которые определяются как sandforce {200026BB} или которые совсем не определяются.
Все началось с того, что мне подарили SSD, который определялся как sandforce {200026BB}, поиск информации по этой болезни вывел меня на тему форума рубоарда, где обсуждались способы их реанимации. Но конкретного мануала, как все сделать и где скачать там не было, в итоге с помощью гугла нашел китайский мануал, и в какой-то степени данная статья есть перевод этого мануала плюс мой успешный опыт. Прямые ссылки на необходимое ПО я пока не буду выкладывать, т.к. не знаю можно ли это делать в данном случае, если вы скажите да, то добавлю их в статью, но в любом случае здесь много подсказок, baidu вам в помощь.

Итак, что нам понадобиться:

1. Отвертка (необходимо будет разобрать диск, чтобы узнать как там дела)
2. FW_Worksheet_SFI_SF-2000_140120_Confidential_Gold (таблица, где вы должны найти ID конфигурации по своему чипу и памяти)
3. Дистрибутив Fedora 14 32bit, я использовал RFRemix 14.1 LiveDVD (ОС, где выполняются все манипуляции, необходима именно Fedora 14)
4. SF_Genesis_v1.5.2 (ПО для подготовки прошивки и непосредственно прошивки контроллера)
5. *.lic файл (лицензия, используемая распаковки пакетов с прошивками, содержит ID, которые будут распаковываться. В сети я нашел только 3 файла.)
6. FW_PPRO_5_8_2_Release.906190.release (пакет с прошивками, существуют пакеты других версий, этот взят для примера)
Вкратце, алгоритм такой: вы узнаете в таблице ваш ID, проверяете есть ли такой ID в лицензии, если нет, то ищите другую лицензию, если есть, то с помощью этой лицензией распаковывает пакет с прошивками и прошиваете.

Более подробно:

1. Разбираем SSD:

629e893b577245b6bf1a8e6796ef3e1c.jpg

Смотрим чип (желтый), здесь он SF-2281, память (синий) 29F64G08CBAAA 16шт. (по 8 вверху и внизу). Ищем нашу конфигурацию в таблице:

a1f1169c3bdc461da81d5a76e0911363.jpg

Запоминаем.

2. Подключаем диск к компьютеру, загружаемся в Fedora. Если у вас SSD не определяется(и вы уверены, что дело не в питание и не в сигнальной линии), то перед подключение необходимо замкнуть два контакта(выделены красным), после включение компьютера разомкнуть. Обычно, они выглядят так всегда.

3. В ОС необходимо установить дополнительные программы:
lsscsi-0.23-2.fc14.i686
mailx-12.5-1.fc14.i686(если у вас RFRemix 14.1 LiveDVD, то не нужно)
sg3_utils-1.29-1.fc14.i686
smartmontools-5.40-5.fc14.i686

4. Ищем в лицензии нашу конфигурацию:

717561e18247452eb6133ea1c4cb6bcb.jpg

Нам повезло она есть, если ее нет, то это большая проблема. Дело в том, что такие лицензии даются только производителям дисков, и в открытом доступе их нет. Просто изменить файл нельзя, т.к. в нем прописана чексумма, которую нужно еще расшифровать. В моем случае так и было, но мне помог человек с рубоарда.

5. Запускаем программу SF_OEM_PackageManager:

e13334902afe463fbaeb3af6e9ec6e8e.jpg

Distribution Firmware Package File – пакет с прошивками, выбираем его.
License File – путь к лицензии.
Destination Folder – куда будут распаковываться прошивки.
Customer ID и Diagnostic Unlock Key – заполнить как на картинке ниже.
Firmware Revision Override String – версия прошивки, в нашем случае 5.8.2.

5b93af7fe0804c05a8fb0e5a255778cd.jpg

Жмем Create OEM Package и ждем завершение распаковки.

6. Запускаем программу SF_ConfigurationManager (это шаг можно пропустить). Конфигуратор требует указать файл для редактирования, он находится там, где мы распаковывали прошивки, в папке Configuration_Files и с именем нашей конфигурации:

78bc59f816594290b1d9124b82722e44.jpg

Открываем файл:

92f7130f177740a89a1e0fcd6fbd639c.jpg

Здесь я меняю Model No. – имя отображаемое ОС, серийный номер – любой, Device Nominal Form Factor – форм-фактор, остальное на ваше усмотрение. Нажимаем сохранить и выходим из программы.

7. Запускаем консоль, вводим su, вводим lsscsi, которая покажет на каком адресе висит наш диск:

412d20e56b034693a69ae2d35c25da58.jpg

У меня в виртуалке его нет, но у вас должен быть диск с именем sandforce {200026BB}, запоминаете его адрес, пусть будет 2:0:0:0. Далее переносим в консоль файл SF_Genesis и прописываем к нему аргументы:

SF_Genesis –PROCESS_SSD [адрес диска] [путь к файлу *.mfp, который находится в папке с распакованной прошивкой] [путь к файлу, который мы редактировали в SF_ConfigurationManager] 12345 www_123 log=[путь к лог-файлу]

4b7b7c2cce8a4d6f9bd0b58eaf46bb1d.jpg

Жмем Enter и ждем заветной надписи PASS, если получили FAIL, то необходимо разбирать лог и искать в какой момент произошла ошибка, в большинстве случаев ошибки бывают из-за невнимательности.

В основном вся движуха по этой теме происходит на китайских форумах, но все равно советую ознакомиться с темой на рубоарде, если возникнут вопросы можете писать мне. Спасибо за внимание.

P.S.: Прошу прощение за мое косноязычие и заранее за орфографию.

© Geektimes