Недавно я поимел честь поиметь проблемы с поимевшим меня HDD, который работал в среде Linux и неожиданно сдох. 
На любое действие из консоли был только такой ответ:
При перезагрузке сервер уверенно лёг... 
Для админа увидеть такое сообщение - настоящий АД!
Сразу нарисовалась триединая задача:
При несоответствии хранимых в системе каталогов целостности ФС происходит самозащита от ещё большего её разрушения, тоесть только чтение.
Причин может быть масса: неправильная парковка, физический износ HDD, ошибки контроллеров и т.д. Сначала стоит проверить SMART HDD.
Перезагрузиться обычным способом у вас не получится, сервер хчать хотел на любые команды (sbin/reboot: Ошибка ввода/вывода), в том числе и на
В данном случае перезагружаемся через команды ядра, прописывая их по очереди:
Но это вам ничем не поможет без предварительного ремонта файловой системы.
Проверяем состояние HDD.
Утилита smartmontools:
Показ полной картины SMART вашего диска. Обращаем внимание на такие параметры:
Красные значения должны быть в нулях:
Reallocated_Sector_Ct - количество переназначенных секторов;
Current_Pending_Sector - секторы кандидаты на замену (подозрительные);
Offline_Uncorrectable - количество нескорректированных ошибок, то есть серьёзное повреждение поверхности диска. Появляются такие ошибки когда заканчивается место в резервной зоне диска для переназначения секторов.
У меня значение Current_Pending_Sector было - 97!
Порядок восстановления файловой системы:
Есть два варианта: работать в повреждённой системе и подкинуть снятый диск в рабочую систему Linux. Я использовал второй вариант. Если доступен второй вариант, то вы легко сможете сделать резервные копии с существующими правами доступа и хозяевами файлов.
Основное: проверяемый диск должен быть отмонтирован из системы! Иначе будут утеряны данные.
Скорее всего у вас второй диск будет определяться как sdb:
Начинаем ремонт на (непримонтрованном разделе)
Скорее всего вам сразу будет сказано:
Это значит, что утилита fsck не решается восстановить диск обычным способом, она перекладывает всё ответственность обратно на вас, типа: хочешь порешать проблему - вникни в неё глубже и выбери подходящие параметры.
Мы и должны выбрать вариант с автоматическим ответом "yes" на все вопросы (восстановить, перезаписать пустые блоки и прочее):
Все тонкости программ почитаете в манах, я даю только рабочие выжимки.
Программа отработает до конца и выдаст статистику.
Проконтролируем результат восстановления ФС:
Программа больше не ругается. Теперь можно подкинуть диск опять в упавшую систему и с него загрузиться, перед этим можно сделать бэкапы важных файлов на маточной системе.
Когда всё важное скопировано можно и поиграться для выявления плохих блоков:
Выберите букву диска в зависимости от вашей системы. Если в конце выдаст инфу о присутствии битых блоков, то читаем ниже. Диск нужно лечить и это возможно!
Заходим на сайт проги MHDD и выбираем удобоваримую версию. Я работал с дискеты (USB Floppy).
В меню выбираем
Это сотрёт все блоки посекторно (и всё инфу на диске!), что и удалит Current_Pending_Sector из таблицы SMART, если проблемы были soft-bad, тоесть не железные. Если нет, то опять есть выход - несите диск на помойку! Это уже не может быть сервером. 
Проверяем SMART, если контрольные значения стали по нулям, то осталась самая малость:
Ось и усе любі друзі!
Буду рад, если кому-то поможет.

На любое действие из консоли был только такой ответ:
Файловая система доступна только для чтения

Для админа увидеть такое сообщение - настоящий АД!

Сразу нарисовалась триединая задача:
- - достучаться до сервера;
- - диагностировать проблему и её причины;
- - восстановить файлы баз данных.
При несоответствии хранимых в системе каталогов целостности ФС происходит самозащита от ещё большего её разрушения, тоесть только чтение.
Причин может быть масса: неправильная парковка, физический износ HDD, ошибки контроллеров и т.д. Сначала стоит проверить SMART HDD.
Перезагрузиться обычным способом у вас не получится, сервер хчать хотел на любые команды (sbin/reboot: Ошибка ввода/вывода), в том числе и на
Код:
reboot
Код:
echo 1 > /proc/sys/kernel/sysrq
Код:
echo b > /proc/sysrq-trigger
Проверяем состояние HDD.
Утилита smartmontools:
Код:
smartctl --all /dev/sda
Код:
Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 081 065 044 Pre-fail Always - 148971598 3 Spin_Up_Time 0x0003 099 099 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 31 [COLOR="#FF0000"] 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0[/COLOR] 7 Seek_Error_Rate 0x000f 076 061 030 Pre-fail Always - 8675665654 9 Power_On_Hours 0x0032 094 094 000 Old_age Always - 5866 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 037 020 Old_age Always - 31 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0 188 Command_Timeout 0x0032 100 090 000 Old_age Always - 26 189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0 190 Airflow_Temperature_Cel 0x0022 066 039 045 Old_age Always In_the_past 34 (0 22 35 19) 194 Temperature_Celsius 0x0022 034 061 000 Old_age Always - 34 (0 16 0 0) 195 Hardware_ECC_Recovered 0x001a 065 037 000 Old_age Always - 148971598 [COLOR="#FF0000"]197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0[/COLOR] 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
Reallocated_Sector_Ct - количество переназначенных секторов;
Current_Pending_Sector - секторы кандидаты на замену (подозрительные);
Offline_Uncorrectable - количество нескорректированных ошибок, то есть серьёзное повреждение поверхности диска. Появляются такие ошибки когда заканчивается место в резервной зоне диска для переназначения секторов.
У меня значение Current_Pending_Sector было - 97!
Порядок восстановления файловой системы:
Есть два варианта: работать в повреждённой системе и подкинуть снятый диск в рабочую систему Linux. Я использовал второй вариант. Если доступен второй вариант, то вы легко сможете сделать резервные копии с существующими правами доступа и хозяевами файлов.
Основное: проверяемый диск должен быть отмонтирован из системы! Иначе будут утеряны данные.
Скорее всего у вас второй диск будет определяться как sdb:
Код:
fdisk -l
Код:
fsck -p /dev/sdb1
Код:
/dev/sdb1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
Мы и должны выбрать вариант с автоматическим ответом "yes" на все вопросы (восстановить, перезаписать пустые блоки и прочее):
Код:
fsck -vyfc /dev/sdb1
Программа отработает до конца и выдаст статистику.
Проконтролируем результат восстановления ФС:
Код:
fsck -p /dev/sdb1
Когда всё важное скопировано можно и поиграться для выявления плохих блоков:
Код:
badblocks -v /dev/sda
Заходим на сайт проги MHDD и выбираем удобоваримую версию. Я работал с дискеты (USB Floppy).
В меню выбираем
Код:
ERASE

Проверяем SMART, если контрольные значения стали по нулям, то осталась самая малость:
- - поставить начисто систему:
- - пробэкапиться обратно, тоесть залить назад копии;
- - вернуть все настройки;
- - отнести сервак в дата-центр (или вернуть под батарею как у ботов
)
Ось и усе любі друзі!
Буду рад, если кому-то поможет.
Коментар