Ami native nvme driver support что это

Обновлено: 19.05.2024

Как поставить операционную систему на NVME SSD с устаревшей материнской платой. Часть вторая: модификация BIOS

В первой части нашего материала мы узнали, как использовать в качестве загрузочного накопители NVME на старых материнских платах, не поддерживающих нативную загрузку с NVME. Теперь же рассмотрим еще один, более «элегантный и правильный» способ — модификацию биоса.

Прелюдия

NVMe SSD диск, как правило, имеет разъем М.2, и работает как бы на прямую с процессором, по шине PCI-E.

Поэтому если на вашей материнской плате нет разъема М.2, то для начала рекомендуется обзавестись переходником PCI-E >> М.2, или PCI-E RAID контроллером для SSD формата М.2.

Существует немного продвинутых NVMe SSD дисков, которые имеют на борту собственные эмулятор Legacy устройства. Например Samsung 950 Pro имеет дополнительный rom для загрузки как Legacy устройство на старых BIOS. А вот вся серия EVO такой возможности не имеет.

Прошивка BIOS

Полученный файл переносим на флешку, отформатированную в файловую систему FAT32. Заходим в биос по клавише DEL.


Сбрасываем настройки, по умолчанию выбрав «Load Fail-Safe defaults». После перезагрузки заходим еще раз в биос, нажимаем F8 для запуска утилиты-прошивальщика Q-Flash.


Делаем резервную копию установленного экземпляра биоса. Для этого выбираем пункт Save BIOS to Drive.


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

После окончания процесса сохранения выбираем Update BIOS from Drive, выбираем файл h67md2b3.f7.

Подтверждаем, что мы хотим прошить данный файл, и ждем окончания процесса.

Нажимаем Esc для выхода, подтверждаем.

Еще раз заходим в биос. Если все было сделано верно, то в меню «Advanced BIOS Features — Hard Disk Boot Priority» появится новое загрузочное устройство — нужный нам NVME SSD.

Выбираем его как основное загрузочное устройство и устанавливаем операционную систему.

Выбор режима работы SATA (IDE, AHCI, RAID), NVMe

Выбор режима работы SATA (IDE, AHCI, RAID), NVMe

Идеальная сборка — это когда каждый компонент системы работает со 100% отдачей. Казалось бы, такая тривиальная задача, как подключение жесткого диска к материнской плате не должна вызвать особых затруднений. Подключаем HDD к соответствующему разъему, и, вуаля — в системе есть место для развертывания операционки и хранения файлов. Но не все так просто!

Чтобы познать дзен сборки и получить оптимальную по определенным параметрам (быстродействие, надежность и т. д.) систему, нужно обладать определенным пониманием логики работы современных протоколов и алгоритмов передачи данных, знанием режимов работы контроллера HDD на материнке и умениями в области их практического использования.

Тестовый стенд

Тестовый стенд с Legacy BIOS был взят из первой части:

  • Intel Pentium G2020;
  • Gigabyte GA-H67M-D2-B3;
  • 8 ГБ ОЗУ;
  • M.2 NVME Smartbuy Stream E13T 256 ГБ.

Для работы с AMI UEFI тестовый стенд выглядел таким образом:

  • AMD A4-5300 APU;
  • Asus F2A55-M LK;
  • 8 ГБ ОЗУ;
  • M.2 NVME Smartbuy Stream E13T 256 ГБ

Что такое NVMe у твердотельных накопителей?

Что такое NVMe у твердотельных накопителей?

Аббревиатура NVMe сейчас на слуху. То тут, то там можно услышать или прочитать, что-то вроде «Не хочу SATA, это старье. Хочу NVMe!» А что же это вообще такое? Давайте разбираться.

Какие преимущества дает использование NVMe в накопителях?

Использованием линий PCIe означает высокий максимальный предел теоретических скоростных характеристик дисков, что было показано еще накопителями, не поддерживающими NVMe. Тогда зачем нужна была вся затея с ее разработкой?

Увеличение глубины очереди команд и количества очередей

Первые диски хоть и показывали высокие скорости, используя преимущества шины PCIe, но использовали эмуляцию AHCI, где была лишь одна очередь на 32 команды. Использование одной очереди обусловлено тем, что AHCI создавался для жестких дисков, а у них ни о каком параллелизме при работе думать не приходилось. С появлением SSD все изменилось. В спецификации NVMe заложено использование до 65535 очередей и до 65535 команд в каждой очереди с указанием приоритета очередей и четким арбитражем последних. Эти огромные показатели хоть и не нужны сейчас, но задел на будущее оставляют приличный.

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

