VirtualBox Linux Ubuntu 12.04 загрузка с внешнего USB HDD или Flash

 
virtualbox_logo

VirtualBox (v4.2.6) не позволяет явно загрузить виртуальную машину с внешнего USB устройства (флэшки) или напрямую использовать диск системы гостем. Также как и просто получить доступ к реальному устройству. Впрочем такая возможность всё же существует. И делается это достаточно просто.

В основном эта процедура сводится к созданию специального файла образа диска $FILENAME.vmdk, который обеспечит связь реального устройства с вашим образом гостевой системы (виртуальной машины).

Все необходимые для этого инструменты входят в дистрибутив VirtualBox. Есть лишь несколько подводных камней, которые могут встретиться.

Создание VMDK файла.

Подключите USB диск (флэшку) к основной машине. После этого обычно она автоматически монтируется (например на Ubuntu Desktop).
Определите как называется файл устройства в каталоге /dev относящийся к этому диску. Это можно сделать разными способами. Возможно вам будет достаточно просто глянуть на содержимое /dev, чтобы увидеть новое устройство. Если вы не уверены, то можно посмотреть список смонтированных файловых систем.

[email protected]ost:~$ mount
/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)

В моём случае это будет

/dev/sdc1 on /media/2def28aa-42e6-4494-9c3a-c765940a9bad type ext4 (rw,nosuid,nodev,uhelper=udisks)

Значит моему USB устройству соответствует файл /dev/sdc

Не знаю на сколько это может быть опасно работать со смонтированным устройством, но я нахожу целесообразным всё же размонтировать диск перед работой.

sudo umount /dev/sdc1

Теперь можно собственно создать .vmdk файл выполнив следующую команду:

sudo vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdc

Подключение VMDK файла

В вашем домашнем каталоге будет создан файл usb.vmdk
Теперь необходимо добавить этот файл в качестве жёсткого диска виртуальной машины.
select_vmdk_0.png

В этот момент может возникнуть следующая ошибка:

Не удалось открыть жёсткий диск /home/user/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)

vmdk_access_error_0.png

Очевидно, что пользователю запустившему VirtualBox не хватило прав для доступа к файлу. Исправим положение.

[email protected]:~$ sudo chown user:user -v usb.vmdk
изменён владелец «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.

sudo usermod -a -G disk user

Теперь нужно завершить текущий сеанс и начать новый (выйти и войти в систему) затем повторить попытку подключения диска к виртуальной машине. Теперь она увенчается успехом.

success_attach_vmdk_0.png

Можно запускать виртуальную машину.

Комментарии

Аватар пользователя 1

#01

помогло

Аватар пользователя oleg

#03

missing MBR-helper
что бы это значило?

Аватар пользователя Anonymous

#03.00

это значит что диск который с флешкой надо сделать первым primary master или sata 0

Аватар пользователя platinov

#03.01

Полетела таблица разделов на носителе, нужно пересоздать ее.

Аватар пользователя kikimer

#07

Отличная статья, всё получилось, спасибо!

Аватар пользователя Сергей

#08

Спасибо, действительно помогло!

Аватар пользователя Дмитрий

#09

У меня выдает вот такое сообщение: sudo: vboxmanage: command not found

Аватар пользователя master

#09.00

Возможно в переменной окружения $PATH нету пути до каталога с этой утилитой. Такое случается на системах где содержимое $PATH у пользователей может отличаться. Уточните каталог установки virtualbox или попробуйте поискать программу по каталогам