воскресенье, 5 мая 2013 г.

VirtualBox и raw диски

Взято от сюда: http://help.ubuntu.ru/wiki/virtualbox

Меня интересовало следующее:

Создание RAW диска

Для ускорения работы виртуальной системы с диском иногда имеет смысл разрешить ей доступ к реальным разделам дисков основной системы. Чтобы виртуальная система имела возможность работать с диском практически напрямую, необходимо заранее создать так называемый RAW диск.
По сути RAW диск не что иное, как небольшой конфигурационный файл, указывающий на соответствующий раздел физического диска или весь диск целиком. Нетрудно догадаться, что соответствующий раздел или диск не должны использоваться основной системой для хранения своих данных.
Если таких разделов в вашей системе нет, их можно создать например с помощью утилиты GParted, поджав один или несколько существующих разделов.
Стоит отметить, что создание RAW диска недоступно через графический интерфейс. Придется запускать команды в консоли.
Первое, что надо сделать - определиться какой раздел или диск мы отдадим на растерзание виртуальным системам:
$ ls -al /dev/sd*
brw-rw---- 1 root disk 8, 0 2010-10-01 15:13 /dev/sda
brw-rw---- 1 root disk 8, 1 2010-10-01 15:13 /dev/sda1
brw-rw---- 1 root disk 8, 2 2010-10-01 15:13 /dev/sda2
brw-rw---- 1 root disk 8, 3 2010-10-01 15:13 /dev/sda3
brw-rw---- 1 root disk 8, 4 2010-10-01 15:13 /dev/sda4
brw-rw---- 1 root disk 8, 5 2010-10-01 15:13 /dev/sda5
brw-rw---- 1 root disk 8, 6 2010-10-01 15:13 /dev/sda6
Например, мы решили выделить раздел sda6. Как видно выше, по умолчанию все разделы принадлежат исключительно суперпользователю. Соответственно для пользователя, под которым будет запускаться виртуальная система (в нашем случае stc) нужно прописать права доступа к нужному разделу. Для этого под правами суперпользователя создаем файл /etc/udev/rules.d/99-vbox-disk-rights.rules, например, так:
sudo gedit /etc/udev/rules.d/99-vbox-disk-rights.rules
и в него пишем следующую строчку
KERNEL=="sda6", OWNER="stc"
Если доступ нужен любому пользователю, имеющему право запускать виртуальные машины, проще прописать доступ всей группе vboxusers:
KERNEL=="sda6", GROUP="vboxusers"
Если вы хотите передать виртуальным системам несколько разделов, то повторите эту строчку для каждого из них, заменяя имя раздела (или диска).
Перегружаем систему и проверяем:
$ ls -al /dev/sd*
brw-rw---- 1 root disk 8, 0 2010-10-01 15:13 /dev/sda
brw-rw---- 1 root disk 8, 1 2010-10-01 15:13 /dev/sda1
brw-rw---- 1 root disk 8, 2 2010-10-01 15:13 /dev/sda2
brw-rw---- 1 root disk 8, 3 2010-10-01 15:13 /dev/sda3
brw-rw---- 1 root disk 8, 4 2010-10-01 15:13 /dev/sda4
brw-rw---- 1 root disk 8, 5 2010-10-01 15:13 /dev/sda5
brw-rw---- 1 stc  disk 8, 6 2010-10-01 15:13 /dev/sda6
Теперь все готово к созданию диска. Вводим команду (без sudo):
VBoxManage internalcommands createrawvmdk -filename /home/stc/.VirtualBox/HardDisks/sda.vmdk -rawdisk /dev/sda6
Все, диск создан.
Теперь при создании виртуальной машины, вместо создания нового виртуального диска, выберите «Использовать существующий», справа от поля ввода нажмите кнопку «Выбрать образ» и укажите путь до созданного vmdk файла (в нашем случае /home/stc/.VirtualBox/HardDisks/sda.vmdk).
Стоит уточнить, что выделенные таким образом в виртуальный RAW диск разделы, будет рассматриваться гостевой системой как отдельные диски, поэтому основная система к нему обращаться не сможет (в каждом разделе будет вся структура диска, с MBR и своей разбивкой на разделы). Именно поэтому при создании таких разделов, не стоит их форматировать и монтировать к основной системе.
И второе: если вы создаете «снимок» состояния системы, это значит, что все изменения в состоянии виртуального диска будут записываться не на диск, а в файл изменений, что снизит быстродействие вашей виртуальной машины. Каждый такой снимок на любом типе виртуального диска по определению будет замедлять операции записи и чтения пропорционально количеству уже существующих снимков.

Комментариев нет:

Отправить комментарий