ROS ft2vd

Материал из Русский WINE
Перейти к: навигация, поиск

Перенос файлов из основной ОС на виртуальный жёсткий диск

Многие пользователи отдают предпочтение тестированию ReactOS в эмуляторах и программах виртуализации, таких например, как QEMU или VMware, однако для тестирования программного обеспечения им приходится копировать необходимые файлы в образ диска .iso, добавляя их в нужные директории, что отнимает лишнее время и иногда представляет собой не самую тривиальную задачу. Одним из способов облегчения работы в этом случае может стать монтирование виртуальных жёстких дисков в основную операционную систему пользователя (в качестве альтернативы можно предложить организацию FTP- или HTTP-сервера на другой машине с последующим скачиванием файлов с неё в ReactOS при помощи ftp-клиента или iexplore).

В Windows

Драйвер виртуального диска ImDisk

Вебсайт

ImDisk представляет собой драйвер виртуального диска для Windows NT/2000/XP/2003/Vista/2008. Он может использовать один или несколько файлов образа диска для создания виртуального жёсткого диска, дискеты или привода CD/DVD. Установочный пакет приложения устанавливает консольную программу для управления дисками с именем imdisk.exe, а также апплет Панели управления. После завершения установки вы можете запустить imdisk без параметров командной строки, и на экран будет выведена справочная информация по синтаксису её параметров, либо сделайте двойной щелчок по значку ImDisk в Панели управления. Кроме того, в меню Проводника Windows будет добавлен допонительный элемент, позволяющий монтировать файлы образа прямо из контекстного меню, вызываемого нажатием на правую кнопку мыши. Также, синтаксис командной строки imdisk.exe вполне может показаться знакомым пользователям mdconfig в FreeBSD. Удалить из системы драйвер, службу и управляющую программу можно воспользовавшись апплетом Установка/удаление программ в Панели управления. При установке или удалении пакета перезагрузка компьютера не требуется.

Установочный пакет также содержит в себе вспомогательную службу пользовательского режима, предназначенную для активации режима, в котором драйвер виртуального диска может перенаправлять запросы ввода/вывода на другие компьютеры в сети. При этом вы можете загрузить машину с разделами NTFS с Live-CD на основе *nix и использовать утилиту devio, что при использовании ImDisk на другом компьютере под управлением Windows, находящимся в локальной сети, позволит смонтировать раздел NTFS на машине, загруженной с Live-CD на основе *nix. Этот способ позволяет не только восстановить данные, но даже запустить chkdsk для диска на машине, которая по какой-либо причине не может загрузить Windows.

Простой пример монтирования:

 imdisk -a -t vm -m #: -f C:\Users\%USERNAME%\.VirtualBox\HardDisks\Reactos.vdi

Утилита VMware Disk Mount

  • Утилита VMware Disk Mount проще в использовании, однако она позволяет работать лишь с форматом .vmdk (официальный формат файла образа виртуального диска VMware).
  • Загрузите и установите(*) утилиту с веб-сайта VMware. Она представляет собой часть пакета Virtual Disk Development Kit (VDDK).
  • Установка: Чтобы получить утилиту VMware Disk Mount, перейдите на сайт загрузки VMware Disk Mount и примите лицензионное соглашение с пользователем. После того, как вы нажмёте “Accept”, вам будет предложено сохранить файл установки. Запустите этот файл и следуйте инструкциям на экране.
  • Запустите интерпретатор командной строки.
  • Перейдите в директорию, в которую вы установили утилиту (например C:\Program Files\VMware\VMware DiskMount Utility\ или "C:\Program Files (x86)\VMware\VMware Virtual Disk Development Kit\bin").

Монтирование виртуального диска

Выполните следующую команду

 vmware-mount z: C:\ReactOS\ReactOS.vmdk

где

  • vmware-mount - Запуск утилиты монтирования.
  • z: - Буква диска для монтируемого диска (можете использовать любую букву).
  • ...(Путь) - Путь к файлу образа виртуального диска.

ПРИМЕЧАНИЕ: Указанный выше путь приведён для примера. Используйте путь, по которому вы сохранили свои файлы .vmdk

Размонтирование виртуального диска

Для размонтирования виртуального диска выполните следующую команду

 vmware-mount z: /d

где

  • vmware-mount - Запуск утилиты монтирования.
  • z: - Буква диска для размонтируемого диска
  • /d - Параметр, указывающий утилите на необходимость размонтирования смонтированного диска.

Дополнительную информацию о других параметрах запуска утилиты вы можете найти в документации к утилите.

VDK

VDK (драйвер виртуального диска) может монтировать образы дисков в форматах vmdk и raw, поддерживаемые QEMU и VMware.

Скачивание драйвера (VDK)

Вы можете загрузить VDK отсюда (версию для x64 отсюда). По состоянию на момент написания этого руководства самой свежей версией является версия 3.2. Загрузите файл .zip и извлеките его содержимое при помощи архиватора.

Установка драйвера

  • Откройте интерпретатор командной строки и перейдите в папку, в которую вы извлекли VDK (например C:\VDK).
  • Запустите на выполнение следующую команду
 vdk install /auto

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

Дравер виртуального диска (vdk.sys) будет скопирован в %SYSTEMROOT%\system32, и вам могут потребоваться права администратора для его установки.

Запуск драйвера

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

 vdk start

Если драйвер ещё не установлен, то будет произведена попытка его установки с параметрами по умолчанию. Рекомендуется вначале установить его командой vdk install /auto, чтобы вам не приходилось запускать его вручную каждый раз после перезапуска системы.

