“простым смертным” надо просто клик хере и у них 99% функционала работает, а на остальное им пофигу. А нам чуть что так либо виртуалка либо на свободный раздел либо несовместимость форматов либо ещё какая хрень. А годов уже далеко не двадцать и жизни осталось не бесконечность. — Никита Ющенко про виндузовый рай
Началось всё с того, что у меня в ноутбуке стоит SSD Transcend TS256GMTS400. (При чем не от производителя ноутбука, а купленный на амазоне и установленный самостоятельно.) Вроде бы работает нормально, но изредка (иногда раз в неделю, иногда пять раз за день) вдруг подвисает на пять-десять секунд, после чего происходит пачка таймаутов операции чтения на ata, выполняется hard link reset и всё работает дальше как ни в чем не бывало. При чем обычное чтение всего устройства проходит без проблем.
Возможно в фоне ядро вызывало TRIM на устройстве, а эта операция на некоторых SSD приводит (или раньше приводила) к заметным проседаниям производительности (вплоть до вот таких подвисаний). Не знаю деталей, посмотрел я на версию прошивки, глянул в интернете, вроде на скриншотах много где указана версия старше, при чем значительно, так что надо обновлять. Более-менее привычная задача.
Тут-то всё и завертелось…
Вначале я залез на сайт производителя. (Ну если быть совсем честным, я туда залез чуть раньше, когда пытался понять какая версия прошивки сейчас актуальная, и уже тогда начал подозревать…) Производитель явно не отличается дружелюбностью. В разделе Support/Download для данного SSD лежит одна единственная ссылка на нечто, называемое SSD Scope. Какая-то утилита, которая работает под виндой и выводит “состояние здоровья” вашего накопителя. Правда на скриншотах было видно, что один из пунктов в интерфейсе называется “Firmware status/upgrade”. Так что, выходило, что надо качать и ставить этот софт под винду.
Так как это прошивка для SSD, подключаемого по M.2, да еще и того, на котором стоит система, то обойтись виртуалкой с пробросом в нее физического устройства скорее всего не получится (а даже если и получится, то как-то слишком рискованно). Переставить SSD в другой компьютер тоже проблематично: и интерфейс редкий и разбирать X240 крайне много мороки (чертовы китайцы!). Значит нужна живая винда. =(
Надо сказать, что на тот момент у меня на ноутбуке даже были какие-то остатки предустановленной винды. Проблема только в том, что из коробки винда стояла где-то на sda3, при этом sda1 был EFI boot раздел с ейным загрузчиком. Когда я поставил SSD, я первым делом сделал EFI boot раздел на sdb1 (то есть на этом самом SSD), sda переразбил, снеся всё ненужное, а виндовый загрузчик положил на sdb1. И даже заставил эту винду загружаться. Проблема только в том, что потом, в какой-то момент, я переносил данные с другого ноутбука, и, совсем забыв про винду, перезаписал в числе прочего и EFI boot раздел целиком. Так что винда у меня вроде как была, но её загрузчика уже не было.
Ну ок, починять свой загрузчик винда умеет аж со времен Windows NT 4.0, значит надо забутиться с инсталляционного носителя и восстановить, делов-то. Не тут-то было. Во-первых, как выяснилось, у винды до сих пор туго с загрузочными USB. Нельзя просто взять и записать ISO образ на USB, как уже давно делается в приличном обществе. Надо либо запускать встроенный мастер создания инсталляционного носителя (который будет качать все 4 ГБ из Интернета), либо использовать сторонние инструменты вроде rufus (которые берут данные из iso образа, но всё равно копируют файлы весьма медленно). Ну и, понятно, работает это всё только под виндой, благо у меня есть некоторое количество виртуалок, пробросить внутрь которых USB накопитель не представляется сложным.
Попробовал восстановить загрузчик… Два раза… Оба раза было так: загружается инсталлятор, я ему говорю, что хочу починить свою винду, он радостно говорит “у вас поврежден загрузчик, щас починю”, после чего рисует какой-то BSOD и… больше с этого USB диска уже загрузиться не получается, потому что, судя по всему, загрузчик он чинит сам у себя. “Разрешите я выстрелю себе в ногу, сэр!”
Черт с ним. Решил поставить винду с нуля. Фиг. Не нравится ей что-то. Пишет что на данный раздел установить винду невозможно, потому что диск имеет разметку GPT. После некоторого чертыхания, удаление раздела, затирания данных на разделе и т.п. таки удалось уговорить инсталлятор, что ставить можно и нужно и винда-таки поставилась…
Уже во времена приснопамятного Windows NT 4.0 виндовый загрузчик был достаточно умный. Он поддерживал менюшки, chainload других загрузчиков и всё такое. Конечно инсталлятор не мог понять всякие там линуксы, биэсди и прочее, тупо затирал MBR своим stage 1 bootloader, и в меню добавлял только другие найденные инсталляции той же винды. Но то был прошлый век. Сегодня у нас всё технологичнее, есть UEFI, с его стандартизованным процессом выбора загрузчика и т.п. Но фиг там. Винда заставила меня биться в истерике… первый раз…
21 век. Космические корабли, всё такое… Для совместимости и интероперабельности в области загрузки персональных компьютеров изобретен стандарт (U)EFI, со специальным разделом, куда разные ОС могут складывать свои загрузчики, чтобы потом их запускать из начальной микропрограммы EFI.
А долбаный Windows 10 ПРОДОЛЖАЕТ УДАЛЯТЬ ЗАГРУЗЧИКИ других операционных систем. Но так как теперь по стандарту они ему не мешают, он, для надежности, при инсталляции переформатирует все найденные EFI Boot разделы!
Реальность оказалась еще более фееричной. После того, как починил загрузку рабочей системы, я вернулся к исходной задаче, то есть к перепрошивке SSD. Загрузился в винду, поставил SSD Scope, перешел в раздел с информацией о прошивке… “Для вашего устройства есть более новая прошивка, скачать?” – радостно спросила меня программа. “Конечно да”, – ответил я. После чего ничего не произошло. Но в Диспетчере задач (а надо сказать, что диспетчер задач и прогрессбар файловых операций – это две реально отличные новые фишки в восьмой винде) было видно, что что-то оно-таки качает. Через некоторое время вдруг всплыло окошко “Новая прошивка скачана. Открыть?”
На самом деле об этом можно было догадаться раньше. Как можно из винды обновить прошивку накопителя, с которого, возможно, эта винда и загружена? Конечно инженеры Трансценда тоже об этом подумали. И, конечно, решили, что безопаснее будет, если пользователь загрузится с чего-то другого. Например с USB. К сожалению, это не прошивка BIOS и не устройства на какой-нибуть legacy шине, типа PCI, поэтому из DOS этого сделать не получится. Windows PE, конечно, более-менее подойдёт, но весит много, сложна в лицензировании и не все просто с поддержкой аппаратуры. Какую ОС выбрать для такого носителя, чтобы она +/- везде загрузилась и увидела все устройства без всяких там миллионом драйверов? Ну да, вы правильно догадались. SSD Scope просто скачал мне архив, в котором лежал образ специального Линукса, руководство и программка под винду, которая умеет переформатировать флэшку и записать на нее выбранный образ. Так со мной случилась истерика второй раз.
Но и это еще не все. Воспетая Никитой стратегия “клик хере” не сработала, флэшка записывалась, но при загрузке с нее не оказывалось ни иксов, ни программы прошивки. Разбираться не стал, выдрал прошивальщик с файлами из архива, загрузился по сети в GParted Live, запустил прошивальщик и… он сказал, что щас всё с SSD сотрёт полностью. Не знаю, что в такой ситуации делают “простые смертные”, а мне пришлось еще сдампить всё содержимое вначале на диск, а потом после перепрошивки обратно на SSD.
В общем задача решена: SSD, вроде, больше не подвисает, но лулзов и потраченного времени, как по мне, так несколько слишком. Единственное что не могу понять, так это какая из всего этого мораль, видимо придётся додумывать читателям.