Работа с многоядерными/многопроцессорными системами, внедрение механизма прерываний и поддержка виртуализации

Совместно с первым пунктом это нацелено на увеличение параллелизма в работе, что в результате приводит к улучшение скоростных характеристик. Каждое ядро процессора может управлять несколькими очередями (отправка/завершение). Управление прерываниями (MSI-X — Message Signaled Interrupt Extended) позволяет при поступлении приоритетной задачи быстрее поставить ее на выполнение. Также была произведена оптимизация по поддержке работы с технологиями виртуализации, которая обязательна для серверов, куда NVMe в первую очередь и были нужны.


Проведем параллель с дорогой. Ясно, что пропускная способность однополосной дороги существенно меньше, чем у четырехполосной. Если только у нее не одна полоса (ядро) для въезда, иначе это колосс на глиняных ногах. А если по дороге будет ехать пожарная машина, то все расступятся и она проедет первой (спасибо прерываниям и приоритизации).

Сокращение задержек при работе

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


Примерной аналогией будет ситуация, когда вам нужно пробежать обычную стометровку и с препятствиями. Первую, конечно, пробежать проще и быстрее, особенно если у вас ноги длиннее (проще команды) и быстрее двигаются (меньше расходуют ресурсов).

Ускорение работы с оперативной памятью

Если AHCI требовалось два запроса в DRAM, то NVMe использует один запрос на чтение 4 Кб, обеспечивая эффективную работу небольших операций ввода/вывода. Опять же сокращает накладные расходы, позволяя увеличить эффективность в единицу времени в сравнении с AHCI. Ведь быстрее оплатить покупку просто приложив карту, чем еще дополнительно вводить пин-код.

Это лишь несколько основных важных отличий NVMe, по которым виден основной вектор при работе над протоколом. SSD, в отличие от HDD, обладает некоторой степенью параллелизма — контроллер поддерживает несколько каналов для подключения микросхем памяти. В итоге большой пласт работы направлен на максимальную возможность распараллеливания операций. Несколько очередей с большой очередью команд — сценарий, в котором накопители показывают лучшие результаты. Работа с многоядерными процессорами также позволяет максимально загрузить работой диск.

Другой целью разработки было исключение промежуточных звеньев. Так удаление контроллера SATA из цепочки «процессор — накопитель», новые команды и драйвер позволили снизить задержки в обработке команд так, что основным фактором, влияющим на латентность, стали сами микросхемы NAND. Они же и остаются лимитирующим фактором в скорости записи. 3DXpoint от Intel сделала первый шаг в направлении уменьшения латентности памяти. Будем ждать, что смогут преподнести будущие типы микросхем.


Все внесенные изменения обеспечили не только и не столько скачок в скоростных показателях (это сделал еще переход на PCIe в SSD, эмулировавших AHCI), а существенное увеличение числа операций ввода-вывода (IOPS), что особенно важно в высоконагруженных сценариях/режимах работы.

Опять же если вернуться к AHCI, то ее разработка зиждилась на максимальном сохранении совместимости с разными устройствами. NVMe же возводили практически с нуля, основываясь лишь на использовании линий PCI-Express. И это наложило некоторые особенности реализации в конечном итоге.

Так для работы NVMe необходима поддержка со стороны операционной системы (ОС). Впрочем, сейчас драйвер есть во всех современных ОС: Windows, Mac OS и ядрах Linux/BSD. А для использования в качестве загрузочного накопителя, потребуется наличие драйвера в UEFI материнской платы. Как его добавить в старые модели плат, можно прочитать здесь.

BIOS и UEFI — разница есть!

Прежде чем рассматривать режимы работы SATA, следует познакомиться и рассмотреть различия между BIOS (базовая система ввода/вывода) и UEFI (унифицированный интерфейс расширяемой прошивки), ведь именно с их помощью придется вносить изменения в конфигурацию системы.

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

Начиная с 2012–2013 годов, большинство материнских плат снабжается UEFI — усовершенствованной управляющей программой, наделенной графическим интерфейсом и поддерживающей работу с мышью. Но, что называется «по старинке», оба варианта, на бытовом уровне, называют BIOS.

Даже неискушенному пользователю понятно, что причиной столь радикальной смены курса при создании UEFI стало не желание производителей «приблизить» интерфейс к конечному пользователю ПК, сделать его более удобным и понятным, а более веские причины.

Таким весомым аргументом стало ограничение на возможность работы с накопителями большого объема в изначальной версии BIOS. Дело в том, что объем диска ограничен значением, приблизительно равным 2,1 ТБ. Взять эту планку без кардинальных изменений управляющего софта было невозможно. К тому же БИОС работает в 16-битном режиме, используя при этом всего 1 МБ памяти, что в комплексе приводит к существенному замедлению процесса опроса (POST-опрос) устройств и началу загрузки из MBR области с установленной «осью».

UEFI лишена вышеперечисленных недостатков. Во-первых, расчетный теоретический порог объема дисковой подсистемы составляет 9,4 ЗБ (1 зеттабайт = 10 21 байт), а во-вторых, для загрузки операционки используется стандарт размещения таблиц разделов (GPT), что существенно ускоряет загрузку операционной системы.

Разметка жестких дисков

Как говорилось ранее, у стандартов BIOS и UEFI — различный подход к разметке области жесткого диска. В BIOS используется так называемая главная загрузочная запись (MBR), которая четко указывает считывающей головке HDD сектор, с которого нужно начать загрузку ОС.

В UEFI это реализовано иначе. В этом стандарте используется информация о физическом расположении таблиц разделов на поверхности HDD.

Как это работает?

Каждому разделу жесткого диска присваивается свой собственный уникальный идентификатор (GUID), который содержит всю необходимую информацию о разделе, что существенно ускоряет работу с накопителем. К тому же при использовании GPT риск потерять данные о разделе минимальны, поскольку вся информация записывается как в начальной области диска, так и дублируется в конце, что повышает надежность системы в целом.


Для понимания — при использовании MBR, информация о загрузочной области находится только в начале диска, в строго определенном секторе и никак не дублируется, поэтому, при ее повреждении, загрузить операционную систему с такого диска будет невозможно. Систему придется устанавливать заново.

Еще одно существенное отличие — при использовании «старого» BIOS и MBR на диске можно максимально создать четыре логических раздела. В случае необходимости создания их большего количества придется доставать свой шаманский бубен и прибегнуть к определенным действиям на грани магии и «химии». По сути, предстоит проделать трюк с одним из основных разделов. Сначала преобразовать его в расширенный, а затем создать внутри него нужное количество дополнительных разделов. В случае использования стандарта GPT все это становится неактуальным, поскольку изначально в ОС Windows, при использовании новой философии разметки HDD, пользователю доступно создание 128 логических разделов.

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

Оптимальный вариант — иметь в ПК два физических диска. SSD объемом 120–240 ГБ под систему и быстрые игрушки и HDD под документы и файлы мультимедиа необходимого объема.

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

За и против

Суть модификации в том, что мы добавляем в родной биос материнской платы EFI-модуль, или Option ROM, для поддержки NVME-накопителей.

Почему этот способ более правильный, чем использование менеджеров загрузки? Вы избегаете использования дополнительной программной прослойки: никакого увеличения времени загрузки, ковыряния в конфигурационных файлах, использования флешек или других носителей для размещения загрузчика. С точки зрения пользователя, процесс загрузки операционной системы (ОС) никак не меняется.

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

AMI UEFI

В качестве носителя UEFI от AMI была выбрана материнская плата от Asus.

Как и для модификации Award, нам потребуется определенный набор инструментов:

  • Оригинальный биос материнской платы (берем версию, которая уже установлена на плате).
  • Приложение для редактирования UEFI.
  • Модули поддержки NVME дисков.
  • Пакет утилит AFU — AMI Firmware Update Utility.

В качестве утилиты для работы с UEFI будем использовать UEFITool от CodeRush. А непосредственно интегрируемый модуль — NvmExpressDxe_4.ffs. Для плат, где свободного места не хватает для внедрения указанного модуля, можно использовать его «облегченную» версию — NvmExpressDxe_Small.ffs. Из пакета AFU (в нашем случае потребовалась версия AFUWIN64_v3.05.04 с поддержкой ключа /GAN) нам нужен исполняемый файл под Windows — AFUWINx64.EXE, а также amifldrv64.sys для его работы.

Для упрощения процесса производим все манипуляции из Windows, развернутой на подопытной плате. Размещаем все файлы в одной папке для удобства.


