В. Костромин (kos at rus-linux dot net), "18.7. Подключение физических дисков к виртуальному компьютеру" - 14/09/2004 || Библиотека ЛинуксЦентра

Глава 18. Виртуальный компьютер (система VMware)

Предыдущий раздел Оглавление Следующий раздел

18.7. Подключение физических дисков к виртуальному компьютеру

Итак, мы создали и запустили виртуальный компьютер, работающий с виртуальным жестким диском. Но изолированный компьютер в наши дни уже смотрится как-то архаично, и естественно возникает желание обмениваться файлами как с базовым компьютером, так и с другими компьютерами (как реальными, так, может быть, и виртуальными). Давайте рассмотрим, как это желание удовлетворить. В настоящем разделе опишем работу с физическими дисками, а в следующем поговорим о выходе в локальную сеть.

18.7.1 Необходимые меры предосторожности.

Прежде чем описывать процедуры подключения физического диска к виртуальному компьютеру, надо рассказать о некоторых опасностях, которые тут нас подстерегают. В документации, размещенной на сайте фирмы VMware, имеется следующее предостережение:

"Поддержка работы с физическими дисками является продвинутой особенностью (an advanced feature) системы VMware и может использоваться только пользователями, которые уже знакомы с продуктом. А чтобы познакомиться с продуктом, вы должны, как минимум, создать и сконфигурировать виртуальную машину с виртуальным диском и установить на нее операционную систему. Что касается загрузки ранее установленной на физический диск операционной системы в виртуальный компьютер, то она может не работать для некоторых конфигураций аппаратного обеспечения и операционной системы".

Это не означает, что подключение к виртуальной машине реальных дисков в принципе невозможно. Просто надо делать такое подключение корректно, с соблюдением некоторых мер предосторожности.

Основная опасность, связанная с использованием реальных дисков, состоит в одновременном доступе к одному разделу жесткого диска из нескольких операционных систем. Все ОС создавались в расчете на полный контроль над компьютером. Поскольку каждая ОС представления не имеет о другой, то когда две ОС пытаются производить операции записи или чтения в одном и том же разделе реального диска, может произойти потеря или даже разрушение данных. Дело в том, что система VMware (пока еще) не регулирует дисковые операции базовой операционной системы. Поэтому раздел реального диска не должен одновременно использоваться (быть смонтирован) в ОС на базовом компьютере и в виртуальной машине.

Следовательно, вы должны удостовериться, что базовая ОС "не видит" раздел, с которым работает ОС виртуального компьютера. Безопасность работы с реальными дисками определяется выполнением этого требования. Поэтому, прежде чем подключить раздел реального диска к виртуальной машине, размонтируйте его в базовой ОС.

Если вам необходимо осуществить обмен данными между базовым и виртуальным компьютерами, можно подключать один и тот же диск к этим компьютерам поочередно. Для этого придется вначале смонтировать раздел в базовой ОС Linux, перенести на него необходимые данные, размонтировать диск, запустить VMware и виртуальный компьютер, скопировать данные на виртуальный диск, выключить VMware и снова отдать диск базовой ОС. Альтернативой такому очевидно неудобному способу переноса данных является использование сетевых возможностей ОС, таких как протоколы Samba или NFS, для переноса данных из одного компьютера в другой. Эти возможности будут рассмотрены в следующем разделе, а пока давайте научимся подключать физический диск (или раздел на таком диске) к уже созданному виртуальному компьютеру в качестве второго жесткого диска.

18.7.2 Подключение физического диска к виртуальному компьютеру

Итак, мы имеем виртуальный компьютер, на котором работает ОС Windows (в одном из ее вариантов), запускаемая с виртуального диска C:. И, предположим, у нас имеется раздел жесткого диска (пусть, для определенности, это будет раздел /dev/hda2), который был отформатирован в той же ОС от Microsoft (в FAT, FAT32 или NTFS, в зависимости от варианта ОС). Естественно, возникает желание получить доступ к этому разделу из виртуального компьютера. Попытаемся подключить этот раздел в качестве диска D: виртуального компьютера. Но прежде, чем описывать конкретные процедуры подключения, дадим некоторые предварительные сведения.

Права доступа к дискам

Жесткие диски, к которым вы хотите получить доступ из виртуального компьютера (и, в частности, диски, с которых происходит запуск операционных систем, как это будет описано в разд. 18.7.3), должны быть доступны как по чтению, так и по записи для пользователей, запускающих систему VMware. В большинстве дистрибутивов Linux физические диски (такие как /dev/hda, /dev/hdb) принадлежат группе disk. Если это так, то можно просто добавить пользователей системы VMware в эту группу. Можно также просто поменять владельца устройства. Пожалуйста, тщательно продумайте вопросы безопасности при выборе способа предоставления доступа к дискам. Самый простой и вполне приемлемый на персональном компьютере способ заключается в том, чтобы дать пользователям системы VMware доступ ко всем физическим устройствам /dev/hd[abcd], к которым надо обращаться из виртуальных машин, а в вопросах разграничении доступа положиться на конфигурационные файлы VMware.

Файл описания физического диска

Чтобы система VMware могла получить доступ к физическим дискам, для каждого из таких дисков должен быть создан небольшой файл, содержащий некоторые данные, необходимые виртуальной машине для получения доступа к разделам данного диска. В документации на VMware такой файл называют "Safe Raw Disk", мы будем называть его файлом описания физического диска. Вот типичный пример такого файла для компьютера, на котором установлены ОС Windows NT и Linux:

DEVICE /dev/hda

# Partition type: MBR

RDONLY 0 62

# Partition type: HPFS/NTFS

ACCESS 63 8193149

# Partition type: Linux swap

NO_ACCESS 8193150 8466254

Как видите, этот файл содержит информацию о разделах диска, типе файловой системы в каждом разделе (правда, только в строке комментария) и правах доступа к разделу. Эту информацию можно представить в виде табл. 18.1.

Таблица 18.1. Информация из файла описания диска

Тип раздела

Размещение (сектора)

Access Rights

Загрузочная запись

С 0 по 62 включительно

Read-Only

NTFS или FAT

С 63 по 8193149 включительно

Read-Write

Linux swap

С 8193150 по 8466254 включительно

Нет доступа

Если операционная система, запущенная на виртуальном компьютере, попытается произвести операции чтения или записи в сектора, доступ к которым запрещен в таком файле описания физического диска, система VMware выдаст пользователю диалоговое окно, в котором потребует подтвердить правомочность данной операции или отказаться от ее выполнения.

Подключение физического диска к виртуальному компьютеру. Имея в виду только что сказанное, можно приступить к подключению физического диска к виртуальному компьютеру, для чего надо выполнить следующие действия.

  1. Добавьте пользователя, от имени которого будете запускать систему VMware, в группу disk (это делается путем редактирования файла /etc/group суперпользователем).

  2. Убедитесь в том, что подключаемый физический диск не смонтирован в файловой системе базового компьютера.

  3. Чтобы создать файл описания физического диска, запустите систему VMware, выберите нужную конфигурацию (но не включайте питание виртуального компьютера) и откройте меню Settings| Configuration Editor, после чего щелкните по значку "+" слева от указания на IDE- или SCSI-диски.

  4. Найдите строку, в которой указано, что соответствующий диск не установлен ("Not installed"), и установите на нее подсветку (курсор). Предположим, например, что вы выбрали строку "P-S Not Installed" среди IDE-дисков. Значит виртуальная машина будет считать, что данный физический диск подключен как второй диск (slave) к первому контроллеру (primary IDE controller). Соответственно, если в группе SCSI-дисков найдется строка "SCSI 0:1 Not Installed", то для виртуального компьютера такой диск будет иметь номер 1 на SCSI-контроллере. Если строки "Not Installed" не найдется, то к Вашему виртуальному компьютеру подключено уже 4 IDE-диска (или, соответственно, 7 SCSI-дисков), т. е. достигнут предел. В таком случае удаляйте какой-нибудь диск, пользуясь кнопкой Remove.

  5. В поле Device Type установите (выберите) значение Raw Disk.

  6. В поле Name введите имя для файла описания физического устройства (например, raw_hda.dsk).

  7. Щелкните по кнопке Create Raw Disk.

  8. В появившейся строке ввода укажите имя физического диска (не раздела, а именно диска, например, /dev/hda для IDE-диска или /dev/sda для SCSI).

  9. Появится новое окно, в котором выведен список разделов, имеющихся на данном физическом диске. Для каждого раздела укажите права доступа, которые будет иметь в данном разделе виртуальная машина. Для каждого раздела нужно выбрать один из следующих вариантов задания прав:

  1. Щелкните по кнопке Save. В некоторых случаях после этого может появиться окно, сообщающее, что два раздела на диске пересекаются (имеют общие сектора) и, следовательно, для них должны быть заданы одинаковые права доступа. Такого вообще-то быть не должно (и эту ситуацию необходимо как-то исправлять), но если все же такое окно появится, вы можете задать одинаковые права для обоих разделов и снова щелкнуть по кнопке Save. Файл описания физического диска будет записан в каталог, где хранятся остальные файлы Вашей виртуальной машины (что-то вроде /home/user1/vmware/nt4/).

  2. Щелкните по кнопке Install для того, чтобы присоединить выбранный физический диск к виртуальному компьютеру. Как и в случае виртуального диска, вы можете задать для физического диска один из трех возможных режимов работы: "с записью" ("Persistent"), "без записи" ("Nonpersistent") или "с отложенной записью" ("Undoable").

После завершения всех этих действий можете загрузить ОС в виртуальном компьютере, и вы должны увидеть в своей системе новый диск.

Если в последующем вам почему-либо потребуется отключить физический диск от виртуального компьютера (например, для того, чтобы смонтировать его в файловой системе базового компьютера), откройте Редактор конфигурации (Settings | Configuration Editor) и щелкните по экранной кнопке Remove на вкладке, соответствующей данному диску. На этой же вкладке имеется кнопка Edit Raw Disk..., с помощью которой можно откорректировать права доступа к разделам диска, определяемые файлом физического диска. Обратиться к этой опции вам придется в тех случаях, когда вы, скажем, заменили физический диск в компьютере или модифицировали разбиение его на разделы.

18.7.3 Загрузка ОС с физического диска

Раз имеется возможность подключать физические диски к виртуальному компьютеру, то, естественно, возникает вопрос: "А нельзя ли загружать операционную систему виртуального компьютера с физического диска?" Такой вопрос особенно актуален в том случае, когда до установки системы VMware на Вашем компьютере уже были установлены в разные разделы как одна из операционных систем Windows, так и ОС Linux (в которой вы запускаете виртуальный компьютер). И ответ на этот вопрос положителен. Система VMware может даже использовать загрузчики, установленные ранее на компьютере. Загрузчик будет работать внутри VMware и даст возможность пользователю выбрать операционную систему, запускаемую на виртуальном компьютере. Можно и заново установить, например, Windows 98 на физический диск, а потом запускать ее в виртуальной машине.

VMware пока что (в версии 2) поддерживает загрузку с реальных дисков только для IDE устройств (в то время как файл, моделирующий виртуальный диск, может быть расположен как на IDE, так и на SCSI диске) (Примечание 26). . Однако использование ОС, установленной на физическом диске, сопряжено с некоторыми особенностями, которые надо учитывать при настройке обеих ОС (даже кроме тех опасностей, о которых мы уже говорили в разд. 18.7.1). Первой из таких особенностей является необходимость создания отдельного профиля оборудования для Windows.

Операционные системы фирмы Microsoft (включая Windows 95, Windows 98, Windows NT 4.0) используют понятие "профиля оборудования". Каждый профиль определяет некоторый набор известных системе устройств. Если заданы два или более профиля, пользователю в процессе загрузки предлагается выбрать один из них.

ОС Windows 95, Windows 98 и Windows 2000 благодаря механизму Plug and Play в процессе загрузки проверяют соответствие реальных устройств указанному профилю оборудования. Несоответствие приводит к тому, что снова запускается механизм определения устройств и установки драйверов. Хотя в большинстве случаев этот процесс завершается успешно, это существенно замедляет загрузку.

Windows NT не поддерживает Plug and Play и использует профиль оборудования для инициализации устройств. Несоответствие реального набора тому, что указано в профиле, вызывает выдачу сообщения об ошибке и отключение (точнее неподключение) устройства.

