LINUX.ORG.RU

эмулятор флешки для virtualbox


0

1

Столкнулся с такой проблемой.
На компе в виртуалках запущено несколько «виндовозных компов» (ну например четыре штуки). Для каждого компа нужна своя флешка (хранить ключи, объем десятки килобайт).
Решение в лоб берем маленький хаб, в него втыкаем все найденые флешки и подключаем все это к соответствующим виртуалкам.
Все работает, хотя и весьма громоздко.
А можно ли как-то сделать файл, который в рамках системы объявить «подключенной флешкой», чтобы virtualbox его принял за настоящую флешку и передал для работы в гостевую систему?
Сделать виртуальный диск или сдром в общем-то понятно, а вот флеш-драйв как?

★★★★★

а чем виртуальный диск будет отличаться от флэшки в данном случае? да и не только в данном

Kompilainenn ★★★★★
()
Ответ на: комментарий от Kompilainenn

а чем виртуальный диск будет отличаться от флэшки в данном случае? да и не только в данном

Тем что? нужно чтобы гостевая система на полном серьезе думала и не сомневалась
что ей подсунули именно усб-флеш-драйв.
А не жесткий диск на соответствующем ide/sata порте.

yax123 ★★★★★
() автор топика
Ответ на: комментарий от yax123
Делал в Ubuntu 10.04.4 через модуль ядра g_file_storage. Создал файл нужного размера и отформатировал mkdosfs -ом, потом modprobe g_file_storage file=имя_файл-образа. В системе появилась виртуальная флешка (Unetbootin видит как флешку).

В Ubuntu 12.04b1 этого модуля нет, а есть g_mass_storage, но он у меня не загружается (не только он, но и вообще все модули g_*):

# modprobe g_mass_storage 
FATAL: Error inserting g_mass_storage (/lib/modules/3.2.0-18-generic-pae/kernel/drivers/usb/gadget/g_mass_storage.ko): No such device

# modinfo g_mass_storage 
filename:       /lib/modules/3.2.0-18-generic-pae/kernel/drivers/usb/gadget/g_mass_storage.ko
license:        GPL
author:         Michal Nazarewicz
description:    Mass Storage Gadget
srcversion:     229251CE29EDFA2FD2C43C9
depends:        udc-core
intree:         Y
vermagic:       3.2.0-18-generic-pae SMP mod_unload modversions 686 
parm:           idVendor:USB Vendor ID (ushort)
parm:           idProduct:USB Product ID (ushort)
parm:           bcdDevice:USB Device version (BCD) (ushort)
parm:           iManufacturer:USB Manufacturer string (charp)
parm:           iProduct:USB Product string (charp)
parm:           iSerialNumber:SerialNumber string (charp)
parm:           file:names of backing files or devices (array of charp)
parm:           ro:true to force read-only (array of bool)
parm:           removable:true to simulate removable media (array of bool)
parm:           cdrom:true to simulate CD-ROM instead of disk (array of bool)
parm:           nofua:true to ignore SCSI WRITE(10,12) FUA bit (array of bool)
parm:           luns:number of LUNs (uint)
parm:           stall:false to prevent bulk stalls (bool)

# ls -alF /lib/modules/3.2.0-18-generic-pae/kernel/drivers/usb/gadget/g_mass_storage.ko
-rw-r--r-- 1 root root 56992 марта 12 05:47 /lib/modules/3.2.0-18-generic-pae/kernel/drivers/usb/gadget/g_mass_storage.ko

http://www.armadeus.com/wiki/index.php?title=USB_Gadget#To_emulate_a_mass_storage_device:
anonymous
()
Ответ на: комментарий от yax123

но если нужная флэшка не аппаратный ключ, а на ней просто набор неких файлов, то смысл заморачиваться именно с усб?

Kompilainenn ★★★★★
()
Ответ на: комментарий от anonymous

Похоже то что нужно.
Благодарствую. У меня правда тоже нет этого модуля, но комплексов перед пересборкой ядра у меня нет.

yax123 ★★★★★
() автор топика
Ответ на: комментарий от Kompilainenn

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

yax123 ★★★★★
() автор топика

Переноси виртуалку в qemu, там возможна эмуляция флешки

-drive option[,option[,option[,...]]]
    Define a new drive. Valid options are:

    file=file
        This option defines which disk image to use with this drive. If the
        filename contains comma, you must double it (for instance, "file=my,,file"
        to use file "my,file").

    if=interface
        This option defines on which type on interface the drive is connected.
        Available types are: ide, scsi, sd, mtd, floppy, pflash, virtio.

DiMoN ★★★
()
Ответ на: комментарий от blexey

Ну и пробрось в нужные гостевые системы реальную флешку с реальными файлами. virtualbox-sun с расширением это умеет.

Ъ-лоровец, исходное сообщение не читаю, но мнение обязательно выскажу.

yax123 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.