Ликбез по Linux

Конфигурируем VMware

Часто ли вы сталкивались с ситуацией, когда срочно требовалось поставить гостевую ОС на виртуальную машину, а под рукой не было такого привычного GUI интерфейса? Или же, наоборот, был продукт виртуализации, к примеру, VMware Player, в котором нет встроенного конфигуратора? Не беда, ведь самый лучший конфиг тот, который ты написал сам!

Почему я выбрал именно VMware? Во-первых, большинство продуктов виртуализации просто не обладают таким функционалом, который имеется в наличии у продукта от VMware inc. Во-вторых, данный программный продукт наиболее часто используется в профессиональной среде, да и к конечному пользователю он более дружелюбен, нежели, к примеру, тот же Parralels Workstations. И, наконец, в-третьих, "варя" способна эмулировать столько систем, на сколько у вашей машины хватит аппаратных ресурсов.

Все описанные действия проводились мной под VMware Workstation 6, однако использовать можно и более ранние версии программы, внеся в конфигурационный файл незначительные изменения. По поводу Fusion ничего сказать не могу, т.к. до сих самых пор я не удосужился поставить её себе и протестировать. Во многом на это повлияли нелицеприятные отзывы пользователей.

При создании новой виртуальной машины конфигуратор создаёт некоторое количество файлов, в которых и хранится вся информация о ней - тип ОС, количество оперативной памяти, информация о CD-, DVD-приводах, подключённых виртуальных жёстких дисках. Итак, вот основные из них:

 

.vmx - основной конфигурационный файл;

.vmdk - файл с информацией о виртуальном жёстком диске;

.nvram - в этом файле лежат настройки BIOS;

.vmsn - в этом файле сохранены данные .nvram, snapshot и копия .vmx;

.vmem - swap-файл (файл подкачки) виртуальной машины;

.vmss - содержит RAM остановленной (suspended) машины;

.vmsd - описание параметров snapshot'а.

Более подробно рассмотрим .vmx-файл, попутно попытавшись написать свой собственный (вот он случай, когда нет GUI под рукой!). Итак, заглянув в исходники подопытного файла (в данном примере это ubuntu.vmx), можно увидеть:

config.version = "8" //собственно, версия конфигурационного файла;
virtualHW.version = "6" //версия VMware (в данном случае это 6.х);
memsize = "512" //количество выделенной памяти для машины;
scsi0:0.present = "TRUE"
scsi0:0.fileName = "Ubuntu.vmdk" //описание параметров жёсткого диска;
ide1:0.present = "TRUE"
ide1:0.fileName = "D:\Образы\Ubuntu 8.04\ubuntu-8.04-desktop-i386.iso"
ide1:0.deviceType = "cdrom-image" //описание параметров CD-, DVD-привода;

Это был пример простейшего конфига, в котором описываются базовые параметры виртуальной машины, гостевой ОС, количества выделенной памяти, местоположение образа, с которого была установлена ОС, и т.д. Интересующийся пользователь сам заглянет в недра конфигурационного файла и разберётся, что к чему. А мы же тем временем подключим нашу гостевую ОС к сети (интра- или Интернет). Делается всё это достаточно просто:

ethernet0.present = "TRUE" //добавляем в нашу машину сетевой адаптер;
ethernet0.startConnected="TRUE" //разрешаем запуск адаптера вместе со стартом гостевой ОС;
ethernet0.virtualdev="e1000" //параметр, указывающий чипсет нашей карты;
ethernet0.connectionType="bridged" //указываем режим работы карты.

Хочется остановиться на последнем пункте более подробно. Всего существует четыре типа параметров для виртуального сетевого адаптера.

  • Use bridged networking. В этом режиме наша виртуальная карточка работает через физическую сетевую карту в системе.
  • Use NAT. В данном варианте гостевая ОС спрятана за NAT, созданном на основной машине. Удалённый узел, соответственно, не инициализирует подключение, т.к. машина не имеет собственного IP-адреса.
  • Use host-only networking. Создаётся виртуальная сеть с основным компьютером, с отсутствием при этом доступа к внешней сети.
  • Do not use network. Виртуальная машина не использует сеть.

Выбрав нужный параметр, отправляемся далее. А далее попытаемся подключить к нашей машине дополнительный жёсткий диск (к примеру, от другой гостевой ОС, главное, чтобы он не использовался в данный момент).

scsi1:0.present = "TRUE"
scsi1:0.fileName = "имя_диска.vmdk"

В приведённом примере подключаемый диск должен лежать непосредственно в папке с виртуальной машиной. А если нужно подключить диск с другого раздела? Не беда, просто добавляем путь к нему, и дело сделано.

scsi1:0.fileName = "указываем путь к диску, к примеру С:\Windows\slackware.vmdk"

Как добавить в систему новый HDD, разобрались. А что делать, если вдруг срочно нужно запустить какой-либо LiveCD? Да-да, правильно. LiveCD со стандартным конфигуратором не дружат. Но не беда! Добавляем следующие строки:

ide1:0.present = "TRUE"
ide1:0.fileName = "livecd.iso"
ide1:0.deviceType = "cdrom-image"

Как видно, всё достаточно просто. Вместо livecd.iso указываем имя образа с дистрибутивом. Можно просто закинуть образ в папку с виртуальной машиной, а можно указать путь к нему, применив уже описанный мною метод.

Если у вас случится ситуация, когда срочно нужно перенести с виртуальной машины какой-либо файл, а загружать гостевую ОС нет времени или желания, то можно примонтировать виртуальный диск к системе. В поставку продуктов от VMware входит очень полезная утилита - DiskMount. Работает она через командную строку по команде vmware - mount. Единственное условие - опять же, виртуальный диск не должен использоваться в этот момент.

vmware-mount h: "C:\Documents and Settings\My Virtual Machines\win2003.vmk"

Можно, конечно, каждый раз монтировать диск через командную строку, однако, если это делать слишком часто, то такая работа начинает немного раздражать. Специально для этих случаев была написана графическая оболочка DiskMount GUI, скачать которую можно с petrushka.stardock.net/software/VMware.html. Это заметно облегчит жизнь.

На сим позвольте откланяться.

Крис КАРМАК

Версия для печатиВерсия для печати

Номер: 

33 за 2008 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!