В этой статье мы покажем, как сделать так, чтобы USB флешка или SD карта определялась в системе Windows как обычный локальный жесткий диск. Вы, наверное, спросите, а зачем это нужно? Дело в том, что Windows по умолчанию определяет USB флешки и карты памяти как сменные накопители, которые стандартами средствами Windows нельзя разбить на несколько разделов. И даже если разбить флешку на два и более раздела с помощью сторонних утилит (в той же Linux), то в ОС семейства Windows будет доступен только первый из них (кстати говоря, в Windows 10 1703 появилась встроенная возможность разбить USB накопитель на нескольких разделов) . Т.е. Windows поддерживает нормальную работы с мультиразделами только для HDD дисков, которые в системе определяются как локальные (т.е. несъемные).
RMB бит и USB носители
ОС семейства Windows распознают USB флешки как съемные/извлекаемые (removable) устройства из-за наличия на каждом устройстве специального битового дескриптора RMB (removable media bit). Если при опросе подключенного устройства через функцию StorageDeviceProperty, система определяет, что RMB=1, она делает вывод, что подключенное устройство является сменным накопителем. Таким образом, чтобы с точки зрения системы преобразовать USB-флеку в жесткий диск, достаточно модифицировать этот дескриптор. Это можно сделать напрямую (что довольно рискованно из-за отличий в аппаратных реализациях конкретных устройств, да и не всегда возможно), либо косвенно, подменив ответ USB устройства с помощью специального драйвера, позволяющего отфильтровать информацию в ответе устройства.
Совет. Некоторые производители выпускают специальные утилиты для перепрошивки контроллера своих флешек. В первую очередь попытайтесь на сайте производителя найти такую утилиту и /или прошивку. Это самый правильный путь. Если таковой утилиты не найдется, следуйте рекомендациями из этой статьи.
Подключим в любой свободный порт компьютера USB флешку, затем откроем диспетчер управления дисков (diskmgmt.msc) и удостоверимся, что ее тип определяется в системе как Removable (Съемное устройство).
Также тип устройства можно посмотреть на вкладке Volumes в свойствах диска (как мы видим и тут Type: Removable).
Или с помощью команды diskpart:
list volume
В этой статье мы рассмотрим два способа смены RMB бита на USB флешке – с помощью использования фильтр-драйвера Hitachi (изменения вносятся только на уровне драйверв конкретного компьютера) и смена бита в прошивке контроллера с помощью утилиты BootIt от Lexar (более универсальный способ, но есть ряд ограничений и применим не ко всем моделям флешек и SD карт). Хотя оба этих способа довольно старые и изначально я тестировал их в Windows 7, они продолжают быть актуальными и одинаково хорошо работают и в современной Windows 10.
Содержание:
- Утилита Lexar BootIt
- Фильтр-драйвер для флешек Hitachi Microdrive
- Установка драйвера Hitachi Microdrive вместо родного драйвера USB накопителя
- Как удалить драйвер Hitachi Microdrive
Утилита Lexar BootIt
Недавно мне на глаза попалась довольно интересная утилита – Lexar BootIt. Это бесплатная портабельная программа, которая может сменить RMB съемного накопителя, сделав съемное USB-устройство фиксированным (или наоборот). Несмотря на то, что утилита Lexar BootIt разработана для устройств Lexar (Micron, Crucial), она может работать и с флешками других производителей. Утилита BootIt поддерживает все версии Windows, начиная с Windows XP и заканчивая Windows 10.
Важно. Утилита гарантированно работает для накопителей Lexar. Судя по отзывам, функция «Flip removable bit» не работает на быстрых USB 3.0 флэшках. Кроме того, при перепрошивке контроллера вы лишаетесь гарантии на флешку и можете сделать ее неработоспособной.
Скачать BootIt можно на сайте Lexar (lexar_usb_tool) или с нашего сайта (BootIt_usb_rmb.zip).
- Запустите BootIt.exe с правами администратора
- В списке устройств выберите свою флешку
- Нажмите на кнопку Flip Removable Bit
- Сохраните изменения, нажав ОК.
Переподключите устройство и с помощью диспетчера устройств убедитесь, что его тип сменился с Removable на Basic.
В том случае, если утилита BootIt не помогла сменить RMB бит на съемном накопителе, попробуйте воспользоваться следующим способом, основанном на фильтр драйвере Hitachi Microdrive
Фильтр-драйвер для флешек Hitachi Microdrive
Чтобы USB флэш накопитель или SD карта распознавался в системе как жесткий диск, нам понадобится специальный фильтр-драйвер, позволяющий модифицировать данные передаваемые через системный стек действующего драйвера устройства. Мы воспользуемся фильтр-драйвером для USB флешек от Hitachi (драйвер Hitachi Microdrive), который на уровне драйвера ОС позволяет изменить тип устройства флэшки со съемного на фиксированный (USB-ZIP -> USB-HDD). Благодаря использованию данного драйвера, можно скрыть от системы, что подключенное устройство явятся съемным. В результате чего, система будет считать, что она работает с обычным жестким диском, который можно разбить на разделы, которые одновременно будут доступны в системе.
Архивы с драйвером Hitachi Microdrive:
- версия Hitachi Microdrive для 32 битных систем — Hitachi Microdrive (3,0 Кб)
- версия Hitachi Microdrive для 64 битных систем — Hitachi Microdrive x64 (3,8 Кб)
Необходимо скачать версию драйвера для вашей системы в соответствии с ее разрядностью. Оба архива имеют одинаковую структуру и состоят из двух файлов:
- cfadisk.inf – установочный файл, с настройками драйвера
- cfadisk.sys — файл драйвера Hitachi
Следующий этап – идентификация кода устройства нашей флешки. Для этого в свойствах диска на вкладке Details в параметре Device Instance Path выберите и скопируйте (Ctrl+C) код экземпляра устройства.
В нашем примере это будет:
USBSTORDisk&Ven_Linux&Prod_File-CD_Gadget&Rev_0000�123456789ABCDEF&0
Предположим, мы планируем установить драйвер на 64 битной системе. С помощью любого тестового редактора открываем на редактирование файл cfadisk.inf. Нас интересуют разделы cfadisk_device и cfadisk_device.NTamd64.
[cfadisk_device]
%Microdrive_devdesc% = cfadisk_install,IDEDiskTS64GCF400______________________________20101008
[cfadisk_device.NTamd64]
%Microdrive_devdesc% = cfadisk_install,IDEDiskTS64GCF400______________________________20101008
Меняем значение
DiskTS64GCF400______________________________20101008
на код нашего устройства.
Важно! В коде экземпляра устройства необходимо отбросить часть после второго «» (в нашем примере откидываем 0123456789ABCDEF&0).
Получаем:
[cfadisk_device]
%Microdrive_devdesc% = cfadisk_install,IDEUSBSTORDisk&Ven_Linux&Prod_File-CD_Gadget&Rev_0000
[cfadisk_device.NTamd64]
%Microdrive_devdesc% = cfadisk_install,IDEUSBSTORDisk&Ven_Linux&Prod_File-CD_Gadget&Rev_0000
Сохраняем файл.
Если драйвер устанавливается на 32 битной системе, нужно скачать советующий архив, распаковать его и открыть на редактирование файл cfadisk.inf. Найдем раздел [cfadisk_device]:
[cfadisk_device]
%Microdrive_devdesc% = cfadisk_install,USBSTORDisk&Ven_LEXAR&Prod_JD_LIGHTNING_II&Rev_1100
%Microdrive_devdesc% = cfadisk_install,USBSTORDisk&Ven_JetFlash&Prod_TS1GJF110&Rev_0.00
%Microdrive_devdesc% = cfadisk_install,USBSTORDISK&VEN_&PROD_USB_DISK_2.0&REV_P
Затем изменим данные в последней строке, указав код экземпляра нашей флешки, т.е. в нашем примере получим:
%Microdrive_devdesc% = cfadisk_install,USBSTORDisk&Ven_LEXAR&Prod_JD_LIGHTNING_II&Rev_1100
%Microdrive_devdesc% = cfadisk_install,USBSTORDisk&Ven_JetFlash&Prod_TS1GJF110&Rev_0.00
%Microdrive_devdesc% = cfadisk_install,USBSTORDisk&Ven_Linux&Prod_File-CD_Gadget&Rev_0000
Совет. Если нужно, чтобы USB флешка в диспетчере устройств отображалась с конкретным именем, нужно отредактировать значение переменной Microdrive_devdesc, например так:
Microdrive_devdesc = «Transcend 64GB DIY SSD»
Установка драйвера Hitachi Microdrive вместо родного драйвера USB накопителя
Осталось заменить драйвер, используемый USB флеш накопителем.
Важно! Если USB драйвер Hitachi Microdrive устанавливается на 64 битной системе, то т.к. для этого драйвера отсутствует цифровая подпись, придется отключить проверку цифровой подписи драйвера либо самостоятельно подписать драйвер.
Откроем вкладку Drivers и нажмем кнопку Update Drivers.
Укажем папку к каталогу, в который распакован скачанный архив с драйвером Hitachi:
Выберем новый драйвер.
Игнорируем предупреждение об отсутствующей цифровой подписи драйвера.
Совет. В Windows 10 и Windows 8 при установке драйвера появляется такая ошибка:
Система Windows обнаружила драйверы для этого устройства, но при попытке установки этих драйверов произошла ошибка.
Hitachi Microdrive
Inf стороннего производителя не содержит информации о подписи
Для отключения проверки цифровой подписи драйвера, выполните команды:
bcdedit.exe /set nointegritychecks ON
bcdedit.exe /set TESTSIGNING ON
Перезагрузите компьютер и попытайтесь опять установить драйвер.
Осталось перезагрузить компьютер и, открыв диспетчер дисков, удостоверится, что ваша флешка стала определяться как обычный жесткий диск (Type: Basic), а в качестве драйвера используется драйвер Hitachi.
Открыв проводник, можно также убедиться, что иконка флешки поменялась она стала отображаться как жесткий диск обычный диск.
Теперь с этой флешкой можно работать как с обычным HDD: создавать разделы, указывать активный раздел, создавать динамические диски, устанавливать ПО, которое не работает с флешек и т.д.
Важно. На других компьютерах Windows без этого драйвера второй раздел устройства доступен не будет.
Как удалить драйвер Hitachi Microdrive
Чтобы удалить драйвер Hitachi Microdrive, откройте свойства диска и на вкладке драйвер нажмите кнопку Update Driver – система сама установит родной драйвер.
Совет. Если после установки драйвера Hitachi система перестала загружаться с BSOD, нужно загрузить компьютер с установочного диска Windows / Live CD и вручную удалить следующие файлы:
- cfadisk.sys в каталоге %windir%System32drivers
- Каталог «cfadisk.inf_amd64_…» из %windir%System32DriverStoreFileRepositoty
Перезагрузите компьютер
Нужно понимать, что это решение будет работать только на той системе, на которой установлен соответствующий драйвер.