Эмуляция флешки очень нетривиальная задача, но все же иногда может понадобиться. Оказывается в Linux и такое можно. Для эмуляции используется подсистема ядра USB Gadget и модуль g_mass_storage.
Содержание статьи:
Подготовка системы
Естественно для работы этого всего нужно включить поддержку данного модуля в ядре Linux. Если у вас бинарный дистрибутив вроде Ubuntu или Debian то скорее всего все уже включено, а в Gentoo нужно проделать следующее:
Получаем права суперпользователя:
su
Переходим в папку с исходниками ядра:
cd /usr/src/linux
Запускаем настройку конфигурации:
make menuconfig
Идем в раздел Device Drivers -> USB Support -> USB Gadget Support и включаем его в виде модуля:
затем включаем пункт Mass Storage:
Сохраняем, выходим и пересобираем ядро:
make && make modules && make install && make modules_install
После всего не забудьте перезагрузиться.
Подготовка файлов
В место флешки мы будем подставлять файл. Нужно его подготовить, но не просто создать, а подготовить. Для этого выбираем нужное количество байт из /dev/zero:
dd if=/dev/zero of=~/usb count=500M
Форматируем файл в ext2:
mkfs -t ext2 ~/usb
Эмуляция usb
Вот теперь все готово. Загружаем модуль командой:
modprobe g_mass_storage file=~/usb stall=0 removable=y
Теперь у вас в системе есть виртуальная флешка.
Зачем эта "флешка" не расписано.
например для электронных цифровых подписей, для передачи в виртуалку как флешку.