
VirtualBox (v4.2.6) не позволяет явно загрузить виртуальную машину с внешнего USB устройства (флэшки) или напрямую использовать диск системы гостем. Также как и просто получить доступ к реальному устройству. Впрочем такая возможность всё же существует. И делается это достаточно просто.
В основном эта процедура сводится к созданию специального файла образа диска $FILENAME.vmdk, который обеспечит связь реального устройства с вашим образом гостевой системы (виртуальной машины).
Все необходимые для этого инструменты входят в дистрибутив VirtualBox. Есть лишь несколько подводных камней, которые могут встретиться.
Создание VMDK файла.
Подключите USB диск (флэшку) к основной машине. После этого обычно она автоматически монтируется (например на Ubuntu Desktop).
Определите как называется файл устройства в каталоге /dev относящийся к этому диску. Это можно сделать разными способами. Возможно вам будет достаточно просто глянуть на содержимое /dev, чтобы увидеть новое устройство. Если вы не уверены, то можно посмотреть список смонтированных файловых систем.
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda3 on /home type ext4 (rw)
gvfs-fuse-daemon on /home/user/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=alexander)
/dev/sdc1 on /media/2def28aa-42e6-4494-9c3a-c765940a9bad type ext4 (rw,nosuid,nodev,uhelper=udisks)
В моём случае это будет
Значит моему USB устройству соответствует файл /dev/sdc
Не знаю на сколько это может быть опасно работать со смонтированным устройством, но я нахожу целесообразным всё же размонтировать диск перед работой.
Теперь можно собственно создать .vmdk файл выполнив следующую команду:
Подключение VMDK файла
В вашем домашнем каталоге будет создан файл usb.vmdk
Теперь необходимо добавить этот файл в качестве жёсткого диска виртуальной машины.
В этот момент может возникнуть следующая ошибка:
Permission problem accessing the file for the medium '/home/user/usb.vmdk' (VERR_ACCESS_DENIED).
Код ошибки: VBOX_E_FILE_ERROR (0x80BB0004)
Компонент: Medium
Интерфейс: IMedium {29989373-b111-4654-8493-2e1176cba890}
Вызванный интерфейс: IVirtualBox {3b2f08eb-b810-4715-bee0-bb06b9880ad2}
Код ошибки метода: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)
Очевидно, что пользователю запустившему VirtualBox не хватило прав для доступа к файлу. Исправим положение.
изменён владелец «usb.vmdk» с root:root на user:user
[email protected]:~$ sudo chmod 0644 -v usb.vmdk
права доступа «usb.vmdk» изменены с 0600 (rw-------) на 0644 (rw-r--r--)
Разумеется ваш пользователь будет отличный от user.
Пробовать подключать диск ещё рано. Ошибка доступа повториться.
Следующим шагом будет добавление пользователя запускающего VirtualBox в группу disk.
Теперь нужно завершить текущий сеанс и начать новый (выйти и войти в систему) затем повторить попытку подключения диска к виртуальной машине. Теперь она увенчается успехом.
Можно запускать виртуальную машину.



Комментарии
#01
помогло
#03
missing MBR-helper
что бы это значило?
#03.00
это значит что диск который с флешкой надо сделать первым primary master или sata 0
#03.01
Полетела таблица разделов на носителе, нужно пересоздать ее.
#07
Отличная статья, всё получилось, спасибо!