[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Ограничения, наложенные системой windows на removable (съемный) диск , весьма неприятны, такой диск может иметь только один раздел (остальные просто не видятся системой), хотя linux и подобные системы этим не страдают.
Особенно неприятно, что сейчас производятся флешки большого объема, а часто требуется fat раздел (efi,linux и т.п.), но ограничения на fat (максимальный объем раздела 32 Gb, файл 2 Gb) кажутся просто издевательством.
Наиболее часто для решения этой проблемы используется Hitachi Microdrive, драйвер, позволяющий увидеть флешку как fixed (локальный) диск, но этот драйвер приходится ставить отдельно для конкретной флешки, что не слишком удобно.
Представленный набор утилит лишен этих недостатков.
RemAsFixed.cmd - включает режим "все флешки - fixed диски"
FixedAsRem.cmd - включает режим "все fixed диски - removable диски" НЕ ИСПОЛЬЗУЙТЕ ЭТОТ РЕЖИМ НА РАБОЧЕЙ СИСТЕМЕ , ОН МОЖЕТ ПРИВЕСТИ ЕЕ К КРАХУ !!!
Default.cmd - включает стандартный режим и удаляет драйвер.
Утилита работает только в текущей ОС и не изменяет саму флешку.
Утилита не требует инсталляции, работает на лету и не требует перезагрузки системы.
Ограничение - usb диски при переключении режима не должны использоваться (быть открытыми в других приложениях), иначе придется выдернуть и заново вставить носитель.
Буквы устройств могут измениться.
Внимание !!!
Утилиты нельзя запускать с флэшки, их нужно куда либо скопировать и запускать уже оттуда.
Внимание !
При использовании на рабочей системе , дабы ее не грохнуть :
RemAsFixed.cmd - если есть пустой картридер , создающей буквы-пустышки , обязательно выполнить Default.cmd перед выключением или перезагрузкой.
FixedAsRem.cmd - обязательно выполнить Default.cmd перед выключением или перезагрузкой.
Общие правила - попользовался, создал, например, многораздельную флэшку, выполни Default.cmd .
Если уж система грохнулась из-за несоблюдения этих правил тоже не страшно, F8 - загрузить последнюю рабочую конфигурацию. az

Добавление драйвера diskmod.sys в сборки

Загрузить \Windows\System32\config\SYSTEM сборки как HKEY_LOCAL_MACHINE\WB-system (Для xp\2003 \I386\System32\SETUPREG.HIV)
Выполнить reg файл
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\WB-system\ControlSet001\services\diskmod]
"Type"=dword:00000001
"Start"=dword:00000000
"ErrorControl"=dword:00000001
"Tag"=dword:00000004
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  52,00,49,00,56,00,45,00,52,00,53,00,5c,00,64,00,69,00,73,00,6b,00,6d,00,6f,\
  00,64,00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="DiskMod Filter Driver"
"Group"="SCSI Class"
[HKEY_LOCAL_MACHINE\WB-system\ControlSet001\services\diskmod\Parameters]
"Paging"=dword:00000002
"Removable"=dword:00000000
[HKEY_LOCAL_MACHINE\WB-system\ControlSet001\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}]
"LowerFilters"=hex(7):64,00,69,00,73,00,6b,00,6d,00,6f,00,64,00,00,00,00,00
Выгрузить HKEY_LOCAL_MACHINE\WB-system
Почистить мусор, удалив все файлы \Windows\System32\config\SYSTEM.* , кроме файла без расширения (Для xp\2003 аналогично \I386\System32\SETUPREG.HIV.* )
Скопировать нужную версию diskmod.sys в каталог \system32\drivers
Для xp\2003 добавить в TXTSETUP.SIF
[ScsiClass.Load]
diskmod=diskmod.sys
Драйвер добавлен. az az az
Вложение


Последний раз редактировалось: nikzzzz (2016-11-07 21:14), всего редактировалось 18 раз(а)

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет
  • Сообщений: 2581
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
Adler,
Приветствую! aa
Так после переподключения флешки вручную, флешка то уже видится в проводнике как HDD с двумя разделами. Значит проблема не в инсталляции драйвера а именно в отработке restart.au3 (IMHO) ab
(но попробовать, все равно стоит, спасибо! fr )-P.S.
Попробовал заменить драйвер на этот - без изменений, та же картина. ac

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
sergeysvirid,
Похоже на какой-то конфликт с x86/x64 версиями, проверь devcon.exe autoit3.exe - они должны быть x64, у меня в w81x64 все нормально.

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет
  • Сообщений: 2581
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
32162проверь devcon.exe autoit3.exe - они должны быть x64
проверил devcon.exe и autoit3.exe по контрольным суммам - в PE81x64 точно лежат x64-разрядные версии bs
Ладно, завтра голову буду ломать. hello sleep ab

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
sergeysvirid,
Попробуй скомпилированные версии, autoit3.exe не нужен.