Делаем резервную копию установленного биоса. Для этого запускаем командную строку (CMD) от имени Администратора и переходим в папку с файлами командой: cd c:\ami, где c:\ami — путь к папке с нашими файлами.


Далее делаем саму резервную копию: afuwinx64 backup.rom /O, где backup.rom — имя файла резервной копии (можете назвать на свой вкус), /O — ключ для создания бэкапа. «Reading flash … done» оповестит об окончании процесса.


Теперь можно отложить окно командной строки, можно даже не закрывать — скоро потребуется. Открываем UEFITool. Идем в меню File — Open image file.


Выбираем файл бэкапа, полученный ранее (backup.rom). Откроется окно программы, нажав на UEFI image, можно увидеть структуру выбранного файла.


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

Открываем меню File — Search или воспользуемся сочетанием клавиш Ctrl+F. В открывшемся окне выбираем вкладку Text, вводим в поле DXE, проверяем, что активирован чек-бокс Unicode и жмем «OK».


В нижней части окна, именуемой «Messages», будет выведен список совпадений.


Сделайте двойной клик левой кнопкой мыши на любой из записей и попадете в раздел, где было найдено совпадение. Ориентируемся по полю «Subtype»: если видите там «DXE driver», то вы в верной секции.


Можно также ориентироваться на модуль «CSMCORE».


Нас же интересует самая нижняя запись, после которой идет «Volume free space». В данном случае это запись с подтипом «Freeform», но это может быть и DXE driver.


Встаем на нее, жмем правой клавишей мыши и выбираем пункт Insert after.


И выбираем нужный для интеграции модуль.


Обратите внимание, что модуль должен оказаться в самом конце списка, прямо перед Volume free space. Определить его можно по имени модуля в столбце «Text».


Сохраняем полученный файл, вводим нужное имя модифицированного файла биоса (в примере mod.rom).


После того, как вы нажмете кнопку «Сохранить», вас спросят о том, хотите ли вы открыть измененный файл. Соглашаемся.


Откроется заново структура файла. Идем в раздел, куда мы вставляли модуль, и проверяем, что он там сохранился. Раскроем его запись и удостоверимся, что там есть обе (image и interface) секции.


Если все в порядке, то биос готов для прошивки.

Использование новых NVMe SSD в качестве загрузочного диска на старых системах с Legacy BIOS (для любой ОС)

Короткий мануал — как реализовать поддержку загрузочного NVMe SSD на старых материнских платах с Legacy BIOS и с использованием Clover (для любых ОС). По следам вот этого поста, где на мой взгляд, решение не так изящно и не для всех BIOS & OS.


Прошивка UEFI

Как и чем прошить биос зависит от материнской платы.

Мы же будем прошивать биос с помощью уже использованного AFUWIN. Переходим обратно в командную строку. Сначала прошиваем оригинальный файл биоса с сайта (той же версии, что и установленный на плате) командой afuwinx64 6701.cap, где 6701.cap — имя файла оригинального биоса (переименован для простоты ввода).


Когда все этапы успешно выполнятся, сразу прошиваем модифицированный биос командой afuwinx64 mod.rom /GAN, где mod.rom — файл биоса с интегрированным модулем поддержки NVME, а /GAN — ключ для прошивки. Без данного ключа на этой плате биос прошиваться категорически отказывался.


После окончания прошивки выключаем ПК, вставляем наш SSD и проверяем, доступен ли он в списке загрузочных устройств биос.


Если бы наша тестовая плата поддерживала USB Flashback, то можно было бы просто модифицировать файл, скачанный с сайта, переименовать его в соответствии с требованиями USB Flashback (для этого можно воспользоваться утилитой BIOS Renamer for USB BIOS Flashback), закинуть файл на флешку и прошиться по инструкции к плате. Это считается самым удобным и правильным вариантом для плат Asus.

Мы рассмотрели два варианта добавления поддержки загрузки с NVME дисков: для Award (Legacy) BIOS и AMI UEFI. Постарались осветить нюансы и проблемы, с которыми встретились в процессе модификации. Но поскольку производителей много, и каждый может иметь свои специфичные особенности биоса, невозможно охватить все нюансы по данной теме.

Вот, собственно, и все

Теперь при каждой перезагрузке вы будете попадать в интерфейс Clover, и нажимать на клавишу Enter (если ваша ОС стоит в списке первой). Зато потом наслаждаться новой системой и быстрым SSD :-)

Мне, к сожалению, в отсутствии Clover Configuator так и не удалось настроить Клевер, чтобы он автоматически загружал мою ОС, например спустя 5 сек. бездействия. Чтобы каждый раз не нажимать клавишу Enter. Но такая опция в Клевере разумеется есть.

Буду признателен, если кто-то знает как вручную, без конфигуратора, настроить такой режим загрузки. Файл настроек Клевера обычно лежит здесь G:\EFI\CLOVER\config.plist
Говорят, что за эту опцию отвечают теги:


В первом указывается время задержки перед автозагрузкой, а во втором — id диска с которого мы хотим грузиться по умолчанию, или значение LastBootedVolume, в котором запоминается id последнего диска, с которого производилась загрузка.

Но у меня почему-то не работает :-(

Есть подозрение, что с этими значениями какой-то лаг в Клевере на AMD. То ли таймер не считает, то ли LastBootedVolume не запоминается, но не уверен.

Режимы работы SATA

Покончив с необходимым теоретическим минимумом, следует определиться с выбором режима работы контроллера HDD материнской платы и сферами их применения.


  • IDE — самый простой и безнадежно устаревший вариант, использование которого было актуально лет n-цать назад. Представляет собой эмуляцию работы жесткого диска PATA. Режим находит применение при работе с устаревшим оборудованием или программным обеспечением, требующим устаревших операционных систем. Современные SSD в таком режиме работать не будут!

Сложно представить необходимость такого режима работы в составе современного ПК. Разве что в одной точке пространства и времени сойдутся найденный на антресоли старенький HDD с рабочей ОС и «самоткаными» эксклюзивными обоями рабочего стола, и безудержное желание сохранить их для потомков.

  • AHCI — режим работы современного накопителя, предоставляющий расширенный функционал и дополнительные «плюшки». В первую очередь — возможность «горячей» замены жестких дисков. Для домашнего ПК или офисной машины — это не очень актуально, а вот в случае с серверным оборудованием, такая возможность поможет сэкономить много времени и нервов системного администратора. Во-вторых, наличие реализованного алгоритма аппаратной установки очередности команд (NCQ), существенно ускоряющей работу накопителя и производительность системы в целом. Это достигается за счет грамотного и оптимального алгоритма движения считывающей головки по блину классического HDD или более эффективного использования ячеек памяти в случае SSD накопителя.


  • RAID — возможность организации совместной работы нескольких накопителей в едином дисковом массиве. В зависимости от задач, можно объединить диски в систему повышенной надежности (RAID 1) информация в которой будет дублироваться на каждый из дисков массива, или высокопроизводительную систему (RAID 0 или RAID 5), когда части одного файла одновременно записываются на разные диски, существенно сокращая при этом время обращения к дисковому массиву.
  • NVMe — абсолютно новый стандарт, специально разработанный под SSD-накопители. Поскольку твердотельные диски уже «выросли» из протокола передачи данных SATA-III, и берут новые вершины в передаче данных по интерфейсу PCI-E, обеспечивая при этом наивысшую скорость выполнения операций чтения/записи. При этом по скорости превосходят своих SSD-собратьев, работающих в режиме AHCI, практически вдвое.

К выбору режима работы накопителя следует отнестись ответственно. Выбрать его нужно перед началом установки операционной системы! В противном случае, при его смене на уже установленной операционке, очень велика вероятность получения экрана смерти (BSOD) и отказа ПК работать.


Собирая систему важно не только правильно подобрать компоненты и подключить провода и шлейфы, также важно грамотно настроить ее конфигурацию, ведь быстродействие накопителей зависит не только от «железной» начинки, но и от способа управления ей.

Суть проблемы

Старые BIOS не видят новые NVMe SSD, в отличии от EFI (UEFI). Современные ОС эти диски, как правило, видят, и после загрузки ОС работать с диском можно, а вот старый BIOS нет, следовательно, загрузиться с нового быстрого диска не получится. Ну, потому что нельзя дать команду на загрузку тому, чего не видно.

Что же такое NVMe?


NVM Express или NVMe (от англ. Non-Volatile Memory Express) — это спецификация протокола (упрощенно — протокол) обмена данными через линии PCI Express. Создавалась специально для твердотельных накопителей и ориентировалась на достижение максимальной производительности и масштабируемости в дальнейшем.

Следует отметить, что NVMe — это именно протокол, поэтому распространенное выражение «NVME накопитель/SSD» применяется не совсем корректно. Ведь под этим пользователи практически всегда понимают устройство в формате M.2, тем самым объединяя под одним названием и протокол, и форм-фактор накопителя.

THE END

P.S.
Но если бы вы изначально заплатили чуть побольше, и купили бы не переходник PCI-E >> М.2, а Raid контроллер для M.2 дисков, то вам бы не пришлось читать все вышенаписанное, и тем боле все это делать… Потому что Raid контроллер имеет сою собственную микросистему и эмулирует (или имитирует) себя как Legacy устройство, делая доступными все вставленные в него диски во всех биосах, старых и новых.

UPD
Пользователи alpha_ds и walkman7 любезно дополнили пост тегом DefaultVolume и ссылкой на web-конфигуратор Clover.
Спасибо igrblkv за наводку на CloverGitHub .

Решение

Немного истории

Много лет назад, когда компания Intel стала поставлять Apple свои процессоры и компоненты для применения в Маках, возникла потребность предварительного тестирования железа на совместимость с MacOS. Тогда инженеры Intel написали хитрый загрузчик DUET, который представляет собой эмулятор UEFI, загружаемый поверх Legacy BIOS и позволяющий запускать операционные системы, требующие UEFI (MacOS, например).

Однако использовать DUET «напрямую» задача весьма не тривиальная (пример, или вот еще, б-ррр. ), требующая массу ручных операций, зависящих от конкретного железа и ОС, и понимания того, что именно вы делаете.

В дальнейшем, DUET был взят за основу для нескольких проектов по созданию мульти-загрузчиков. Один из них Hackintosh — проект по установке последних MacOS на любые Intel, а в последствии и AMD машины. В результате развития Hackintosh появился многофункциональный загрузчик Clover (Клевер), который заточен, разумеется, под загрузку MacOS и Intel, но сейчас может с успехом применяться для загрузки чего угодно на, практически, чём угодно. Вот им, Клевером, мы и воспользуемся для решения нашей проблемы.

Clover Configurator

Клевер сам по себе настраивается тоже не абы как, и для того, чтобы как-то облегчить в дальнейшем процесс тюнинга, была выпущена настроечная утилита Clover Configurator, и множество мануалов по использованию.

Но беда в том, что Clover Configurator работает только в MacOS, и на Windows вы его, в лучшем случае, запустите только в VmWare.

Некоторые пользователи рекомендует воспользоваться вместо Clover Configurator web-конфигуратором для Clover. Правда не факт, что прессет для вашей MB будет в списке. А документация по Клеверу объемна и подробна. Но, попробуйте, а вдруг.

Так же ходят слухи (в комментах), что сам автор Клевера (SergeySlice) не рекомендует использовать Clover Configurator а рекомендует редактировать конфигурационный файл руками.

Не пойдем этим путем… у нас лапки и Мастдай.

Boot Disk Utility (BDUtility.exe)

Специально для тех, у кого лапки, один русский энтузиаст написал утилиту BDUtility.exe, которая сама скачивает последний релиз Clover, делает необходимые минимальные настройки и записывает полученный образ на флешку.

Не пугайтесь вырвиглазного сайта, утилита работает отлично :-)

