Иногда требуется использовать в VirtualBox не образ виртуального диска, а настоящее блочное устройство, такое как диск или USB Flash. В нашем случае, была поставлена задача загрузки в VirtualBox для проведения эксперимента копии одного из серверов, содержимое дисков которого было скопировано на USB-накопитель. При этом система должна была поддерживать загрузку не только в VirtualBox, но и без виртуализации - при соединении USB-накопителя к любому компьютеру.Для подключения блочного устройства /dev/sdc необходимо выполнить (тем же методом можно подключать отдельные разделы, например, /dev/sdc2):
sudo VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/HardDisks/sdc.vmdk -rawdisk /dev/sdc
В дальнейшем, в настройках виртуальной машины выбираем образ sdc.vmdk, который ссылается на /dev/sdc. При подключении необходимо обратить внимание на права доступа к заданному блочному устройству, например, в нашем случае текущий пользователь должен входить в группу, для которой разрешена запись /dev/sdc.
URL:
Обсуждается: http://www.opennet.me/tips/info/2508.shtml
Вот уж точно заметка, только для себя любимого, но во интернете...
Сергей, зря вы так. Мне например пригодится, раньше не знал.
в Документацию заглядывать не пробовали ?
там мноого полезного пишут..
Документацию читаю только по тем вопросам по которым специализируюсь. Документацию на всё на свете времени читать не хватит.
> в Документацию заглядывать не пробовали ?
> там мноого полезного пишут..Не знаю как сейчас, но в свое время долго парился с подобной задачей. В стандартной документации этот вопрос не был освещен, что-то вроде недокументированной возможности было.
9.6.1. Using a raw host hard disk from a guest
> 9.6.1. Using a raw host hard disk from a guestЯ про то, что не очевидно, что это можно использовать для работы с USB Flash в гостевой системе, я по дури пытался вначале пробросить USB-устройство и нарвался на кучу глюков. Запускал FreeBSD в гостевом режиме - были постоянные паники при работе с USB и модуль usb storage какую-то левую ошибку выдавал.
чем-то подобным я в винде пробросил флешку как диск в virtualbox, получив даже возможность загрузить VM с этой самой флешки.
Спасибо.
а под winblows?
vmdk - формат дисков vmware, т.е. можно всё сделать с помощью мастера (первый раз, чтобы понять формат), затем посунуть результат virtualbox
А можно на компе с dual-boot (лин/вин) таким обрзом запускать венду из-под линукса?
> А можно на компе с dual-boot (лин/вин) таким обрзом запускать венду из-под
> линукса?Конечно можно, только винда, установленная на реальное железо, на виртуальном не поднимется :)
Поднимется. Надо только предварительно драйвер контролера жесткого диска сменить на стандартный. Я делал это под Убунтой, на проце не поддерживающем виртуализацию. Тормозило прилично, но при желании работать можно.
и если можно ссылолчку
а можно это в MS Windows сделать? и если да, то как?
Примерно так:
C:\Program Files\Oracle\VirtualBox>VBoxManage internalcommands createrawvmdk
Oracle VM VirtualBox Command Line Management Interface Version 4.0.0
(C) 2005-2010 Oracle Corporation
All rights reserved.Usage: VBoxManage internalcommands <command> [command arguments]
Commands:
createrawvmdk -filename <filename> -rawdisk <diskname>
[-partitions <list of partition numbers> [-mbr <filename>] ]
[-relative]
Creates a new VMDK image which gives access to an entite host disk (if
the parameter -partitions is not specified) or some partitions of a
host disk. If access to individual partitions is granted, then the
parameter -mbr can be used to specify an alternative MBR to be used
(the partitioning information in the MBR file is ignored).
The diskname is on Linux e.g. /dev/sda, and on Windows e.g.
\\.\PhysicalDrive0).
On Linux host the parameter -relative causes a VMDK file to be created
which refers to individual partitions instead to the entire disk.
The necessary partition numbers can be queried with
VBoxManage internalcommands listpartitionsWARNING: This is a development tool and shall only be used to analyse
problems. It is completely unsupported and will change in
incompatible ways without warning.
Примерно так:
VBoxManage.exe internalcommands createrawvmdk -filename D:\VM\SnowLeopard\usb-hdd.vmdk -rawdisk \\.\PhysicalDrive8Где \\.\PhysicalDrive8 - физический диск 8, какой у вас - сморите в Вашей системе
Сделал описанным в статье образом, создал sdc.vmdk, ссылающееся на /dev/sda2 на жестком диске.
Почему-то нет не хочет добавляться в вирт. машину:
Не удалось открыть жёсткий диск /home/user/.VirtualBox/HardDisks/sdc.vmdk.
Could not open the medium '/home/user/.VirtualBox/HardDisks/sdc.vmdk'.
VD: error VERR_ACCESS_DENIED opening image file '/home/user/.VirtualBox/HardDisks/sdc.vmdk' (VERR_ACCESS_DENIED).
Код ошибки:
NS_ERROR_FAILURE (0x80004005)
Компонент:
Medium
Интерфейс:
IMedium {1с334d43-5da2-4415-b556-7592d3ffec8f}
Вызванный интерфейс:
IVirtualBox {3f12d113-7def-4a11-d02c-9136d82c41e6}
Дочитайте заметку до конца, где специально упомянуто про права доступа к /dev/sd*
Все прочитал и все сделал.
ls -l /dev/sda2
brw-rw---- 1 root diskЮзера, под которым пускаю VirtualBox, добавил в группу disk, перелогинился, согласно groups и id - юзер в группе.
я как-то с этим тоже парился, но в итоге плюнул, поставил вмварь и в ней сделал SCSi-passthrough правда оно катит для, соответственно, скази-дисков.
День мучался с задачкой и разобрался, файл ~/.VirtualBox/HardDisks/sdc.vmdk создаётся от имени рута! Поправил права и все работает!