Последний раз редактировалось: nikzzzz (2016-11-21 10:25), всего редактировалось 1 раз

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет
  • Сообщений: 2581
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
32166Попробуй скомпилированные версии, autoit3.exe не нужен.
aa
Большое спасибо!!! fr Вечером буду пробовать (сейчас на работу убегаю) br

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
sergeysvirid,
Обновил скрипт, скомпилированные версии и исходник в прикрепленном архиве.
Вложение

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
Эта утилита видит несколько разделов на флешке? + Вам в репу! Жаль нельзя здесь как на 4пда плюсовать за полезные посты и т.д.

[Цитировать]

    Xemom1
  • 175
  • Стаж: 9 лет
  • Сообщений: 862
  • Репутация:88

    [+] [-]
nikzzzz,
Привет!
Я так понимаю, перед работой restart.au3, сначала должна быть установлена служба "Diskmod" ?
С каким параметром:
Reg.exe add "HKLM\SYSTEM\CurrentControlSet\services\diskmod\Parameters" /v "Removable" /t REG_DWORD /d "0x0" /f
или "0х1" ?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
Xemom1, привет.
Да, с параметром "0x0" , служба "Diskmod" должна быть установлена, но не прописана в LowerFilters .
Скриптик написан достаточно корректно, он перестартует только существующие removable диски, не трогая остальных, то-есть его можно запускать многократно без вреда для системы.
У меня возникла следующая идея, которая должна полностью решить проблемы с зависанием на пустых картридерах.
Скрипт запускается однократно при загрузке системы чтобы перевести подключенные носители в fixed режим, далее отключает Diskmod через LowerFilters (для этого надо раскомментировать соответствующие строки скрипта).
При подключении нового носителя он будет removable, это исключит зависание при играх с катридером, но при желании его можно будет перевести в fixed режим повторным запуском скрипта в ручную.

[Цитировать]

    Xemom1
  • 175
  • Стаж: 9 лет
  • Сообщений: 862
  • Репутация:88

    [+] [-]
nikzzzz,
В принципе согласен:
далее отключает Diskmod через LowerFilters
это надо, если допустим хочется подключить другую флешку, в уже загруженную сборку. Иначе она может не будет видна.
Либо нужно заранее подключить все usb флешки в usb порты (необходимые для работы), при загрузки сборки, тогда они станут в fixed режим.

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
32194это надо, если допустим хочется подключить другую флешку, в уже загруженную сборку. Иначе она может не будет видна.
Будет видна, но как removable, проверял.
Я не правильно выразился, LowerFilters не отключает Diskmod, просто этот драйвер фильтр не будет цепляться автоматом на вновь подключенное устройство.

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет
  • Сообщений: 2581
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
32193Да, с параметром "0x0" , служба "Diskmod" должна быть установлена, но не прописана в LowerFilters .
Приветствую! aa
Тогда получается содержимое inst.reg должно выглядеть так?:

inst.reg

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\diskmod]
"Type"=dword:00000001
"Start"=dword:00000000
"ErrorControl"=dword:00000001
"Tag"=dword:00000004
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,64,00,69,00,73,00,6b,00,6d,00,6f,\
00,64,00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="DiskMod Filter Driver"
"Group"="SCSI Class"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\diskmod\Parameters]
"Paging"=dword:00000002
"Removable"=dword:00000000

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
sergeysvirid, привет.
Да, все правильно.

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет
  • Сообщений: 2581
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
nikzzzz,
Вот я олух an
Два дня голову ломал, почему же restart.au3 не отрабатывает на восьмёрочных PE (с последним restart.au3 у меня и на PE81x86 перестал загружаться второй раздел ag ), а оказалось всё банально и просто.
У меня в StartNet.cmd сначала прописан запуск LetterSwap, а затем уже inst.reg и restart.au3
При таком раскладе (не знаю почему только в восьмёрочных PE) происходит какой-то конфликт с правильной отработкой restart.au3
Вобщем прописал запуск LetterSwap после restart.au3 и проблема сразу улетучилась. Всё отрабатывает как надо!!! ay (проверял несколько раз подряд для того, чтобы убедиться)
Короче заморочил я Вам голову своими проблемами. Sorry. ah ab
...И огромное Вам спасибо за отзывчивость и помощь! fr

[Цитировать]

    UserX
  • 667
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 852
  • Репутация:37

    [+] [-]
32230Вот я олух
Это Вы зря. Откуда такое можно было знать заранее? Это только "опыт - сын ошибок трудных" (с).

Страница 5 из 6


Показать сообщения:    

Текущее время: 21-Ноя 14:03

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы