Nvme драйвер что это
TRIM и очистка памяти — это технологии, применяемые в современных твердотельных накопителях для увеличения производительности и эксплуатационного ресурса. До начала использования твердотельного накопителя все блоки NAND пусты, поэтому новые данные могут записываться в пустые блоки за одну операцию. Со временем большинство пустых блоков станут используемыми и будут содержать пользовательские данные. Чтобы записать новые данные в используемые блоки, SSD-накопитель должен выполнить цикл чтения-изменения-записи. Цикл чтения-изменения-записи снижает общую производительность накопителя, потому что теперь он должен выполнять три операции вместо одной. Цикл чтения-изменения-записи также приводит к увеличению объема записи, что сокращает общий эксплуатационный ресурс SSD-накопителя.
Функции Trim и очистки памяти могут работать вместе, чтобы увеличить производительность и эксплуатационный ресурс SSD-накопителя за счет освобождения использованных блоков. Очистка памяти — это встроенная в контроллер SSD-накопителя функция, которая объединяет данные, хранящиеся в использованных блоках, для освобождения большего количества блоков. Этот процесс выполняется в фоновом режиме и полностью обрабатывается самим SSD-накопителем. Однако SSD-накопителю может быть неизвестно, какие блоки содержат данные пользователя, а какие — устаревшие данные, которые пользователь уже удалил. Здесь на помощь приходит функция TRIM. TRIM позволяет операционной системе информировать SSD-накопитель об удалении данных, чтобы тот мог освободить ранее использованные блоки. Для работы функции TRIM она должна поддерживаться и операционной системой, и SSD-накопителем. В настоящее время большинство современных операционных систем и твердотельных накопителей поддерживают функцию TRIM, однако большинство конфигураций RAID ее не поддерживают.
В твердотельных накопителях Kingston используются и технология сбора мусора, и технологии TRIM для поддержки максимально возможной производительности и эксплуатационного ресурса в течение всего срока службы.
Электростатический разряд (ЭСР) – это разряд накопленного статического электричества. ЭСР не стоит недооценивать, это одно из немногих воздействий, которым человек может повредить или привести в негодность компьютер или компоненты оборудования. Например, он возникает, если потереть ногами о ковер, а затем коснуться чего-нибудь металлического. Человек может не почувствовать ЭСР; он возникает только при работе внутри компьютера или при касании оборудования.
Как предотвратить ЭСР
Лучшим способом избегнуть ЭСР является антистатический браслет или контур/плита заземления. Однако большинству пользователей эти меры недоступны, поэтому ниже приведены способы максимального снижения риска ЭСР.
- Работа стоя – при работе с компонентами компьютера рекомендуется стоять. При сидении на стуле образуется больший электростатический заряд.
- Провода – убедитесь, что из задней панели компьютера извлечены все провода (провод питания, мыши, клавиатуры и т.д.).
- Одежда – не надевайте одежду, создающую большой электростатический заряд (например, шерстяной свитер).
- Аксессуары – для снижения ЭСР и предотвращения других проблем снимите с себя все украшения.
- Погода – электрические бури (грозы) могут увеличить риск ЭСР; постарайтесь не работать с компьютером во время грозы, если это не необходимо. В регионах с сухим климатом воздух сам становится частью системы, накапливающей электростатический заряд, при каждом потоке воздуха (ветер, кондиционирование воздуха, вентилятор), проходящего по изолированной поверхности. С другой стороны, высокий уровень влажности приводит к коррозии соединительных кабелей и других электрических подключений.
Чтобы узнать больше о ЭСР и защите электронного оборудования, перейдите на следующий сайт.
Драйверы для этого накопителя имеются для ОС Windows 8 и выше и Server 2012R2 и выше и могут быть либо загружены во время установки, либо встроены в ОС. Мы не поддерживаем использование этого накопителя с ОС Windows 7 или более ранней версией. Драйвер будет работать с последними версиями Linux. Проверьте, поддерживает ли ваша система NVMe. Они не поддерживаются ни в одной из версий MacOS. FAQ: KSD-060117-NVME-01
Высокопроизводительные твердотельные накопители (SSD) с интерфейсом NVMe требуют хорошей вентиляции для обеспечения максимальной пропускной способности и производительности. В режимах с тяжелыми рабочими нагрузками или при обширном эталонном тестировании накопитель будет нагреваться и встроенное ПО контроллера может применить тепловое регулирование (механизм защиты от перегрева) для сохранения надлежащей рабочей температуры и гарантирования целостности накопителя. Если снижение производительности наблюдается в таких условиях, убедитесь, что SSD достаточно хорошо охлаждается и/или увеличьте скорость вращения вентилятора, чтобы снизить температуру накопителя.
Примечание: Тепловое регулирование включается, когда температура достигает 80°C FAQ: KSD-060117-NVME-02
Наш твердотельный накопитель NVMe рассчитан на собственные драйверы NVMe систем Linux и Microsoft. Собственный драйвер NVMe корпорации Microsoft выдает команды записи ввода/вывода Forced Unit Access (сквозной доступ) (FUA) и команды очистки кэша Flush в накопители NVMe, имеющие энергозависимый кэш записи. Это нарушает кэширование записи в целевой SSD, поскольку запись зачастую выполняется прямо в NAND в обход кэша DRAM. В результате, производительность твердотельного накопителя NVMe снижается. Для достижения максимальной производительности вам нужно отключить функцию очистки буфера кэша записи на целевом накопителе в системе Windows.
Шаги для отключения функции очистки буфера кэша записи (Write-Cache Buffer Flush)
1. Откройте Device Manager (Диспетчер устройств)
2. Выберите Disk Drives (Дисковые накопители) и откройте их, затем выберите целевой накопитель.
3. Щелкните правой кнопкой мыши и выберите Properties (Свойства)
4. Отметьте галочкой “Turn off Windows write-cache buffer flushing on the device” (Выключить в устройстве очистку буфера кэша записи системой Windows)
a. Примечание: Отключая в устройстве сбрасывание буфера кэша записи, вы рискуете потерять данные при пересылке и/или разрушить данные в случае отказа электропитания. Отключайте эту функцию только в том случае, если вы осознаете связанные с этим риски.
FAQ: KSD-060117-KC1000-04
When performing a fresh installation or MacOS High Sierra on my new SSD, it states that the drive is not detected. It works fine if it is an upgrade installation. How do I resolve this?
During the OS installation, go to UTILITIES / TERMINAL
In terminal type:
diskutil list
Then press RETURN. Scroll up to top and verify the Kingston SSD disk (i.e. disk0, disk1, etc).
diskutil mountDISK disk0 (or whichever ddisk is the Kingston SSD).
Then press RETURN. It should show "mounted successfully".
diskutil eraseDISK apfs YOURDRIVENAME disk0 (or whichever disk is the Kingston SSD)
Warning – This step (eraseDISK command) will delete all data on the target drive. Confirm that you have selected the drive you wish to delete and then continue.
Then press RETURN. It should show "successful". Then exit terminal and proceed with the normal installation of the OS. FAQ: KSD-092917-GEN-21
Kingston SSD Manager (KSM) is ending support for Microsoft Windows 7. The latest version of KSM with Windows 7 support is v1.1.2.5. If you are using Windows 7 and experience complications with KSM, please make sure you have AHCI mode enabled in BIOS and install the latest Intel RST storage driver provided by your system manufacturer. If you still need assistance, feel free to contact our Kingston Technical Support department. FAQ: KSM-001125-001-00
Why can't I see or complete the latest firmware update on my NVMe SSD when Microsoft Bitlocker hardware encryption is enabled?
Kingston SSD Manager 1.1.2.6 will not offer firmware updates for NVMe SSDs until IEEE 1667 support has been disabled. In order to complete the firmware update you must do the following:
1. First, we recommend you backup your data.
2. Then use a secondary system to complete a REVERT using the PSID on the drive label. Note: Performing a REVERT will securely erase all data on the drive.
3. Disable IEEE 1667 support
4. The firmware update will become available upon refresh or restart of KSM FAQ: KSM-001125-001-01
Secure Erase User Guide for Linux
This guide will walk you through securely erasing your Kingston SSD using Linux tools
SATA Secure Erase Procedure
Warning
Please make sure to have a full backup of any important data before you proceed!
Prerequisites
• You must have root privileges.
• You must have your SSD connected to the system as a secondary (non-OS) drive.
• You must have lsscsi and hdparm installed. You may need to install them with your distribution’s package manager.
• Your drive must not be in a security freeze.
• Your drive must not be password protected.
If the output shows "frozen" (instead of "not frozen") then you cannot continue to the next step. You must try to remove the security freeze by trying one of the following methods:
Now issue the hdparm command again. If it worked the output will show “not frozen” (instead of “frozen”).
Method 2: Hot plug the drive. This is done by physically unplugging the SATA power cable from the drive and plugging it back in while the system is powered on. You may need to enable hot plug in BIOS. Not all systems support hot plug.
Now issue the hdparm command again. If it worked the output will show “not frozen” (instead of “frozen”).
NVMe Secure Erase Procedure
Warning
Please make sure to have a full backup of any important data before you proceed!
Prerequisites
• You must have root privileges.
• You must have your SSD connected to the system as a secondary (non-OS) drive.
• You must have nvme-cli installed. You may need to install it with your distribution’s package manager.
• Your drive must not be password protected.
This command may take a few minutes to complete.
NVMe Secure Erase Example
FAQ: KSM-SE-LIX
Your system may be loading the Intel RST driver instead of the Microsoft NVMe driver. There is a known compatibility issue with the Intel RST driver that interferes with NVMe firmware update commands. FAQ: KSM-001125-002-01
To determine which NVMe driver is in use, you can run the AS SSD benchmark tool and select your Kingston NVMe SSD from the drop-down menu. This will report the driver being used for that drive. If the driver is "iaStorAC" then your drive is using the Intel driver. If the driver is "stornvme" then your drive is using the Microsoft driver. FAQ: KSD-001525-001-00
My Kingston NVMe SSD is using the Intel RST driver! Are there any workarounds to update the firmware?
Caution! The workarounds below will break RST RAID arrays and could lead to data loss. If your system has RST RAID
arrays you should consider an alternate solution.
Workaround 1: Disable RST Control in BIOS
This workaround requires BIOS options to enable or disable RST Control and is not available on all systems.
Note: Please backup all important data before you proceed!
1. Restart and enter the system BIOS
2. Locate the RST Configuration settings in BIOS
3. Change "RST Controlled" to "Not RST Controlled"
4. Save and exit BIOS
5. Open KSM and update the drive firmware
Once these steps are completed you may optionally switch back to "RST Controlled" in BIOS.
Workaround 2: Switch from RAID to AHCI in BIOS
This workaround is to change your system storage mode from RAID to AHCI and should work on all systems.
Note: Please backup all important data before you proceed!
1. Open msconfig
2. Select the Boot tab
3. Check Safe boot (minimal)
4. Click OK and Restart
5. When the system restarts go into the system BIOS
6. Change the storage mode from RAID to AHCI
7. Save and exit BIOS
8. Wait for Windows to boot into safe mode
9. Open msconfig
10. Select the Boot tab
11. Uncheck Safe boot
12. Click OK and Restart
13. Wait for Windows to boot normally
14. Open KSM and update the drive firmware
Once these steps are completed you may optionally switch the storage mode back to RAID in BIOS. FAQ: KSD-001525-001-01
Связаться со службой технической поддержки
Questions about a Kingston product you already own? Ask a Kingston expert.
Энергонезависимая экспресс-память (NVMe) — это новый протокол передачи данных, разработанный для памяти твердотельных накопителей. Хотя SATA (Serial Advanced Technology Attachment — последовательный интерфейс обмена данными с накопителями информации) остается отраслевым стандартом для протоколов хранения данных, он не разрабатывался специально для флеш-памяти, такой как твердотельные накопители, и не оснащен преимуществами памяти NVMe. В конечном итоге, твердотельные накопители SSD с памятью NVMe заменят твердотельные накопители с интерфейсом SATA в качестве нового отраслевого стандарта.
NVMe или SATA
Один из простых способов сравнения NVMe и SATA — это представлять их в виде гоночных трасс, поскольку они используются для передачи данных с твердотельного накопителя в ЦП. Твердотельный накопитель SSD — это гоночный автомобиль Формулы 1 по хранению данных, в то время как диски с технологией вращения больше похожи на старый семейный седан. Твердотельный накопитель может перемещаться только с такой скоростью, которую обуславливает дорога, по которой он движется. Если вы поставите автомобиль Формулы 1 на гоночную трассу (NVMe), он будет двигаться при своим максимальном потенциале, но если вы едете по старой грунтовой дороге, полной камней (SATA), его движение должно замедлиться.
Твердотельные накопители SSD NVMe компании Kingston
Компания Kingston предлагает несколько твердотельных накопителей SSD, использующих протоколы NVMe. Чтобы ознакомиться с последним ассортиментом наших предложений, просмотрите приведенный ниже раздел о продукции сходного типа. Хотя твердотельные накопители NVMe работают значительно быстрее, чем твердотельные накопители SATA, между ними все еще имеются различия. Некоторые изделия могут поддерживать скорости начального уровня NVMe, а другие могут поддерживать новейшие стандарты PCIe Gen4, обеспечивающие исключительную производительность на новейших процессорах.
Совместимость аппаратного оборудования с NVMe
Однако перед покупкой твердотельного накопителя NVMe необходимо учесть несколько моментов. Совместима ли вообще ваша система с протоколом NVMe? В вашей компьютерной системе вам нужно обратить внимание на две вещи: встроенный установочный разъем M.2 и поддержку протокола памяти NVMe. Сверьтесь со страницей продукта для вашего компьютера, чтобы узнать, размещен ли в нем установочный разъем M.2. Далее, вам нужно проверить, поддерживает ли ваша системная плата твердотельные накопители NVMe. В некоторых системных платах, которые поддерживают этот протокол, он не всегда может указываться как NVMe. Вместо этого он может называться «режимом PCIe» (PCIe mode). В идеале должен иметься более простой способ определения того, может ли ваша компьютерная система поддерживать протокол памяти NVMe, однако, к сожалению, его пока нет. Вам просто нужно обратиться на веб-сайт с информацией о вашей системной плате или использовать Google для поиска подобной информации и выяснения, так ли это.
Совместимость NVMe с операционными системами
Наряду с совместимостью с аппаратным обеспечением, вы должны учитывать и совместимость с ОС. Последние версии Linux, Windows, Chrome OS и Mac OS поддерживают протокол памяти NVMe, однако Apple не позволяет проводить модернизацию своего аппаратного обеспечения на большинстве своих последних моделей, поэтому это может оказаться невозможным для пользователей компьютеров Mac. Программное обеспечение для клонирования в настоящее время также совместимо с накопителями NVMe. Компания Kingston использует программное обеспечение Acronis True Image, которое поставляется со многими твердотельными накопителями компании Kingston. См. страницы продукта для получения информации о прилагаемом программном обеспечении. Большинство других основных программ для клонирования были обновлены для включения возможности поддержки протокола памяти NVMe.
Технология NVMe обеспечивает превосходное хранение данных, превосходную скорость и превосходную совместимость. Поскольку в технологии NVMe используются разъемы PCIe, она обеспечивает передачу в 25 раз большего объема данных по сравнению с аналогичными устройствами SATA. Наряду с большим объемом данных команды NVMe выполняются в 2 раза быстрее, чем в накопителях AHCI. Кроме того, количество операций ввода-вывода в секунду (IOPS) в устройствах NVMe превышает 1 миллион, и операции выполняются до 900% быстрее по сравнению с накопителями AHCI. NVMe также напрямую связывается с ЦП системы, обеспечивая невероятную скорость благодаря своей совместимости. Накопители NVMe работают со всеми основными операционными системами независимо от форм-фактора.
NVMe (Non-Volatile Memory Express) — это интерфейс связи и драйвер, который использует преимущества увеличенной полосы пропускания, обеспечиваемой PCIe. Он разработан для повышения производительности и эффективности, обеспечивая при этом совместимость с широким спектром корпоративных и клиентских систем. Технология NVMe была разработан для твердотельных накопителей и обменивается данными между интерфейсом хранилища и процессором системы, используя высокоскоростные разъемы PCIe без ограничений форм-фактора.
Протокол NVMe использует параллельные пути передачи данных с малой задержкой к базовому носителю, подобно архитектурам высокопроизводительных процессоров. Это обеспечивает значительно более высокую производительность и меньшие задержки по сравнению с протоколами SAS и SATA. NVMe может поддерживать множество очередей ввода-вывода — до 64 тыс. очередей глубиной 64 тыс. записей каждая. В результате задачи ввода/вывода могут передавать больший объем данных быстрее, чем старые модели хранения данных с использованием устаревших драйверов, таких как AHCI (Advanced Host Controller Interface). Поскольку протокол NVMe разработан специально для твердотельных накопителей, он неизбежно станет новым отраслевым стандартом.
Твердотельные накопители: тогда и сейчас
Шины данных передают данные внутри системы, и когда впервые появились твердотельные накопители на базе технологии NAND, для отрасли стало очевидно, что необходимы новая шина и новый протокол.
- Первые твердотельные накопители были относительно медленными, и было удобно использовать имеющуюся инфраструктуру хранилища SATA. Несмотря на то, что скорость шины SATA выросла до 16 Гбит/с, почти все коммерческие реализации шины SATA остаются на уровне 6 Гбит/с.
- Общая пропускная способность PCIe 3.0 составляет 16 Гбит/с, а технология PCIe 4.0 удвоила этот показатель. Она обеспечивает до 16 линий и может передавать данные со скоростью до 32 000 МБ/с, в то время как SATA III поддерживает скорость только до 600 МБ/с.
Решение использовать имеющуюся технологию шины с более высокой пропускной способностью привело к замене протоколов SATA на технологию PCIe. Технология PCIe появилась за несколько лет до NVMe, но поскольку предыдущие решения были ограничены старыми протоколами передачи данных, такими как SATA и AHCI, они не могли быть использованы в полной мере до последнего времени. Технология NVMe устранила узкие места и сняла ограничения, обеспечивая выполнение команд с малой задержкой и очереди глубиной 64 тыс. записей. Большое количество очередей обеспечивает более быструю передачу данных, поскольку данные записываются на твердотельные накопители рассредоточенно с использованием ячеек и блоков, а не на вращающихся дисках, таких как жесткие диски.
SPDK (Storage Performance Developer Kit) – это набор инструментов и библиотек с открытым исходным кодом, которые призваны содействовать разработке высокопроизводительных масштабируемых приложений, ориентированных на взаимодействие с дисковыми накопителями. В этом материале мы сосредоточимся на имеющемся в SPDK NVMe-драйвере, работающем в пользовательском пространстве Linux, а также рассмотрим реализацию приложения-примера «Hello World» на платформе Intel.
В наших экспериментах задействован сервер на чипсете Intel C610 (степпинг C1, системная шина QPI, 9.6 ГТ/с) с двумя сокетами, в котором установлены 12-ядерные процессоры Intel Xeon E5-2697 (тактовая частота – 2.7 ГГц, 24 логических ядра в режиме HT). Конфигурация ОЗУ – 8x8 Гб (Samsung M393B1G73BH0 DDR3 1866). В системе имеется твердотельный накопитель Intel SSD DC P3700 Series. В качестве ОС использована CentOS 7.2.1511 (ядро 3.10.0).
Зачем нужен NVMe-драйвер, работающий в пользовательском пространстве Linux?
Исторически сложилось так, что дисковые накопители на порядки медленнее других компонентов компьютерных систем, таких, как оперативная память и процессор. Это означает, что операционная система и процессор вынуждены взаимодействовать с дисками, используя механизм прерываний. Например, сеанс подобного взаимодействия может выглядеть так:
- Выполняется запрос к ОС на чтение данных с диска.
- Драйвер обрабатывает этот запрос и связывается с аппаратным обеспечением.
- Пластина диска раскручивается.
- Головка чтения-записи перемещается к нужному участку пластины, готовясь начать считывать данные.
- Данные считываются и записываются в буфер.
- Генерируется прерывание, которое уведомляет процессор о том, что данные готовы к использованию в системе.
- И, наконец, производится чтение данных из буфера.
В наши дни SSD-диски и технологии следующего поколения, например, хранилища 3D XPoint, работают значительно быстрее традиционных HDD. В результате узкое место подсистем хранения данных, которым раньше являлось аппаратное обеспечение, переместилось в сферу программных механизмов. Теперь, как можно видеть на нижеприведённом рисунке, задержки, которые вносят в процесс работы с накопителями прерывания и операционная система, в сравнении со скоростью отклика накопителей, выглядят весьма значительными.
SSD-накопители и системы хранения данных на базе технологии 3D XPoint работают значительно быстрее чем традиционные HDD. В результате теперь узким местом подсистем хранения данных стало ПО
Сравнивая NVMe-драйвер пользовательского пространства из SPDK с подходом, предусматривающим использование ядра Linux, можно обнаружить, что при использовании NVMe-драйвера задержки, вызванные дополнительной нагрузкой на систему, снижаются примерно в 10 раз.
Задержки, в наносекундах, вызываемые при использовании для работы с накопителями механизмов ядра Linux и SPDK
SPDK может, используя одно ядро процессора, обслуживать 8 твердотельных накопителей NVMe, что даёт более 3.5 миллиона IOPs.
Изменение производительности операций ввода-вывода при работе с разным количеством SSD-накопителей с помощью механизмов уровня ядра Linux и SPDK
Предварительные требования и сборка SPDK
SPDK поддерживает работу в таких ОС, как Fedora, CentOS, Ubuntu, Debian, FreeBSD. Полный список пакетов, необходимых для работы SPDK, можно найти здесь.
Прежде чем собирать SPDK, необходимо установить DPDK (Data Plane Development Kit), так как SPDK полагается на возможности по управлению памятью и по работе с очередями, которые уже есть в DPDK. DPDK – зрелая библиотека, которую обычно используют для обработки сетевых пакетов. Она отлично оптимизирована для управления памятью и быстрой работы с очередями данных.
Исходный код SPDK можно клонировать из GitHub-репозитория такой командой:
▍Сборка DPDK (для Linux)
▍Сборка SPDK (для Linux)
После того, как собранный DPDK находится в папке SPDK, нам нужно вернуться к этой директории и собрать SPDK, передав make путь к DPDK.
▍Настройка системы перед запуском SPDK-приложения
Нижеприведённая команда позволяет включить использование больших страниц памяти (hugepages) и отвязать от драйверов ядра любые NVMe и I/OAT-устройства.
Использование больших страниц важно для производительности, так как они имеют размер 2 Мб. Это гораздо больше, чем стандартные страницы по 4 Кб. Благодаря увеличенному размеру страниц памяти уменьшается вероятность промаха в буфере ассоциативной трансляции (Translate Lookaside Buffer, TLB). TLB – это компонент внутри процессора, который отвечает за трансляцию виртуальных адресов в физические адреса памяти. Таким образом, работа со страницами большого размера ведёт к более эффективному использованию TLB.
Приложение-пример «Hello World»
В SPDK включено множество примеров, имеется здесь и качественная документация. Всё это позволяет быстро начать работу. Мы рассмотрим пример, в котором фразу «Hello World» сначала сохраняют на NVMe-устройстве, а потом считывают обратно в буфер.
Прежде чем заняться кодом, стоит поговорить о том, как структурированы NVMe-устройства и привести пример того, как NVMe-драйвер будет использовать эти сведения для обнаружения устройств, записи данных и затем их чтения.
NVMe-устройство (называемое так же NVMe-контроллером) структурировано исходя из следующих соображений:
- В системе может присутствовать одно или несколько NVMe-устройств.
- Каждое NVMe-устройство состоит из некоторого количества пространств имён (оно может быть только одно в данном случае).
- Каждое пространство имён состоит из некоторого количества адресов логических блоков (Logical Block Addresses, LBA).
▍Настройка
-
Инициализируем слой абстракции окружения DPDK (Environment Abstraction Layer, EAL). В коде, приведённом ниже, -c – это битовая маска, которая служит для выбора ядер, на которых будет исполняться код. –n – это ID ядра, а --proc-type – это директория, где будет смонтирована файловая система hugetlbfs.
▍Чтение/запись данных
-
Выделим буфер для данных, которые будут прочитаны/записаны.
Короткий мануал — как реализовать поддержку загрузочного NVMe SSD на старых материнских платах с Legacy BIOS и с использованием Clover (для любых ОС). По следам вот этого поста, где на мой взгляд, решение не так изящно и не для всех BIOS & OS.
Суть проблемы
Старые BIOS не видят новые NVMe SSD, в отличии от EFI (UEFI). Современные ОС эти диски, как правило, видят, и после загрузки ОС работать с диском можно, а вот старый BIOS нет, следовательно, загрузиться с нового быстрого диска не получится. Ну, потому что нельзя дать команду на загрузку тому, чего не видно.
Прелюдия
NVMe SSD диск, как правило, имеет разъем М.2, и работает как бы на прямую с процессором, по шине PCI-E.
Поэтому если на вашей материнской плате нет разъема М.2, то для начала рекомендуется обзавестись переходником PCI-E >> М.2, или PCI-E RAID контроллером для SSD формата М.2.
Существует немного продвинутых NVMe SSD дисков, которые имеют на борту собственные эмулятор Legacy устройства. Например Samsung 950 Pro имеет дополнительный rom для загрузки как Legacy устройство на старых BIOS. А вот вся серия EVO такой возможности не имеет.
Решение
Немного истории
Много лет назад, когда компания 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!.
Вот, собственно, и все
Теперь при каждой перезагрузке вы будете попадать в интерфейс Clover, и нажимать на клавишу Enter (если ваша ОС стоит в списке первой). Зато потом наслаждаться новой системой и быстрым SSD :-)
Мне, к сожалению, в отсутствии Clover Configuator так и не удалось настроить Клевер, чтобы он автоматически загружал мою ОС, например спустя 5 сек. бездействия. Чтобы каждый раз не нажимать клавишу Enter. Но такая опция в Клевере разумеется есть.
Буду признателен, если кто-то знает как вручную, без конфигуратора, настроить такой режим загрузки. Файл настроек Клевера обычно лежит здесь G:\EFI\CLOVER\config.plist
Говорят, что за эту опцию отвечают теги:
В первом указывается время задержки перед автозагрузкой, а во втором — id диска с которого мы хотим грузиться по умолчанию, или значение LastBootedVolume, в котором запоминается id последнего диска, с которого производилась загрузка.
Но у меня почему-то не работает :-(
Есть подозрение, что с этими значениями какой-то лаг в Клевере на AMD. То ли таймер не считает, то ли LastBootedVolume не запоминается, но не уверен.
P.S.
Но если бы вы изначально заплатили чуть побольше, и купили бы не переходник PCI-E >> М.2, а Raid контроллер для M.2 дисков, то вам бы не пришлось читать все вышенаписанное, и тем боле все это делать… Потому что Raid контроллер имеет сою собственную микросистему и эмулирует (или имитирует) себя как Legacy устройство, делая доступными все вставленные в него диски во всех биосах, старых и новых.
UPD
Пользователи alpha_ds и walkman7 любезно дополнили пост тегом DefaultVolume и ссылкой на web-конфигуратор Clover.
Спасибо igrblkv за наводку на CloverGitHub .
Читайте также: