Сменный USB накопитель как жесткий диск в Windows
В этой статье мы покажем, как сделать так, чтобы 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
Недавно мне на глаза попалась довольно интересная утилита – 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