А поскольку конфигурация виртуального компьютера отличается от конфигурации физического компьютера, то для запуска одной из операционных систем семейства Windows внутри виртуальной машины надо создать отдельный профиль оборудования, чтобы упростить процесс загрузки. Поэтому процесс создания и конфигурирования виртуальной машины, которая использует операционную систему, установленную в один из разделов физического диска, имеет некоторые отличия от процесса создания виртуальной машины, работающей с виртуальными дисками.

  1. Вначале проинсталлируйте операционную систему, которую вы хотите запускать на виртуальном компьютере, на физический IDE-диск реального компьютера (естественно, это делать не нужно, если ОС уже была установлена ранее).

  2. До запуска системы VMware загрузите эту ОС (имеется в виду одна из ОС семейства Windows) на реальном компьютере и создайте два профиля оборудования. Для этого откройте Панель управления, войдите в меню Система и переключитесь на вкладку Профиль оборудования. Там уже имеется как минимум один профиль, который называется "Текущий (Original configuration)". Щелкните по кнопке Копировать и назовите новый профиль, например, "Виртуальная машина".

  3. Только для Windows NT/2000: Отключите некоторые устройства во вновь созданном профиле. Для этого откройте окно Устройства в Панели управления, выберите отключаемое устройство и нажмите экранную клавишу Остановить. Отключить необходимо аудиоплату, MIDI, джойстик, плату Ethernet и другие сетевые, а также USB устройства (отключать их надо только во вновь созданном профиле, не промахнитесь). Если вы установили и предполагаете запускать в виртуальном компьютере Windows 95 или Windows 98, то отключать устройства не требуется. Они будут отключены автоматически на стадии загрузки ОС.

  4. Перезагрузите компьютер и запустите Linux.

  5. Убедитесь, что раздел физического диска, который отведен для использования операционной системой виртуального компьютера, не смонтирован в Linux. Удалите или закомментируйте соответствующую строку в файле /etc/fstab, а в данном сеансе размонтируйте этот раздел из командной строки.

  6. Установите права доступа к разделам жесткого диска. О том, как это сделать, было сказано в разд. 18.7.2. Самый простой и вполне приемлемый способ заключается в том, чтобы включить пользователей системы VMware в группу disk, дав тем самым доступ ко всем физическим устройствам /dev/hd[abcd], которые содержат операционные системы или загрузчик, а в вопросах разграничении доступа положиться на конфигурационные файлы VMware. Таким образом обеспечивается доступ для загрузчика к файлам, необходимым для запуска операционных систем (например, LILO требуется доступ по чтению к каталогу /boot в разделе Linux для запуска операционных систем, отличных от Linux, которые могут быть расположены на других разделах или других дисках).

  7. Сконфигурируйте виртуальную машину под вновь установленную операционную систему (используя Мастер конфигурации или Редактор конфигурации). При выполнении процедуры конфигурации для реальных дисков учтите следующие моменты:

Примечание

Еще раз напомним, что если позволить виртуальной машине производить запись в раздел, который одновременно смонтирован в файловой системе Linux, то возможны непредвиденные последствия (см. разд. 18.7.1). Поэтому, прежде чем позволять виртуальной машине производить запись в раздел, убедитесь, что этот раздел не смонтирован в Linux на базовом компьютере.

  1. Запустите VMware и проверьте созданную конфигурацию. Для этого можно дать команду vmware <config-file>, где <config-file> — это полный путь к конфигурационному файлу, созданному Мастером конфигурации (имена таких файлов оканчиваются на .cfg). Можно также дать просто команду vmware и открыть файл конфигурации через меню File | Open. После этого откройте меню Settings | Configuration Editor и убедитесь в том, что в конфигурации IDE- дисков указан хотя бы один физический диск ("Raw Disk") и для него введено имя файла описания диска (raw disk description file). Имена этих файлов обычно имеют вид <configuration-name>.hda.dsk, <configuration-name>.hdb.dsk, и т. д. Можно проверить и другие опции конфигурации, особенно такие, для которых вы приняли значения по умолчанию, например, вы можете изменить значение объема памяти, выделяемой виртуальной машине.

  2. Включите питание виртуальной машины (кнопка Power On). Система VMware запускает Phoenix BIOS, после чего считывается главная загрузочная запись загрузочного диска (master boot record — MBR). Если вы сконфигурировали систему с использованием нескольких IDE дисков, VMware BIOS будет пытаться произвести загрузку ОС с этих дисков в следующей последовательности:

    Если у вас несколько SCSI-дисков, VMware BIOS производит загрузку в порядке номеров SCSI устройств.

    Если в Вашей системе сконфигурированы как SCSI, так и IDE диски, VMware BIOS сначала пытается загрузить ОС со SCSI-устройств, затем — с IDE-дисков. Опрос устройств производится в той же последовательности, как было сказано выше.

    Порядок обращения к дискам в процессе загрузки можно изменить через меню Boot в Phoenix BIOS виртуальной машины. Для этого после включения питания VMware нажмите клавишу <F2>, чтобы попасть в меню BIOS.

  1. Если у вас установлено несколько операционных систем (многовариантная загрузка), то выберите нужную ОС тем же способом, как вы делали это до установки системы VMware (из меню, предлагаемого при загрузке).

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

    Введите номер, соответствующий конфигурации виртуального компьютера (в ситуации, изображенной на рис. 18.6, это будет 2) и нажмите клавишу <Enter>. В процессе дальнейшей загрузки ОС вы получите некоторые сообщения об ошибках и дополнительные задержки в процессе загрузки, но это нормально.

Рис. 18.6. Выбор профиля оборудования для виртуального компьютера

  1. Только для Windows 2000: После того, как вы запустите Windows 2000 (в качестве ОС на виртуальном компьютере) вы увидите диалоговое окно Найдено новое оборудование (Found New Hardware), в котором предлагается установить новый драйвер для видео-контроллера. Этого делать не нужно. Щелкните по кнопке Отмена (Cancel) для того, чтобы закрыть диалоговое окно и откажитесь от предлагаемой перезагрузки компьютера. Windows 2000 автоматически обнаружит и установит драйвер для сетевой карты AMD PCnet PCI Ethernet. После этого вы должны установить пакет VMware Tools для Windows (на виртуальном компьютере). После того, как будет установлен SVGA-драйвер от фирмы VMware, Inc. (входящий в состав пакета VMware Tools для Windows), перезагрузите ОС Windows 2000 на виртуальной машине. После перезагрузки вы можете поменять разрешение экрана у виртуальной машины (Свойства экрана | Параметры).

    Если вы хотите использовать звуковую карту, работая с ОС Windows 2000 на виртуальном компьютере, прочитайте руководство по ее подключению на сайте фирмы VMware.

    Только для Windows 95/98: вы увидите диалоговое окно Обнаружено новое оборудование. Windows предложит вам произвести поиск драйверов для него. Для большинства устройств драйверы уже установлены при инсталляции системы, однако, в некоторых случаях может понадобиться установочный CD ROM диск. Windows попросит вас несколько раз перезагрузиться при установке новых драйверов.

    В некоторых случаях Windows может не распознать CD-ROM диск, когда выдается запрос на поиск драйверов. В таком случае рекомендуется попытаться указать в качестве пути к драйверу каталог C:\windows\system\ или отказаться от установки драйвера данного конкретного устройства. Подключение таких устройств может быть выполнено позже.

    Когда Windows установит виртуальные устройства и драйверы для них, надо удалить из системы неработающие устройства, соответствующие реальному оборудованию. Для этого используйте вкладку Система | Устройства в Панели управления. Выберите неработающее устройство и щелкните по кнопке Удалить. Только учтите, что нужно предварительно выбрать профиль оборудования, соответствующий виртуальному компьютеру, чтобы не удалить устройства, работающие при запуске ОС с физического диска.

    Только для Windows NT: После завершения загрузки ОС просмотрите протокол загрузки, чтобы определить те устройства, которые не подключились. Вы можете отключить их в профиле "Виртуальный компьютер", используя менеджер устройств (Панель управления | Устройства).

  1. Убедитесь, что все виртуальные устройства работают корректно, особенно сетевые адаптеры. Помните, что состав оборудования виртуального компьютера существенно отличается от набора устройств, реально имеющихся на Вашем физическом компьютере.

    Только для Windows 95/98: Если какое-то виртуальное устройство отсутствует, воспользуйтесь опцией Панель управления | Добавить новое оборудование.

  2. Установите VMware Tools (если вы еще не сделали этого). Пакет VMware tools будет запускаться в обеих конфигурациях оборудования, но окажет какое-то влияние на работу только в конфигурации "Виртуальный компьютер".

Примечания.

1. Когда вы в следующий раз загрузите Windows в реальном компьютере, используя профиль оборудования, соответствующий реальной конфигурации аппаратуры, в списке устройств могут появиться некоторые виртуальные устройства. Вы можете удалить их или отключить тем же самым способом, который был описан выше для отключения реальных устройств из профиля оборудования, соответствующего виртуальному компьютеру.

2. Если вы при задании конфигурации виртуального компьютера установили для реального диска режим "с отложенной записью" (undoable), то при перезагрузке ОС вы должны будете либо согласиться с тем, чтобы все операции с диском, проделанные внутри виртуальной машины были сохранены на диске, либо отказаться от сохранения изменений.. Подробнее о режимах работы дисков см. в разд.18.4.


Предыдущий раздел Оглавление Следующий раздел


В. Костромин (kos at rus-linux dot net), "18.7. Подключение физических дисков к виртуальному компьютеру" - 14/09/2004 || Библиотека ЛинуксЦентра