Монтирование виртуального диска

СИНТАКСИС:

VDK.EXE OPEN disk# image [/RW | /WB | /UNDO] [/P:part#] [/L:drive]

ПАРАМЕТРЫ:

disk#     Задаёт номер виртуального диска. Это первый обязательный параметр. '*' означает первый доступный диск, а если все уже существующие диски заняты, то будет создан новый виртуальный диск.
image     Задаёт путь к файлу образа виртуального диска. Это второй обязательный параметр.
/RW       Открытие образа для чтения/записи.
/WB       Открытие образа для блочной записи.
/UNDO     Создание журнала отмены и открытие для чтения/записи.
/P:part#  Определяет номер раздела, которому будет назначена буква диска. Буквы дисков впоследствии можно назначать и удалять при помощи команд LINK/ULINK. По умолчанию буквы дисков назначаются всем разделам, пригодным к монтированию.
/L:drive  Определяет буквы дисков, которые будут назначаться разделам. По умолчанию монтируемому разделу будет назначена первая доступная буква.

Команды /RW, /WB и /UNDO являются взаимоисключающими и могут быть использованы лишь поодиночке. Если ни один параметр не задан, то образ открывается в режиме "Только для чтения".

  • Пример использования VDK:

В директории, где находится VDK, выполните следующую команду:

 vdk open * C:\ReactOS\ReactOS.vmdk /rw

Размонтирование виртуального диска

Как только вы закончили работу с виртуальным диском, его нужно отмонтировать. Это можно сделать выполнив следующую команду:

 vdk close * 

При этом диск будет заблокирован, и вы сможете использовать его в VMware или QEMU.

Остановка драйвера

Если драйвер более вам не нужен, его можно остановить

 vdk stop

Дополнительную информацию о драйвере и его параметрах вы можете прочитать в файле Readme.txt в zip-файле с драйвером.

Linux

Монтирование образа диска VirtualBox (.vdi)

  • Способ 1, Используя qemu-nbd из пакета qemu-kvm + nbd:

Как смонтировать образ в формате VirtualBox VDI

Внимание: Для монтирования разделов диска требуется qemu версии >= 0.14, а первым разделом reactos будет /dev/nbd0p1 в формате FAT.

modprobe nbd
#монтирование устройства целиком
qemu-nbd -c /dev/nbd0 ./ReactOS.vdi 
##хотя и возможно сделать: fdisk /dev/nbd0
#однако используем лишь первый раздел:
mount -t vfat /dev/nbd0p1 /mnt/ros

#размонтирование устройств:
umount /mnt/ros
qemu-nbd -d /dev/nbd0
  • Способ 2, Используя vdfuse:

Как смонтировать образ диска в формате VirtualBox (vdi) в Ubuntu 12.10/12.04 Основан на использовании пакета virtualbox-fuse

Или же воспользуйтесь пакетами libguestfs / libguestfs-mount в дистрибутивах Linux, использующих пакеты в формате rpm:

Монтирование образов виртуальных машин Virtual Box (англ.)

  • Способ 3, хитрое использование формата vdi, минимальное требование: монтирование с использованием loop device:

Как смонтировать образ в формате VirtualBox VDI в Linux

OFFSET1=`VBoxManage internalcommands dumphdinfo ./ReactOS.vdi |grep "offData="|sed "s#.*offData=\([0-9]\+\)#\1#"`
OFFSET=$((32256+$OFFSET1))
mount ./ReactOS.vdi /mnt/ros -o loop,offset=$OFFSET

Число 32256 здесь представляет собой произведение 63*512, т.е. смещение начала первого раздела на жёстком диске (по историческим причинам смещение на 63 сектора = смещению раздела от начала соответствующей MBR или, в случае расширенного раздела, от начала VBR). При отладке FreeLoader может возникнуть необходимость внести изменения в загрузочную запись, учтите только, что она доступна по смещению 0, а не по 63*512.

Монтирование образа QEMU

Большинство дистрибутивов Linux позволяют монтировать образы виртуальных дисков при помощи команды mount. В этом примере будет использована Ubuntu, однако все приведённые действия справедливы и для большинства других дистрибутивов.

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

 sudo mkdir /media/ReactOS

Затем, убедитесь в том, что файл вашего образа имеет формат RAW. Я создал образ в QEMU Launcher, там можно выбрать нужный формат. Если ваш образ создан в формате QCOW, вы можете воспользоваться следующей командой для конвертирования его в RAW:

 qemu-img convert <image-file> -O raw <image-file.raw>

Затем вы можете смонтировать образ командой

 sudo mount -o loop,offset=32256 <image-file> /media/ReactOS -t vfat

После того, как вы закончили использовать файл образа, можете с лёгкостью его отмонтировать

 sudo umount /media/ReactOS

Дополнительная информация

ReactOS
Search.png
Доклады
О ReactOSARWINSSЧеЗа
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидеоReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работRoadmap ядра by VgalРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOSКоординаторы"Пасхальные яйца"Монетизация
Другое Типы ядерFreeWin95
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUHyper-VНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Сеть Общие папкиSambaNFS
Игры Установка DirectPlay
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук и сеть в VirtualBoxСъемка и публикация видеоIRC-каналСторонние компонентыFAQReactOS как рабочая станцияReactOS и UEFI
Обзоры ОболочкаNTVDMWOWCommunity EditionИстория сайтаReactOS ServerКриптографияПО времен XP