Для загрузки утилиты нажмите на картинку с буквами «Bu» и синей стрелкой, посредине сайта :-)

Примечание

Для решения нашей проблемы мы будем использовать дополнительную загрузочную флешку, с которой поверх BIOS будет загружаться Clover, идентифицировать ваш новый быстрый NVMe SSD и передавать ему команду на загрузку вашей новенькой 64-битной Windows 10 (или любой другой).

Отныне флешка навсегда будет установлена в свободном USB порту вашего компьютера, до тех пор, пока вы обновите старое железо!

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

С другой стороны, теперь ваша флешка является крутейшим ключом защиты к вашему компьютеру, ибо без него комп просто не включится, а догадаться, что флешка должна БЫТЬ, да еще и с Клевером — это задача для истинных спецслужб.

Теоретически, можно попробовать поставить Clover на лишний SATA диск или даже карту памяти, если таковые имеются в системе и с них поддерживается загрузка (у меня дисков не осталось, снес все, жужжат, а с карт памяти опции загружаться не было и нет). Во всяком случае документация по Клеверу такое допускает. Однако, в этом случае придется вручную поколдовать с загрузочной областью.

Создание установочной флешки

Если вам удалось загрузить утилиту BDUtility — запустите ее. Она запускается под Windows и с правами администратора, будьте внимательны.

Счастливым обладателем других операционных систем стоит пропустить этот пункт и вернуться к Clover Configurator выше.

Запускаем BDUtility.exe

Далее следует выполнить ряд настроек, чтобы утилита загрузила последний дистрибутив Clover, настроила его и записала на вашу флешку. Флешка должна быть вставлена в USB-порт, и желательно начисто отформатирована.

Примечание

Настройка BDUtility:

Если загрузка произойдет, на экране должна появиться примерно такая картинка, с перечнем текущих вариантов загрузки. Можете попробовать найти вашу загрузочную запись и загрузить текущую ОС.

Драйвера NVMe

Если ваш NVMe SSD диск уже вставлен в компьютер, не пытайтесь его найти в настройках Clover — его там нет. Дело в том, что по-умолчанию Clover не загружает драйвера для NVMe устройств. Драйвера необходимо включить в загрузку вручную.

Для этого открываем флешку в проводнике.

Заходим в папку G:\EFI\CLOVER\drivers\off (где диск «G» — это ваша флешка, а папка «off» — это папка с не подключенными драйверами Клевера).

Находим файл NvmExpressDxe.efi

Нажимаем Ctrl + C, чтобы скопировать файл в буфер обмена, и копируем файл в папки G:\EFI\CLOVER\drivers\BIOS и G:\EFI\CLOVER\drivers\UEFI. Копируем на всякий случай в обе папки, чтобы не разбираться, какой у вас сейчас биос, старый BIOS или старый UEFI.

Перезагружаем компьютер, загружаемся с флешки-Clover и наблюдаем за количеством иконок на экране, обозначающих варианты загрузки — их должно стать больше, ибо теперь Clover видит ваш NVMe SSD.

Установка новой ОС на новый NVMe SSD диск


Далее, чтобы воспользоваться преимуществом загрузки с быстрого NVMe SSD нам необходимо, собственно, поставить на него систему. И тут есть нюанс. Чтобы в дальнейшем не возникло проблем с попытками загружаться именно с вашего NVMe диска из-под Клевера, крайне рекомендуется не переносить вашу текущую систему на новый диск, а установить на NVMe диск новую систему с нуля. Проблема восходит корнями к типу загрузчика вашей операционной системы, который был выбран и использован при ее установке на компьютер. Если сейчас у вас система с BIOS без поддержки NVMe то и текущей загрузчик ОС ориентирован на BIOS, а не на EFI.
Именно этому загрузчику Clover передает управление, причем в режиме эмуляции EFI. Для справки, клеверный загрузчик моей Win64 лежит на клеверной флешке здесь G:\EFI\BOOT\BOOTX64.efi

Перенести такую ОС на NVMe диск и использовать для загрузки в режиме EFI просто так не получится, потребуется вручную сменить загрузчик ОС, а это трудоемко, не вполне оправданно и чревато, имхо.

Поэтому смело запасаемся лицензионным ключом от новой ОС (ну, или находим, где старый) и идем на страничку загрузки Media Creation Tool, чтобы сделать загрузочный диск вашей операционной системы Windows. Дело в том, что с некоторых пор Микрософт стал сам включать оба загрузчика BIOS и EFI в образ, создаваемый Media Creation Tool. И теперь эта загрузочная флешка может загружаться абсолютно на любых системах с Legacy BIOS, UEFI и EFI. А раньше приходилось обрабатывать полученный загрузочный образ и интегрировать в него Rufus, для загрузки в режиме EFI (пример, промотать до середины).

Примечание
Да, вам понадобится вторая загрузочная флешка, чтобы установить ОС на NVMe SSD.
Нет, на флешку с Clover дистрибутив Windows записать не получится.

Установка ОС

Установка операционной системы на новый NVMe SSD происходит вполне штатно и быстро.
Вам необходимо загрузиться с двумя вставленными флешками, причем загрузиться с клеверной флешки, а не с дистрибутива Windows, не перепутайте.

В интерфейсе Клевера найдите загрузку с флешки с дистрибутивом вашей ОС. Далее должна начаться установка ОС. В какой-то момент система перезагрузится (вы же ставите Windows), и вам придется выбрать для продолжения уже загрузку с вашего NVMe SSD, опять же не перепутайте! Не выбирайте повторно загрузку с дистрибутива ОС, иначе установка просто начнется заново, а нам нужно чтобы она продолжилась с SSD и, желательно, завершилась.

После установки новой системы на ваш новый NVMe SSD, в Clover появится запись, что из-под него была установлена новая ОС. Также иконка загрузки новой ОС должна появиться первой в списке загрузок, и, если я ничего не путаю, то называться она будет «Boot Microsoft EFI Boot from EFI».


И после окончательной установки ОС выньте флешку с ее дистрибутивом, чтобы она не отображалась больше в Клевере и в «Моем компьютере».

А в вашем BIOS порядок загрузки дисков должен всегда начинаться с клеверной флешки, пока не обновите железо до поддержки EFI.

Тогда, и только тогда, вы сможете гордо поставить первым ваш, к тому времени уже постаревший, NVMe SSD!.

Award BIOS

На тестовой плате от Gigabyte установлено программное обеспечение от Award. Это обычный (non-EFI) BIOS, и его редактирование для добавления необходимого нам модуля — задача не самая простая.

Для нашей задачи нам потребуется:

  • Оригинальный биос от платы;
  • Option ROM (OpROM) от SSD Samsung 950 Pro;
  • HEX—редактор;
  • Утилита CBROM, для интеграции OpROM в биос.

Биос платы качаем на официальном сайте (пример, как это сделать есть, тут), OpROM и утилиту для корректировки его контрольной суммы скачиваем тут (спасибо vlo), CBROM берем тут. Разархивируем все архивы, складываем файлы в отдельную папку, в нашем случае это будет award в корне диска C.


Неприятный нюанс в модификации не UEFI биос состоит в том, что потребуется конфигурировать его под определенный диск, устанавливаемы вами. В нашем случае это Smartbuy E13T, и нам потребуется узнать его идентификаторы vid и did.

  • VID (Vendor id) — идентификатор производителя оборудования.
  • DID (Device id) — идентификатор устройства.

Самый простой вариант — загрузиться с подключенным диском в операционную систему (Win 10, Win 8.1) с поддержкой NVME SSD. Вы можете работать не только с уже установленной ОС, но и использовать Live usb.

Открываем диспетчер устройств: правой кнопкой мыши (ПКМ) на значке меню "Пуск" — диспетчер устройств. Или пишем «диспетчер устройств» в строке поиска Windows 10.

Идем в пункт «Контроллеры запоминающих устройств», ищем «Стандартный драйвер NVM Express». Жмем ПКМ — свойства.


Переходим на вкладку «Сведения», из списка «Свойство» выбираем «ИД оборудования».


Ниже в поле «Значение» появятся строки. Первые четыре знака, после «VEN_» — это vid, после «DEV_» — это did. Сохраняем (ПКМ на строке — Копировать) или переписываем эти значения, как на примере.


Следующим этапом будет внедрение полученных vid/did в OpROM. Открываем шестнадцатеричный редактор, мы будем использовать WinHex. Идем в меню File — Open и выбираем файл ss-950.bin из папки award.


В центральной части окна программы мы видим шестнадцатеричные (hex) значения.


Нам нужно заменить четыре (выделены) первых байта (одна пара — один байт) в третьей строке (offset 00000020).


Здесь прописаны vid и did, и их нужно заменить на данные нашего диска. Но тут есть один нюанс — нужно поменять байты местами, то есть vid тестового диска 1987 нужно записать как 87 19, а did — вместо 5013, записывается как 13 50. Данные уже идут в hex-формате, поэтому записываются как есть. Вот так получилось после замены.


Сохраняем под нужным именем (в примере ss950-2.bin): File – Save as.


Открываем командную строку от имени Администратора. В Windows 10 просто пишем в строке поиска cmd, нажимаем ПКМ — Запуск от имени Администратора.


В открывшемся окне переходим в подготовленную папку (в нашем случае c:\award) командой cd c:\award.



Теперь наш OpROM готов для добавления в файл биоса, но сначала посмотрим содержимое биоса. Вводим CBROM195.EXE h67md2b3.f7 /D, где h67d2hb3.f7 — название файла биоса. Вывод команды — это список всех модулей (ROM), содержащихся в файле.


Добавляем ss950-2.bin в файл: CBROM195.EXE h67md2b3.f7 /pci ss950-2.bin. На проценты не обращаем внимание.


Проверяем, что все прошло успешно: CBROM195.EXE h67md2b3.f7 /D


Сравнив две выдачи, можно увидеть, что добавилась новая запись с номером 23. В крайнем правом столбце видно, что там находится наш файл ss950-2.bin.

Читайте также: