Восстанавливаем SSD под Ubuntu Linux

На сайте как то появлялась статья о том, как оптимизировать работу Ubuntu Linux на SSD жёстких дисках. Но случиться может всякое, да и SSD довольно часто выходят из строя, поэтому и публикуется эта статья. Ниже вы узнаете как восстановить SSD в случае поломки. 

Мне подумалось, что вдруг кого-то из владельцев SSD устройства этот топик наведёт на мысль о backup'е, кого-то о в целом более осторожном отношении, а кого-то избавит от общения с не слишком торопливой службой поддержки. Всё написанное относится не тдоолько к устройствам той серии и производителя, что у меня.

Дней 10 назад мне случилось оставить на ночь ноут с батареей в критическом состоянии без зарядки. Я не слишком беспокоюсь о жизни батареи, но удар последовал с другой стороны. Утром, включив ноутбук в зарядку и включив его я с удивлением обнаружил, что:

Operating system not found

В ВIOS'е винчестер определялся. Схватив имевшийся под рукой Ubuntu Live CD на flash'ке и вооружившись командной строкой, я приготовился к дебагу.

Стоит сразу сказать, что в случаях таких сбоев удобнее было бы использоваться какой-нибудь Data Rescue Live CD, с уже установленными утилитами диагностики вместо совершенно не нужного офисного пакета, но тем не менее.

Наберём арсенал, который нам пргодится:

sudo apt-get install hdpam partx smartmontools

Смотрим, что у нас случилось:

sudo partx -s /dev/sda
1
partx: /dev/sda: failed to read partition table

Итак, с таблицей разделов вроде бы можно попрощаться.

sudo smartctl -s on -d ata -A /dev/sda -T verypermissive
1
2
3
4
5
6
smartctl 5.41 2011-06-09 r3365 [i686-linux-3.0.0-12-generic] (local build) 
Copyright © 2002-11 by Bruce Allen, smartmontools.sourceforge.net 
 
SMART support is: Unavailable - device lacks SMART capability. 
=== START OF ENABLE/DISABLE COMMANDS SECTION === 
Error SMART Enable failed: Input/output error

Ошибка ввода-вывода? Диск не поддерживает SMART? Уже бред какой-то.

sudo hdparm -I /dev/sda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/dev/sda: 
 
ATA device, with non-removable media 
Model Number: INTEL SSDSA2CW080G3 
Serial Number: BAD_CTX 00000150
Firmware Revision: 4PC10302 
...
Configuration: 
Logical max current 
cylinders 16383 16 
heads 16 16 
sectors/track 63 63 
- 
CHS current addressable sectors: 16128 
LBA user addressable sectors: 156301488 
LBA48 user addressable sectors: 156301488 
Logical Sector size: 512 bytes 
Physical Sector size: 512 bytes 
device size with M = 1024*1024: 76319 MBytes 
device size with M = 1000*1000: 80026 MBytes (80 GB)

Ага. Можно заметить, что число условных SSD цилиндров упало в 10000 раз и согласно десктопному Gparted'у размер винчестера составляет 8MB (каюсь, в логах не сохранилась консольная команда и её вывод для просмотра этого безобразия, прошу верить мне на слово). Серийный номер отсутствует и вместо него BAD_CTX что-то там. Хорошо, симптомы поняли, можно обращаться к поиску и в поддержку. Действительно, оказывается, проблема далеко не единична, но, увы, такой идиот с Linux'ом я один.

В кратце для не знакомых с языком и ленивых, форумчане говорят о повальной подверженности всех Intel'овских SSD такому багу, особенно затронувшее 320ю серию и X25M. Есть новость о прошивке 0362, которая призвана избавить именно от этого бага, но количество обращений людей с уже этой прошивкой с теми же симптомами говорит о нерешённости проблемы. Да, лучшим решением в данном случае было бы отправить винчестер обратно в Intel, чтобы у них появился стимул поправить свои ошибки.

К сожалению, поддержка Intel не отличается расторопностью, и отвечает примерно раз в сутки, затупливая по техническим вопросам, и очень рекомендуя установить их SSD Toolbox для определения проблемы. Хочется отдельно заметить, что основной срез пользователей SSD - это владельцы MacBook'ов, у которых аналогично со мной есть трудности с установкой софта под Windows. Отдельного упоминания достойно то, что эта тулза, предназначенная для определения неисправностей, требует:

  • Java
  • .NET 3.5
  • Windows Media Player Redistributable 11

Что делает её установку на компьютере, загруженном с Live CD практически невозможной задачей (во-первых из за ограничений объёма на виртуальном винчестере, а во-вторых в связи с тем, что WMP 11 требует проверки аутентичности Windows, которая со скрипом и стонами лишь у некоторых особо выдающихся личностей получается в Wine. Пламенный привет разработчикам этого ПО.

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

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

Нужно восстановить количество цилиндров, вернув заветные 16383. Для этой операции нам нужны будут две команды, запуск обоих затруднён для защиты от дурака и вредителя.

Выставляем пользователя, и пароль для мастер-операций над диском.

sudo hdparm –user-master user –security-set-pass abc /dev/sda

Далее нам нужно разблокировать расширенный набор ATA-команд, в частности secure-erase, которые блокируются при загрузке системы. Этому есть несколько способов, один из которых - внешний бокс, отключить и включить его питание. Внешнего бокса у меня не было, но чудесным образом срабатывает отправка ноута в sleep и пробуждение.

Следующие команды выполняют некую безопасную очистку, я запускал обе, так как уверенности какая из них понадобится, не было. Перед каждой запускал установку мастер-пароля и закрытие крышки ноутбука.

sudo hdparm –user-master user –security-erase abc /dev/sda
sudo hdparm –user-master u –security-erase-enhanced abc /dev/sda

Теперь совсем для не слабонервных. Сброс установок диска к заводским. Для запуска команды нужен ещё один ключ, который вам подскажет командная строка, и для очищения совести я его здесь приводить не стану, равно как и упомяну, что в документации эта команда помечена как ОСОБО ОПАСНАЯ и НЕ ЗАПУСКАТЬ.

sudo hdparm --dco-restore /dev/sda

Перезагрузка. Ура, можно ставить систему.

Итого выводы, которые я сделал для себя:

  • держите Live CD под рукой
  • не оставляйте ноут совсем без питания на критическом заряде
  • делайте бэкапы, в том числе keyring'ов, списков установленных пакетов, конфигов и rsa ключей
  • обновляйте прошивки (после того, как вы узнали, что она точно неплохо работает)
  • беречь нервы

Хочу дополнительно отметить, что не всегда такой метод полностью восстанавливает функционал, и что иногда диск остаётся глючным, тормозным.

Ещё раз послаю пламенный привет поддержке Intel, и сообщить им, что я так и не могу зайти под своими логином и паролем на их community, чтобы опубликовать этот чудодейственный рецепт у них, и напомнить, что я уже неделю жду от них хотя бы какого-нибудь ответа почему же я не могу этого сделать.

В следующем топике расскажу об интересной статистике смертей SSD, возвратов, починок и ошибок в работе по производителям и моделям.

Источник: habrahabr.ru.

Хотите узнать интересного человека? Почитайте как ведёт блог Ксения Леонидовна Лысцова, вам явно понравится.

Sk8er
2012-01-06 11:25:00
Столько любителей тыкнуть в чужие косяки. Хотя бы статью смотри внимательнее в следующий раз. Я в конце указал источник.
Qwert
2012-01-04 18:46:00
Нехорошо тырить чужие статьи из хабра