Многим знакомая картина? Винда не может найти диск для загрузки.
Рецепт, как это лечить - под катом. Это знает любой опытный админ, но гугл "засрал всю выдачу" и новичкам нарыть информацию (да ещё и с пониманием почему так а не эдак) - сложно.
Но сегодня пойдет речь не только об этом. А о высере творчестве инженеров фирмы Seagate благодаря которому эта картинка может приключиться на совершенно рабочей системе, прямо во время копирования файлов. Или доступа операционки к системным файлам - как повезёт.
Речь пойдет о десктопных и ноутбучных дисках фирмы Seagate. Печально известная "муха CC" времен десятого и одиннадцатого поколения баракуд никуда особо и не девалась. Да, они пофиксили баг, что он теперь не приводит к проблемам фатально и немедленно, но до конца его и не искоренили.
Я скептически подозреваю, что до момента полного переписывания прошивки дисков с интерфейсом SATA (или отмирания этого интерфейса, смотря что будет раньше) этой фирмы - и не искоренят.
В чем же дело? А дело в низкой надежности работы привода головок у дисков этой фирмы. Точнее так. Пока они работают не торопясь и последовательно (например в режиме IDE), то все вроде бы нормально. Внешне.
Смарт при этом сыпет ошибками позиционирования и коррекцией ошибок. Примерно так. Смотрим параметр Seek Error Rate, который тут не выделен (картинка из интернетов)
При этом современные "смарт толкователи" научились на эти ошибки "закрывать глаза" и непонятливо мигать на юзера "зеленым глазом". Мол "все хорошо у тебя хозяин, диск жив-здоров". А вот х нет.
До тех пор, пока у вас система лениво перекатывает байтиками туда-сюда - все хорошо. Как только вы начинаете работать на компьютере - крупный проект в любом CAD, работа с большими файлами в фотошопе/кореле/где там ещё. Или Win 10 решила обновить очередной большой "веховый" Update...
То у вас есть все шансы словить состояние как на КДПВ, или грустный смайлик в исполнении более новой версии винды...
Какие в процентном соотношении? Не знаю. Моя личная статистика говорит о том, что дольше года саташный Seagate, начиная с 9-го поколения (причем патченный на муху CC) в режиме AHCI под нагрузкой не живет. Без нагрузки - может прожить и два года. Под торрентокачалкой хотя бы 5/8 дохнет за полгода.
Я видел нескольких знакомых, у которых 11-я барракуда живет уже 8-й год и в ус не дует. Либо им везет, либо у них компы работают при +18°С, либо нагрузки на диск они почти не создают.
Не знаю, будет ли реагировать на эту проблему производитель (хотя если за 10 лет не почесался, то сейчас и точно не вспомнит). Но реагировать на это админам (независимо от того - домашним или корпоративным) - надо. Иначе - в лучшем случае вы теряете данные до последнего восстановимого бэкапа. Это если вы из тех, кто уже. А типичный юзер, или если вы ещё (не делаете бэкапы (грустный смайлик) ), то теряете все данные полностью...
С теорией закончили. Теперь к сути.
Где проблема встречается: на любом десктопном или ноутбучном диске фирмы Seagate с интерфейсом SATA и поддержкой AHCI, то есть поколения 9 и новее. Есть мифические звери из породы хищных рыб поколения 8, у них этой проблемы нет, почему - см. ниже, но их давно не производят.
А поколение барракуда 7 - это уже IDE. И там тоже все хорошо.
Внешние симптомы, указывающие на проблему:
- Система долго тупит (особенно при загрузке закэшированных иконок и/или пунктов контекстного меню).
- При копировании файлов рапортуется что все хорошо (причем любым способом, даже командой copy из командной строки), а в копии файлы с нужным размером, но одними нулями или наоборот FF вместо содержимого. Иногда бывает рандомный мусор.
Как проблему обнаружить и однозначно диагностировать.
1. Запускаем любой внятный смарт-толкователь (HDD Guardian, MHDD, Victoria - по вкусу). Главное - чтобы программка могла показать детальную смарт информацию. Нас, в первую очередь, интересует строчка "Seek Error Rate". У жесткого диска здорового человека этот показатель должен быть ноль. Допускается сотня другая ошибок, если диск грели, толкали, вибрировали и все такое. Релокейты и бэды не рассматриваем как восстановимый случай - "доктор сказал в морг, значит в морг".
2. Параллельно запускаем тест на случайный поиск или чтение (важно - тест запись не надо включать, можно ушатать что-нибудь нужное на диске). Тут хорошо подойдет команда CX в MHDD или любой тест на случайное чтение, например с помощью HDD Guru. Можно просто кучку мелких файлов покопировать туда-сюда (типичный проект в исходниках C/C++ подойдет).
3. Если параметр Seek Error Rate после теста в пару десятков секунд заметно вырос - то да, проблема есть. Если параметр не растет (даже если набрал десяток тысяч ошибок за год-другой работы) - то можно спокойно использовать диск без изменений режимов. Но я такого не встречал в не энтерпрайз дисках этой самой фирмы.
Как проблему решать:
Способ 0. Не поднимать её. Это самый простой и надежный способ. Я не покупаю диски этой фирмы со времен 9-го её поколения и всех хороших знакомых стараюсь отговаривать. И дело тут не в механической надежности. А в том, что даже новые и новейшие диски этой проблеме подвержены. Потому что фирмварь у них кривая. Но увы, этот способ недоступен тем, кто купил "ноутбук в кредит" или "игровой комп 2 гига 2 ядра (4 гига 4 ядра)". Там с вероятность в 99.9% будет именно Seagate. Еще грустные админы в госконторах, закупающих "готовые" системники по дешману не могут избежать этой участи. И нет, даже фирмовые компы от этого не застрахованы - лично видел и дорогущую рабочую станцию Fujitsu-Siemens и простенький офисник Dell все с теми же баракудами, будь они неладны здоровы.
Способ 1 APM 128. Доступен не всем дискам. В самом дешевом сегменте все производители современных жестких дисков (и не только Seagate) эту функцию отключают. Из того софта, что я знаю - поможет MHDD 4.6 и DOS версия Victoria. Встречаются они оба на типичных загрузочно-восстановительных образах и дисках вида "мультитул админский". Да, обе утилиты скорее всего потребуют режима IDE Legacy в BIOS (и не запустятся на более современных компах, где только UEFI и AHCI - ищите антиквариат).
Заключается в том, чтобы зайти в любую программу, которая умеет настраивать параметры ATA диска командами и грохнуть APM в значение 128. Например, в MHDD это так и делается - набирается команда APM и набирается цифра 128. Это переводит режим перемещения головок в более щадящий (и более медленный) режим. Способ сказывается на скорости работы жесткого диска, но не так фатально, как способ 2.
Если после того как диск переведен в режим энергосбережения, при случайном поиске Seek Error Rate растет по-прежнему, то стоит озаботиться поиском прошивки на ваш диск поновее. Могли и пофиксить багу. Да, после перепрошивки режим APM 128 придется поставить еще раз.
Способ 2. IDE режим. Помните я обещал уточнить про восьмое поколение барракуд Seagate? Так вот - это снаружи SATA, а внутри IDE. Да, эти диски не умеют в AHCI. Хотя репортят свои возможности, как "поддержка AHCI - есть". По сути они просто буферизуют команды ОС на работу с секторами, но никак их не перетасовывают. То есть работают в старом добром IDE UDMA, только по последовательному интерфейсу.
И любой новый диск можно заставить работать в этом режиме. Для этого нам к диску не надо так близко лезть, чтобы кормить его ATA командами.
Тут я повозмущаюсь на тему того, что в современной гугловыдаче внятной информации на эту тему нет. Да, есть куча роликов на ютубе (и чуть меньше статей) на тему как переключить IDE в AHCI. Но вот как это сделать обратно - увы и ах. И систематизации тоже никакой - тупо "вбейте вот это вот в реестр и у вас все будет".
Итак, теория по способу. У Windows есть два стандартных (встроенных в любую хотя бы условно современную версию) драйвера - pciide.sys и msahci.sys (storahci.sys для винды поновее). Именно эти два товарища "отвечают" за режим работы ОС с диском на этапе первичной загрузки. И именно их неверный выбор при загрузке вызывает этот самый BSOD (см. КДПВ).
Как лечить?
Штатно - запускаем наш любимый regedit.exe (обязательно под админом) и находим там ветки:
HKLM\System\CurrentControlSet\Services\msahci (это для Windows Vista и 7)
или
HKLM\System\CurrentControlSet\Services\storahci (это уже для Windows 8 и 10)
а также
HKLM\System\CurrentControlSet\Services\pciide
Во всех этих ветках есть параметр "start". Нас интересует два значения 0 и 4.
0 - это автозапуск, 4 - это отключено (можно по вкусу 3 - ручной запуск, но надежней 4) .
Наша задача совместить режим работы диска, выставленный в BIOS и параметры этих самых веток реестра.
Если у нас в BIOS выставлено AHCI (или рейд, для любителей bdsm в исполнении производителя чипсета), то в ветке msahci (storahci) параметр start должен быть 0, а в ветке pciide, параметр start должен быть 4.
Для счастливых пользователей (и админов) Windows 8 и 10 дополнительно надо зайти в подраздел /StartOverride соответствующей ветки и выставить дублирующим образом параметр 0 соответственно в 0 или в 3, по такой же схеме - 0 вкл, 3 выкл. Тут надо именно 3, а не 4, иначе при обновлении драйверов контроллера SATA может случиться BSOD.
Если наоборот - нам нужен режим IDE (Legacy IDE, Compatibility IDE и т.п.), то pciide надо задать в 0, а msahci (storahci) - в 4.
Последовательность простая - сначала меняем все в реестре, потом перезагружаем и меняем настройку в BIOS.
Но это ещё не всё. Счастливых пользователей доменов ждет сюрприз. Этот параметр можно изменить только с помощью локальной учетки Администратора и (крайне желательно) без подключения к домену. Администратор из домена этот параметр поменяет (и винда даже не ругнется), но после перезагрузки все вернется как было.
Если вы не знаете этот пароль (или локальная учетная запись отключена), берем любой Win PE загрузочный диск, грузимся с него и правим с помощью Regedit PE все тоже самое. С той лишь разницей, что CurrentControlSet у вас не будет, а будет ControlSet001, 002 и т.п.
Если есть время и желание поэкспериментировать - то можно найти нужный конфиг перебором, начиная с 001. Обычно именно он CurrentControlSet в загруженной ОС. Но могут быть нюансы (особенно если этот экземпляр винды клонировали, копировали, мигрировали и всячески размазывали по тонким клиентам).
В общем случае (винду ставили с нуля именно на этот компьютер и никак не восстанавливали дополнительно) - ControlSet будет две штуки - 001 и 002. Меняем их оба как нам нужно и считаем работу законченной.
Недостаток способа - диск будет работать медленнее. В случае с Windows 8 и Windows 10 - очень ощутимо медленнее. Эти версии любят много мелких файлов, и с ними режим IDE работает крайне неторопливо. Зато он вам не заполнит файлы нулями при копировании и не ушатает установленную операционку при обновлении важных системных файлов или настроек. И можно будет если не постоянно "жить и работать", то хотя бы дотянуть до замены жесткого диска на более правильный без эксцессов вида "Аааа! у нас все документы пропали! месяц (год) работы псу (коту) под хвост!".
После загрузки операционка захочет поставить "новые" драйвера на "новое" оборудование. Не стоит ей мешать - пусть поставит. И даже из интернета их попробует загрузить. BSOD она вам уже не сделает (если конечно у вас не кривой чипсет с не менее кривыми, но тем не менее сертифицированными MS дровами, но это вы уже сами с ними разбирайтесь), и останется в "общих рамках" заданной политики - IDE или AHCI.
Тег "мое" не ставлю, так как откровений тут нет. Всё нагуглено и просто слегка причесано в систематизированный вид.
Дисклеймер: нет, мне не стыдно ругать Seagate. У меня сегодня забомбило от "никогда такого не было и вот опять" на очередном компе в исполнении терабайтной барракуды 7200.12. И хорошо, что бэкапы юзер этого компа уже - ни одного байта важных данных не пострадало. Диски этой фирмы я буду покупать только в том случае, если все другие производители разорятся.
При этом их старые изделия, такие как знаковые ST-225A и ST-157A, и даже барракуда 7200.7 я вполне уважаю. Раньше они умели делать.