Как создать образ дискеты для vmware
Как подключить внешний дисковод гибких дисков к Windows 7?
- Включите компьютер и дайте Windows полностью загрузиться.
- Вставьте USB-разъем дисковода гибких дисков в свободный USB-порт вашего компьютера. Windows 7 обнаружит дисковод гибких дисков и автоматически установит драйверы.
Как скопировать дискету 3.5?
При необходимости оба этих привода могут быть подключены извне.
Что такое виртуальный дисковод для гибких дисков?
Как создать образ?
Создавать . Файл изображения IMG
Как открыть файл VFD?
4 простых способа открытия файлов VFD
Как создать дискету в Windows 10?
Как использовать WinImage?
WinImage позволяет перетаскивать файл изображения из WinImage в другое приложение, помещая указатель мыши на строку состояния или на фон панели инструментов. Нажмите левую кнопку мыши и, удерживая ее нажатой, переместите указатель на другое приложение (перетащите клиент) и отпустите кнопку мыши.
Может ли Windows 10 читать дискеты?
Куда положить дискету?
Маленький черный язычок защиты от записи, который можно двигать вверх и вниз, всегда находится с правой стороны дискеты, если смотреть на нее лицевой стороной вверх. Когда дискета вставлена в дисковод, она должна находиться с левой стороны.
Стирает ли данные при форматировании дискеты?
Независимо от того, работаете ли вы в Windows 10, 8 или 7, вы можете отформатировать дискету с помощью встроенных инструментов форматирования или командной строки. Но помните, что форматирование сотрет всю сохраненную информацию, поэтому убедитесь, что у вас есть резервная копия или данные, сохраненные на безопасном диске.
Как скопировать дискету на дискету?
Вы можете копировать файлы с дискеты (или компакт-диска) на другую дискету.
- Вставьте дискету или компакт-диск, содержащий файлы, которые нужно скопировать.
- Выберите все файлы для копирования.
- Скопируйте выбранные файлы в папку в окне диспетчера файлов.
- Удалите эту дискету.
- Вставьте новую дискету.
- Скопируйте папку на только что вставленную дискету.
Вы все еще можете читать дискеты?
Можно ли еще покупать дискеты?
Они остро нуждаются в дисках, которые большинство производителей прекратили выпускать. Может показаться, что дискету лучше оставить в 1990-х годах. Напротив, это продукт, который жив и процветает в 21 веке.
Использование виртуальных машин стало привычным в наши дни. Возросшие мощности персональных компьютеров позволяют пользователям не только запускать одновременно множество различных приложений, но и поддерживать на одной физической машине несколько виртуальных машин в целях обучения, запуска программного обеспечения для различных платформ и создания виртуальных персональных сред. Платформы различных провайдеров технологий виртуализации предоставляют множество средств, повышающих эффективность работы с виртуальными машинами. При этом одним из самых больших достоинств виртуальных машин является их инкапсуляция на уровне файлов хостовой системы. Виртуальная машина, однажды установленная на одном из хостов, может быть перенесена на другую платформу, с другим количеством процессоров и другого производителя. Для этого, чаще всего, достаточно лишь скопировать папку с файлами виртуальной машины.
Самыми главными компонентами виртуальной машины являются файлы виртуальных дисков. В данный момент на рынке присутствует множество вендоров как платформ виртуализации, так и средств управления и обслуживания виртуальных машин. Однако не все поставщики систем виртуализации используют свои форматы виртуальных дисков. Например, не так давно появившаяся, но стремительно набирающая популярность платформа Virtual Iron, хотя и использует открытый гипервизор Xen для управления виртуальными машинами, но работает с виртуальными дисками формата VHD (Virtual Hard Drive) компании Microsoft. Компания VMware разработала свой формат виртуальных дисков — VMDK (Virtual Machine Disk), который, однако, может быть преобразован в другой формат утилитами сторонних производителей.
В данный момент возможности продуктов VMware Workstation позволяют осуществить импорт виртуальных машин и их дисков компании Microsoft, а также образов восстановления Symantec LiveState Recovery Files. Кроме того, VMware предлагает пользователям продукт VMware Converter, в возможности которого входит как конвертация виртуальных машин между различными платформами VMware и их версиями (в том числе VMware ESX Server), так и потоковая миграция с других платформ виртуализации. Сторонние производители также предлагают немало средств для V2V (Virtual-to-Virtual) миграции, например, продукт PowerConvert компании PlateSpin.
Общие сведения об использовании виртуальных и физических дисков виртуальными машинами
Одним из замечательных достоинств виртуальных машин является их простая переносимость на другое физическое оборудование путем обычного копирования папки с файлами виртуальной машины. Все настройки виртуальной машины хранятся в файлах с расширением .vmx в текстовом формате, а файлы виртуальных дисков (.vmdk) содержат в себе все необходимые данные виртуальной машины, либо ссылки на другие vmdk-файлы. Если вы используете виртуальную машину в хостовой системе Windows, вы можете скопировать папку с виртуальной машиной на Linux-хост и запустить ее там, на платформах VMware Workstation или VMware Server.
Диск виртуальной машины VMware Workstation и VMware Server ограничен 950-ю гигабайтами, и этого с лихвой хватит практически для любого варианта использования. Поскольку файлы дисков виртуальных машин являются достаточно большими, необходимо учитывать ограничения на максимальный размер файла в файловой системе хостовой ОС.
Основные типы дисков виртуальных машин VMware
По-умолчанию платформой виртуализации будет выбран адаптер, наиболее подходящий выбранной ранее гостевой системе. Для всех гостевых систем, за исключением Windows Vista, Windows Server 2003, Red Hat Enterprise Linux 3 и NetWare рекомендуется адаптер BusLogic. Для гостевой системы Windows Vista доступен только LSI Logic адаптер. Этот тип адаптера обладает более высоким быстродействием, нежели BusLogic, к тому же, он поддерживается платформой виртуализации VMware ESX Server, что следует учитывать, если вы планируете в дальнейшем миграцию виртуальных машин на эту платформу.
Выбор контроллера виртуальных дисков не зависит от того, какие диски используются на хостовой платформе. Файлы виртуальной машины могут находиться на любом носителе, включая флэш-карты или внешние USB-диски.
Самый простой вариант — создать новый виртуальный диск. Если вы хотите использовать уже сконфигурированный жесткий диск от другой виртуальной машины, выберите вторую опцию. После этого укажите путь к файлу с диском и нажмите «Finish». Работа с жестким диском напрямую рекомендуется только продвинутым пользователям, поскольку некоторые варианты использования могут привести к потере данных виртуальной машины. Об использовании физического диска напрямую будет рассказано позднее.
В VMware Workstation и VMware Server диск виртуальной машины не может быть более 950 ГБ. Величина, которую вы укажете в поле ввода для Disk Size, означает максимальный размер файла виртуального диска. Уделяйте особое внимание этому параметру, поскольку проблема расширения виртуального диска является одной из наиболее часто возникающих. Если вы планируете использовать растущие по мере наполнения диски (growable) указывайте достаточно большой размер (например, 100 ГБ). В то же время помните, что уменьшить размер виртуального диска значительно сложнее, чем увеличить.
Чекбокс «Allocate All Disk Space Now» позволяет создать preallocated или growable виртуальный диск. Если чекбокс отмечен, будет создан виртуальный диск типа preallocated, это означает, что файл виртуального диска сразу займет указанный размер, который не будет изменяться по мере работы с виртуальной машиной. Если чекбокс не отмечен, будет создан диск, растущий по мере наполнения (growable). Этот тип диска работает несколько медленнее, чем preallocated, поэтому их не рекомендуется использовать, если вы планируете устанавливать приложения, требовательные к производительности дисковых ресурсов (например, сервер баз данных).
Чекбокс «Split disk into 2 GB files» позволяет разделить виртуальный диск на несколько файлов, что, конечно, отрицательно скажется на быстродействии, но является единственным решением для файловых систем, не поддерживающих большие размеры файлов (например, FAT32). Не забывайте отметить его, чтобы не столкнуться с этой проблемой в старых файловых системах в самый неподходящий момент.
После того как вы нажмете «Finish», виртуальная машина с настроенным вами диском будет создана. Однако это еще не все типы виртуальных дисков в VMware Server и VMware Workstation. У виртуальной машины может быть несколько виртуальных дисков различного типа, каждый из которых может использоваться для разных случаев.
В группе «Capacity» представлена информация о текущем размере виртуального диска, его возможный максимальный размер и объем доступного места на логическом диске компьютера. На панели «Disk Information» указан тип виртуального диска: preallocated одним файлом.
В этом окне, поставив галку «Independent», вы можете определить тип диска как независимый. Это означает, что на добавленный вами диск никак не будет влиять создание снимков состояния виртуальной машины («снапшотов»). Параметр «Virtual Device Node» позволяет подключить диск к виртуальному слоту SCSI или IDE-контроллера.
При создании снапшота все содержимое обычных виртуальных дисков сохраняется в файлах дисков, а дальнейшие изменения данных записываются в отдельные файлы. При откате к сохраненному снапшоту состояние диска восстанавливается. Независимые диски удобны для случаев, когда не требуется работа с их различными состояниями. Например, вы можете создать отдельный диск для хранения дистрибутивов, которые будете пополнять по мере необходимости, и при работе с различными снапшотами виртуальной машины обращаться к ним.
Также в окне «Advanced» вы можете выбрать тип независимого диска «Persistent» или «Nonpersistent». Первый тип предполагает поведение виртуального диска как обычного устройства хранения — все изменения диска сохраняются по мере работы с ним. Второй тип дисков используется при тестировании программного обеспечения, когда необходимо создание временных дисков для хранения информации на время работы с виртуальной машиной. После ее выключения содержимое такого типа дисков сбрасывается к начальному состоянию. Временные данные при запущенной виртуальной машине хранятся в файлах с расширением *.REDO_xxx. При выключении машины эти файлы удаляются.
Нужно также отметить, что при запущенной виртуальной машине VMware Server или VMware Workstation создаются lock-файлы для каждого из используемых виртуальных дисков с расширением *.lck во избежание доступа к ним из внешних приложений, использования их другими виртуальными машинами и нарушения целостности данных.
Использование физических дисков напрямую
Выбор целевого физического диска для виртуальной машины Выбор разделов для размещения данных виртуальной машиныУкажите необходимые разделы и нажмите «Next», после чего укажите имя виртуального диска и нажмите «Finish». Одни из наиболее оправданных вариантов использования физического диска напрямую — случаи, когда требуется создание диска емкостью более 950 ГБ (до двух терабайт), что, однако, пока не актуально для пользователей настольных персональных компьютеров.
Сводная таблица соответствия расширений файлов типам дисков виртуальных машин
В приведенной далее таблице перечислены типы виртуальных дисков и соответствующие им расширения файлов в папке с виртуальной машиной.
Расширение файла диска | Описание |
*.vmdk | Описание параметров виртуального диска (со ссылкой на файл с данными диска) или виртуальный диск типа growable одним файлом. |
*0000000*.vmdk | Этот файл содержит изменения, произошедшие с момента создания снапшота |
*s00*.vmdk | Это расширение используется для файлов данных растущих разделённых дисков (growable split disks) |
*0000000*-s00*.vmdk | Этот файл содержит изменения, произошедшие с момента создания снапшота X для растущих разделённых дисков (growable split disks) |
*f00*.vmdk | Это расширение используется для файлов данных не растущих разделённых дисков (preallocated split disks) |
*0000000*-f00*.vmdk | Этот файл содержит изменения, произошедшие с момента создания снапшота X для не растущих разделённых дисков (preallocated split disks) |
*flat.vmdk | Это расширение используется для файлов данных монолитных (не растущих) неразделённых дисков (preallocated monolithic disks) |
*0000000*-flat.vmdk | Этот файл содержит изменения, произошедшие с момента создания снапшота X для монолитных (не растущих) неразделённых дисков (preallocated monolithic disks) |
*.REDO_xxx | Этот файл содержит изменения диска в режиме незавимый-несохраняющийся (independent-nonpersistent disk) |
*.lck | Используется для блокировки файлов дисков виртуальной машины |
Дефрагментация виртуальных дисков
- дефрагментация диска в гостевой системе
- дефрагментация диска средствами VMware Server или VMware Workstation
- дефрагментация дисков хостовой системы
Для первого и третьего пункта вы можете использовать встроенный дефрагментатор Windows или утилиты сторонних производителей. Для дефрагментации диска средствами VMware зайдите в меню «VM», далее «Settings», выберите диск на вкладке «Hardware» и выберите «Defragment» в VMware Workstation 5.5 и VMware Server 1.0 (в VMware Workstation 6 эта опция доступна по кнопке «Utilities»). Далее будет также показана возможность дефрагментации виртуальных дисков средствами утилиты vmware-vdiskmanager.
Использование утилиты VMware DiskMount
Компания VMware предлагает удобное средство использования виртуальных дисков в хостовой операционной системе как обычных логических томов. Утилита DiskMount позволяет монтировать диски виртуальных машин в хостовую операционную систему для удобной работы с содержимым диска. Диски виртуальных машин могут быть смонтированы только в операционных системах Windows 2000/XP/2003/Vista. Чтобы смонтировать виртуальный диск в хостовую систему, необходимо, чтобы виртуальная машина была выключена (монтировать диск виртуальной машины, находящейся в статусе «suspended», также нельзя) и хотя бы один раздел виртуального диска был отформатирован в файловой системе FAT или NTFS.
vmware-mount [параметры] [буква диска:] [\путьквиртуальному диску]
- /v:N Монтирует заданный том виртуального диска (по-умолчанию N=1)
- /p Выводит доступные разделы (тома) на виртуальном диске
- /d Размонтирование виртуального диска из хостовой системы
- /f Принудительное размонтирование виртуального диска из хостовой системы в случае технической проблемы
- /? Выводит информацию о доступных параметрах
Пример использования Diskmount:
vmware-mount h: “C:My Virtual Machinesw2003std.vmdk”
Использование утилиты vmware-vdiskmanager
Компания VMware вместе с продуктами VMware Server и VMware Workstation поставляет также консольную утилиту для работы с виртуальными дисками vmware-vdiskmanager. Эта утилита является мощным средством преобразования виртуальных дисков, которое органично дополняет утилиту VMware Diskmount. Найти утилиту vdiskmanager можно в папке, куда установлены продукты VMware Server или VMware Workstation.
Применять vmware-vdiskmanager могут не только конечные пользователи, преобразующие виртуальные диски к требуемому формату, но и сторонние разработчики, пишущие различные утилиты для работы с виртуальными машинами. Утилита vdiskmanager используется в соответствии со следующим синтаксисом:
vmware-vdiskmanager.exe | :
Описание параметров утилиты vdiskmanager:
Параметр | Действие |
Основные параметры | |
-c | Создание диска (необходимо указать дополнительные параметры) |
-d | Дефрагментация виртуального диска |
-k | Сжатие виртуального диска (уменьшение объема свободного места) |
-n | Переименование диска (в параметре необходимо указать целевой диск) |
-p | Подготовка смонтированного диска с указанным параметром к сжатию |
-q | Отключение логов |
-r | Конвертация диска (необходимо указать тип целевого диска) |
-x | Расширение диска до требуемой емкости |
Дополнительные опции создания виртуальных дисков и их конвертации | |
-a | Используется только с ключом -c. Указывает тип адаптера (ide, buslogic, lsilogic) |
-s | Указывает емкость виртуального диска. Емкость может быть определена в секторах, килобайтах, мегабайтах, гигабайтах. Диапазоны допустимых значений: Адаптер ide : [100.0Mb, 950.0Gb] Адаптер scsi: [100.0Mb, 950.0Gb] |
-t | Указывает тип диска (от 0 до 3). Типы дисков: 0: Растущий по мере наполнения (growable), один файл. 1: Растущий по мере наполнения, разделенный на файлы по 2 ГБ. 2: Монолитный диск (preallocated), один файл. 3: Монолитный диск (preallocated), разделенный на файлы по 2 ГБ. |
- vmware-vdiskmanager.exe -c -s 850Mb -a ide -t 0 myIdeDisk.vmdk
Создание виртуального диска (-c) емкостью 850 МБ (-s 850Mb), с адаптером IDE (-a ide), типом growable одним файлом (-t 0) и именем myIdeDisk.vmdk. - vmware-vdiskmanager.exe -d myDisk.vmdk
Дефрагментация виртуального диска myDisk.vmdk. - vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
Конвертация диска (-r) с именем sourceDisk.vmdk в тип growable одним файлом (-t 0) с именем destinationDisk.vmdk - vmware-vdiskmanager.exe -x 36Gb myDisk.vmdk
Расширение диска myDisk.vmdk до емкости 36 ГБ. - vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
Переименование диска с именем sourceName.vmdk в destinationName.vmdk - vmware-vdiskmanager.exe -k myDisk.vmdk
Сжатие виртуального диска с именем myDisk.vmdk - vmware-vdiskmanager.exe -p m:
Подготовка диска M хостовой системы к сжатию (виртуальный диск должен быть сначала смонтирован в хостовую систему утилитой VMware Diskmount).
Самым частым вариантом использования утилиты vdiskmanager является расширение виртуальных дисков до требуемого размера. Однако задача расширения виртуального диска является не такой тривиальной, какой кажется на первый взгляд. Если необходимо расширить независимый виртуальный диск, то его расширение сводится к двум операциям: использованию vmware-vdiskmanager для расширения диска и расширению раздела на неразмеченную область в гостевой системе. Однако для дисков, участвующих в создании мгновенных снимках системы («снапшотов»), проблема дополняется и устранением конфликтов между снапшотами.
Рассмотрим пример расширения независимого диска. Чтобы расширить его до 10 ГБ используйте vmware-vdiskmanager следующим образом:
vmware-vdiskmanager.exe -x 10Gb .vmdk
Выберите расширенный недавно диск (E) и введите команду extend, чтобы расширить раздел на всё доступное место на диске: DISKPART> select volume=2 Volume 2 is the selected volume. DISKPART> extend DiskPart successfully extended the volume.
Стоит отметить, что эти действия не применимы к динамическим дискам Windows, поскольку они не могут быть расширены командой extend.
Заключение
В отношении возможностей работы с виртуальными дисками платформы VMware Workstation и VMware Server являются самыми продвинутыми из присутствующих в данный момент на рынке. Множество типов, режимы SCSI и IDE эмуляции и большой набор средств для обслуживания и конвертации виртуальных дисков, позволяют весьма гибко настраивать параметры виртуальных машин и управлять ими. Встроенные возможности импорта виртуальных дисков в формате VHD компании Microsoft позволяют просто осуществить миграцию с платформ Virtual PC и Virtual Server, без применения программного обеспечения других производителей. Консольное приложение vmware-vdiskmanager открывает большие возможности не только для обычных пользователей, но и для разработчиков ПО под платформы виртуализации. Безусловно, компания VMware продолжит совершенствование своих продуктов, в том числе и в отношении виртуальных дисков. Будем надеяться, что планируемая к выходу осенью бесплатная платформа VMware Server 2.0 (которую обещают представить на конференции VMworld 2007 в сентябре), будет обладать еще большим набором возможностей по работе с виртуальными дисками и их обслуживанию.
Периодически у меня возникает потребность в подсовывании драйверов виртуальной машине для установки Windows XP на SCSI диск. Обычно, эта проблема решается созданием пустого образа дискеты (*.flp) силами самого ESX, и копированием через виртуальную машину на дискету необходимых файлов. Однако, недавно я нашел простую утилиту Build Floppy Image по созданию образов дискет.
Работать с программой просто - запустите исполняемый файл с параметрами:
bfi.exe -f= <имя_образа> <путь>
, где <имя_образа> - имя создаваемого образа дискеты, например floppyimage.flp
<путь> - директория, содержащая файлы, которые следует добавить в образ.
Для создания установочных образов ОС Windows XP/Windows Server 2003 с интегрированными пакетами обновлений, драйверами и заплатками, я использую CDImage (GUI).
Среди коммерческих аналогов я бы выделил WinImage. Программа прекрасно справляется со всеми вышеописанными задачами, кроме того, с ее помощью можно делать загрузочные флешки с ESXi.
Для тех, кому нравится VMware Player, и кому требуется создавать .vmdk файлы без помощи VMware Server/Workstation/ESX, пригодится qemu-img из состава qemu. Синтаксис команды:
qemu-img.exe create -f vmdk <имя_образа> <размер>
, где <имя_образа> - имя создаваемого образа виртуального диска
<размер> - размер создаваемого диска (по-умолчанию в Мегабайтах; можно принудительно указать ключ M - для указания размеров в Мегабайтах, G - в Гигабайтах).
UPD: VMware Player версии 3.0 и старше умеет самостоятельно создавать виртуальные машины и диски, поэтому утилита уже не так актуальна.
Наконец, если вам потребуется смонтировать .vmdk, чтобы переписать файлы с виртуального диска, используйте VMware Workstation Disk Mount Utility:
vmware-mount <буква_диска> : <файл_образа>
<буква_диска> - незанятая буква, которая будет присвоена примонтированному диску
<файл_образа> - путь до файла-образа.
Вот и все о чем я хотел написать сегодня, надеюсь, что эта информация окажется для вас полезной.
Образ дискеты это файл, в котором хранится полная копия дискеты, включающая информацию о файловой системе, файлах и каталогах, загрузочном секторе. Распространенными форматами считаются файлы с расширениями ima, img, imz (imz - сжатый образ дискеты)
Загрузочные образы разных версий DOS и Windows
Некоторые загрузочные дискеты диагностических программ
Memtest - программа для диагностирования оперативной памяти.
Astra - анализ конфигурации компьютера.
Victoria, MHDD - тестирование PATA и SATA жестких дисков.
Video Memory stress Test - тестирование памяти видеокарты.
Partition Logic - разбивка жесткого диска, работа с разделами.
Offline NT Password Recovery - возможность сбросить забытый пароль в NT-системах.
WinImage
Самой известной программой для работы с образами дискет является WinImage. Очень мощный продукт, позволяющий делать с образами дискет все что угодно:
снимать образы с дискет, применять образы к дискетам, просматривать содержимое образов, стирать и записывать в образ файлы, конвертировать образы из одного размера в другой (1.44->2.88 например) и многое другое. Правда, программа платная и оценочный период у нее всего 30 дней.
Teledisk
Одна из самых популярных программ для создания образов дискет времен DOS-эры. Последняя версия (предположительно) - 2.18. Использует проприетарный формат TD0. Но, в отличиe от WinImage и других современных программ, позволяет работать с любыми видами дискет, в том числе, с защитой от копирования в виде информации в скрытых секторах.
ImageDisk
Программа Дейва Данфилда по работе с образами, начала разрабатываться уже в 2000-ых, но тем не менее работает и под MS-DOS, и под Windows (в том числе - современными). Содержит открытые исходные коды и всеобъемлющую информацию по дисковым образам/дисководам/дискетам в виде текстового файла. Так же, как и Teledisk, позволяет работать в сложных случаях, с нестандартными дискетами. Формат файла - IMD.
RawWrite for Windows
RawWrite for Windows - очень простая утилита для снятия образов дискет и записи образов на носители. Бесплатна.
Virtual Floppy Drive
Virtual Floppy Drive - Виртуальный дисковод. Позволяет эмулировать любой дисковод с любой дискетой от 5.25 160Kb до 3.5 2.88Mb. После установки работать с образом дискеты становится так же просто, как с дискетой обычной. Скажем, открыть образ загрузочной дискеты DOS, записать на нее нужные файлы, отредактировать config.cfg и autoexec.bat, сохранить образ дискеты в новый файл производятся элементарно и не требуют чтения мануалов. Программа бесплатна.
MKBT и BFI
MKBT (Make bootable) и BFI (Build Floppy Image) - две консольные утилиты. MKBT позволяет менять (записывать, стирать, копировать) boot-сектор дискеты\образа дискеты, а BFI позволяет создать образ дискеты с нуля из файлов, которые хранятся на жестком диске.
KryoFlux и другие
Особое место в ряду программ занимает ПО, входящее в комплект специальных плат расширения, предназначенных для снятия и архивирования данных с гибких дисков - причём вне зависимости от платформ и форматов (поскольку соответствующая плата, как правило, заменяет собой контроллер НГМД). В 1980-е и 1990-е годы наиболее известной среди таких устройств была карта Copy II PC Option Board (её программная часть называлась TransCopy и создавала образы в формате и с расширением *.TC); в настоящее время более распространёнными среди энтузиастов являются модели KryoFlux и SuperCard Pro. Строго говоря, снимают они даже не образы, а "потоковые данные" с дорожек - и для использования в эмуляторах должны быть сконвертированы в более удобочитаемые форматы: TC, TD0, IMD, IMA и др. Зато благодаря им данные с дискет могут быть сняты в полном и аутентичном виде, включая скрытые или заведомо "плохие" сектора, выступающие элементом защиты от незаконного копирования.
Любая виртуальная машина (VirtualPC, VirtualBox, VMWare и др.) имеет виртуальный дисковод и поддержку загрузки образов в них. Если же вам посчастливилось скачать игру в виде образа дискеты, в DOSBox образ дискеты можно подцепить при помощи команды IMGMOUNT.
Правда, смонтировать таким нехитрым способом получится исключительно образы в наиболее простом и распространённом формате IMA/IMG, не способном адекватно имитировать "защищённые" диски. В случае с последними некоторые - не самые, впрочем, изощрённые - виды key-disk защит можно обойти при помощи образов в форматах TC, TD0 и IMD. Для их чтения рекомендуется использовать эмулятор PCE. В последних его версиях монтирование образа гибкого диска осуществляется командой:
pcemsg insert myimage.img
где "0" - номер вашего виртуального привода, а "myimage.img" - наименование нужного образа.
Привет, Хабр! Меня зовут Роман Петров, занимаюсь разработкой продуктов для управления учетными данными в SberCloud. В рамках одного проекта мне потребовалось автоматизировать сборку виртуальных машин под VMware Cloud Director.
Под катом — кратко о том, как я это сделал.
Прежде чем мы начнем
Я решил оставить Packer, но заменить Fusion на VirtualBox. Выбор в пользу open source решения был сделан по причине того, что оно распространяется на бесплатной основе, поддерживает большое количество хостовых ОС и экспорт образов в форматах OVF и OVA. Кроме того, VirtualBox предоставляет репозитории для GNU/Linux, позволяющие автоматически обновлять пакеты операционных систем. К слову, аналогичный репозиторий предлагают и разработчики Packer.
Начало работы
В качестве хоста для развертки окружения, в котором будет запускаться CI-пайплайн, выбрал виртуальную машину с Ubuntu Server 20.04. На неё установил утилиты Packer и VirtualBox. Не буду подробно рассказывать, как это сделать, так как все необходимые инструкции вы можете найти в официальной документации этих инструментов [раз, два].
Следующим шагом стала подготовка шаблона для Packer. Packer включает в себя сборщики для разных окружений, в том числе для VirtualBox — virtualbox-iso. Написал шаблон, запустил сборку образа ВМ. Осталось загрузить этот образ в библиотеку Cloud Director. Обнаружил, что Cloud Director отказывается его импортировать. Это основная трудность, которая заняла много времени.
В процессе поиска решения проблемы я наткнулся на статью иностранного коллеги. Он заметил, что из-за несовместимости в системных типах и поддержке аппаратного обеспечения (разная трактовка открытого стандарта), экспорт такого образа в VMware Cloud Director требует дополнительной настройки — какой именно, покажу далее.
Настраиваем шаблон Packer
В шаблон Packer внесем следующие изменения:
Настроим экспорт образа в формате OVF. Для этого в конфигурационном файле атрибуту format присвоим значение ovf. Эта операция позволит нам получить на выходе два отдельных файла: XML-документ с описанием ВМ и образ жесткого диска. Так, нам будет проще настраивать нашу систему в дальнейшем. Отмечу, что для своего кейса я не создаю дополнительные диски и не включаю iso-образы в состав виртуальной машины. Расширить дисковое пространство или добавить дополнительные накопители можно непосредственно при развертке виртуальной машины.
Укажем SCSI в качестве контроллера жестких дисков. Соответствующее значение (scsi) необходимо прописать в атрибуте hard_drive_interface. В VirtualBox будет эмулироваться контроллер LsiLogic, что является плюсом, поскольку контроллер этого типа поддерживается в Cloud Director.
В качестве прошивки выберем BIOS, а в качестве видеоконтроллера — vmsvga (VMware SVGA). Атрибуты, которые нам нужны, — это firmware и gfx_controller.
Финальный вариант шаблона для Packer — main.pkr.hcl — выглядит так:
Более подробно о том, для чего нужны остальные атрибуты, вы можете узнать в документации на сборщик virtualbox-iso. Здесь я дополнительно хочу выделить лишь один из них — headless, отвечающий за сборку в фоновом режиме. Этот флажок стоит установить в состояние false, чтобы включить графический интерфейс. Это упростит отладку.
Теперь, если мы запустим Packer с нашими настройками, он сгенерирует три файла:
Образ жесткого диска: ubuntu-18.04-amd64-disk001.vmdk;
XML-файл с описанием виртуальной машины: ubuntu-18.04-amd64.ovf;
JSON-файл со списком созданных артефактов: packer-manifest.json.
Последний файл записан благодаря блоку:
Файл packer-manifest.json будет иметь следующее содержимое:
Этот файл поможет нам найти результат сборки образа ВМ (ubuntu-18.04-amd64-disk001.vmdk и ubuntu-18.04-amd64.ovf).
Редактируем .ovf
На предыдущем этапе мы настроили экспорт образа ВМ в Open Virtualization Format. Следующим шагом будет редактировать файл *.ovf.
Я написал специальный скрипт на Python 3.8 (он включен в дистрибутив Ubuntu Server 20.04) и «распарсил» packer-manifest.json, чтобы извлечь путь до файла .ovf. Вот часть, решающая эту задачу:
Переменная ovf_in хранит путь до файла .ovf, а ovf_out — путь до нового файла .ovf, в котором мы сохраним изменения. Чтобы эти изменения внести, использую модуль xml.etree.ElementTree.
При редактировании XML очень помогла утилита XMLStarlet. Она покажет, какие элементы дерева входят в состав файла .ovf.
Вывод утилиты XMLStarlet
Вывод утилиты XMLStarlet представлен на языке XPath. Как вы можете заметить, пространство имен определено не для каждого элемента — в их названии отсутствует часть перед символом двоеточия. Важно помнить, что при работе с XML в Python это приведет к неоднозначной трактовке атрибутов.
Удаляем элементы, содержащие упоминания сети и сетевых адаптеров, при разворачивании виртуальной машины из шаблона всегда можно указать новые адаптеры:
Из элементов ниже я удалил только те, в значении которых содержат слово Ethernet:
Исключаем элементы с упоминанием IDE-контроллеров. IDE нам не нужно, так как мы будем работать со SCSI. В первом случае удаляем значения, где упоминается ideController, а во втором — только строки с атрибутом name="IDE Controller".
Удаляем аудиоконтроллер. Он нам также не понадобится, так как практически никогда не используется на серверах.
Для оперативной памяти заменяем единицы измерения. Меняем их с MegaBytes на byte*2^20. Этот нюанс связан с тем, что разные производители программного обеспечения порой трактуют Open Virtualization Format по-разному:
Меняем тип системы. Вместо virtualbox-2.2 прописываем vmx-16, то есть меняем систему виртуализации с VirtualBox на VMware.
Здесь дополнительно отмечу, что для работы с модулем xml.etree.ElementTree необходимо зарегистрировать используемые пространства имен функцией xml.etree.ElementTree.register_namespace. Их можно найти в исходном файле .ova по значению атрибутов xmlns.
По итогу мы получаем финальный скрипт ovf-patch.py:
После запуска скрипта в выходном каталоге появятся файлы:
Образ жесткого диска: ubuntu-18.04-amd64-disk001.vmdk;
XML-файл с описанием ВМ: ubuntu-18.04-amd64.ovf;
XML-файл с описанием ВМ, готовый к импорту в Cloud Director: ubuntu-18.04-amd64-vmware.ovf.
В качестве примера привожу исходный файл ubuntu-18.04-amd64.ovf:
И файл с внесенными изменениями ubuntu-18.04-amd64-vmware.ovf:
Импортируем образ
Для импорта образа ВМ в библиотеку можно воспользоваться инструментами OVF Tool или vcd-cli. Это — инструменты, разработанные VMware. Они хорошо документированы и работают стабильно. В дальнейшем из библиотеки Cloud Director можно разворачивать ВМ из созданного шаблона вручную или с инструментами автоматизации (например, Terraform), добавив по требованию сетевые контроллеры, дополнительные диски и так далее.
Таким образом, мне удалось подготовить образ VirtualBox к загрузке в VMware Cloud Director. Описал шаги для реализации полноценного CI-пайплайна.
Читайте также: