Windows XP не запускается из-за поврежденного файла hal.dll, что делать?

Содержание
  1. Устранение проблемы, препятствующей запуску ОС
  2. Как восстановить потерянный файл
  3. Ошибки hal. dll
  4. Hal dll отсутствует или поврежден Windows XP
  5. Установка
  6. Установка основных пакетов
  7. Подписывание модулей
  8. Загрузка модулей ядра для VirtualBox
  9. Доступ к USB-устройствам хоста из гостевой ОС
  10. Диск с гостевыми дополнениями
  11. Расширения
  12. Интерфейсы
  13. Пошаговая установка Arch Linux как гостевой ОС
  14. Установка Arch Linux в виртуальную машину
  15. Установка в режиме EFI
  16. Установка гостевых дополнений
  17. Загрузка модулей ядра VirtualBox
  18. Запуск гостевых сервисов VirtualBox
  19. Расшаривание директорий
  20. Ручное монтирование
  21. Автомонтирование
  22. Монтирование при загрузке
  23. Импорт/экспорт виртуальных машин VirtualBox в/из других гипервизоров
  24. Удаление дополнений гостевой ОС
  25. Использование правильного формата виртуального диска
  26. Автоматические инструменты
  27. Ручное преобразование
  28. Создание конфигурации VM для гипервизора
  29. Управление виртуальными дисками
  30. Форматы, поддерживаемые VirtualBox
  31. Преобразование виртуальных дисков разных форматов
  32. VMDK в VDI и VDI в VMDK
  33. VHD в VDI и VDI в VDH
  34. QCOW2 в VDI и VDI в QCOW2
  35. Монтирование виртуальных дисков
  36. VDI
  37. Сжатие виртуальных дисков
  38. Увеличение размера виртуальных дисков
  39. Замена виртуального диска из файла. vbox вручную
  40. Клонирование виртуального диска и назначение ему нового UUID

Устранение проблемы, препятствующей запуску ОС

Безусловно, понятно, что ни Windows 7, ни Windows XP не запустится, если хотя бы один системный файл будет отсутствовать. Совершенно не важно, какая причина спровоцировала этот системный сбой. Важнее в этом случае разобраться, как восстановить работу операционной системы самостоятельно, не прибегая к помощи специалистов. Отсутствующий файл hal важен для операционной системы, поскольку он представляет собой плотную связь между так называемым компьютерным «железом» и установленным программным обеспечением.

Ошибка при загрузке Windows

Файл dll представляет собой динамически подключенную библиотеку. Каждое приложение во время запуска обязательно обращается к этой библиотеке. Если же программа будет написана таким образом, что динамическая библиотека будет за пределами её функционирования, невозможно гарантировать быстродействие запуска программного приложения. Учитывая это обстоятельство, большинство программистов пишут программы не только с учётом, а с непосредственным применением файла dll.

Как восстановить потерянный файл

Итак, если вам пришлось увидеть синий экран, встретьте такой «сюрприз» не просто спокойно, а уже информационно подготовленным. Поверьте, устранить ошибку hal dll под силу всем тем, кто изучит внимательно рекомендации опытных пользователей. Нам потребуется поработать с консолью восстановления. Чтобы запустить такой процесс, побеспокойтесь о том, чтобы в вашем распоряжении оказался загрузочный диск. Также очень важно, чтобы после перезагрузки компьютер начал запускаться именно с привода. Для этого предварительно зайдите в БИОС и выставьте нужные параметры загрузки.

Установка порядка запуска дисков в BIOS

После того как вы увидите приветствие загрузочного диска, ознакомьтесь с его предложениями. Это позволит вам быстро обнаружить строку, в которой предлагается не устанавливать в очередной раз операционную систему, а воспользоваться консолью восстановления. Чтобы восстановить испорченный файл hal dll, нажмите просто кнопку «R».

В принципе можно было бы загрузить предварительно файл из интернета, а затем его заменить в системной папке. Однако так легко рассуждать только теоретически, а практически осуществить такую замену сложно, поскольку операционная система не загружается, проникнуть в системные папки невозможно. По этой причине всё-таки рациональнее осуществлять исправление при помощи диска.

После запуска консоли восстановления, откройте каталог установочного диска. Для этого в консоли пропишите: D:\ I386>dir. Если ваш привод воспроизводится под другой буквой, вместо буквы «D» пропишите нужную.

Теперь важно вам внимательно просмотреть весь список и найти hal dll. Сразу предостерегаем вас от излишней паники, которая возникает у особо бдительных исполнителей. Файл dll в этом списке будет прописан без одной буквы «l». Это нормально, не нужно волноваться. Просто файл находится в архиве.

Соответственно, вы должны понять, что для последующих действий нам придётся его распаковать. В этом нам поможет команда «expand». Команда будет выполнена эффективно, если вы правильно её пропишите. Рекомендуем вам прописать её, а затем проверить: expand d:\ i386\hal.dl_ c:\ windows \ system32. Не забывайте, что запись может отличаться буквой загрузочного диска, с которого запущена консоль восстановления. Команда самостоятельно произведёт замену. Вам рекомендуем после завершения процесса убедиться в этом.

Распаковка файла Hal.dll

Проделать нужно действия, которые вы уже осуществляли несколькими минутами ранее. Пропишите C:\Windows\system32, после этого откроется список системных файлов, пересмотрите их все и вы сможете обнаружить искомый hal dll. Синий экран теперь после очередного запуска компьютера точно не появится, а операционная система благополучно запустится.

Многие пользователи активно интересуются при отсутствии hal dll, не только как исправить это положение, но и почему происходит такой системный сбой. Особенно такой вопрос тревожит тех, кто привык максимально осторожно пользоваться ПК, не допуская некорректного завершения ОС. Спровоцировать возникновение ошибки «Windows root» могут вредоносные программы, которые проникли на компьютер.

Также часто с такой проблемой сталкиваются владельцы ПК, у которых жёсткий диск повреждён, сопровождается битыми секторами. Возникнуть проблема «System 32 hal dll» может после того, как на компьютере было установлено новое оборудование.

Итак, при возникновении ошибки «Windows root system 32 hal dll», как исправить её, вы теперь понимаете. Уверены, что вам удастся всё проделать правильно, если вы не будете проявлять излишнюю торопливость, а также фантазировать. Решить легко такую проблему удаётся каждому, при этом вам не придётся тратить время на посещение сервисных центров, не придётся ущемлять свои желания только лишь по той причине, что финансы «ушли» не непредвиденные нужды.

Ошибки hal. dll

Ошибки hal.dll возникают по нескольким причинам, например, файл может быть поврежден, удален или не найден на компьютере. Распространенные ошибки библиотек:

  • Ошибка при запуске hal.dll: не найден указанный модуль.
  • Файл не предназначен или несовместим с версией Windows.
  • Отсутствует hal.dll, попробуйте переустановить программу.
  • Модуль или библиотека не обнаружены на компьютере.
  • hal.dll вернул код ошибки.

Чтобы исправить ошибки hal.dll, скачайте файл и переустановите его в системной папке Windows. В некоторых случаях файл должен находиться в папке с игрой или программой. Подробная инструкция по установке hal.dll и других библиотек находится в разделе «Помощь».

Hal dll отсутствует или поврежден Windows XP

При включении Windows говорит что файл hal.dll испорчен или поврежден попробуйте восстановить нажав кнопку r.

Для начала нужно скачать архив, я собрал файлы, которые могут пригодится для исправления ошибки. Это сам файл hal.dll (для windows xp и для windows 7).

Скачать hal.dll

Теперь вот что нам нужно делать:

1. Первый способ это запустить Windows, если он загружается и файл hal.dll, который вы скачаете нужно копировать и заменить в папку C:\Windows\system32 (Если у вас операционная система на диске C если нет, выберите другой диск). Перезагружаемся смотрим… Если ошибка осталась смотрите ниже…

2. Второй способ, если вдруг не запускается Windows, то нам понадобится любой установочный диск windows… Ну соответственно если у вас windows XP то и диск должен быть Windows XP.

Вставляем диск в CD-ROM и выставляем загрузку с диска в биосе. Если  у вас Windows на флешке, то выставляем загрузку с флешки в биосе.

Далее загружаемся с диска… Нажимаем любую клавишу.

Загрузка windows при установки

Ждем некоторое время, должно появится вот такое окно, в котором нажимаем R.

Восстанавливаем фаил

После того как вы нажмете R появится экран восстановления. Тут как раз мы и сможем восстановить поврежденный hal.dll

В окне выбираем вашу операционную систему, в моем случае первая.

Выбор операционной системы

Теперь используем хитрый прием копирования файлов. Существует конечно одна команда, но она может быть не так безопасна, так что мы пойдем надежным путем.

Для начала распаковываем нужный нам файл, командой expand e:\i386\hal.dl_ c:\

Т.е. мы распаковываем файл с диска hal.dll из архива hal.dl_ на диск C:   . У меня бука e: буква сидирома моего, у вас может быть другая, по этому пробуйте разные если не получится.

Теперь нам надо поместить файл hal.dll на свое место, делается это командой copy c:\hal.dll c:\windows\system32\    нажимаем Y (заменить).

Т.е. мы копировали файл из той директории куда мы распаковывали его, в ту где он должен находится. И потом подтвердили замену.

Hal dll отсутствует или поврежден Windows XP

Теперь Windows должен запустится. Тестировал лично, у меня все стабильно работает.

3. Способ третий если не запускается.

Тут уж проблема в ошибках. Получается мы копировали рабочий файл, а он опять сломался… Значит проблема кроется в оперативной памяти либо в жестком диске. Вам нужно протестировать оперативную память на ошибки, если не заработает, то проверить и исправить битые секторы на жестком диске.

Если вы все проделали правильно проблемы возникнуть не должно и windows должен запуститься с работающим файлом hal.dll.

https://youtube.com/watch?v=KP__SWp7xl0

Установка

Установите VirtualBox по указаниям ниже, чтобы создавать и запускать виртуальные машины в Arch Linux.

Установка основных пакетов

Установите пакет virtualbox. Кроме того, необходимо установить host-модули:

  • для ядра установите .
  • для других ядер (включая ) установите .

DKMS-хук Pacman автоматически перекомпилирует модули virtualbox-host-dkms при каждом обновлении VirtualBox и/или ядра. При компиляции потребуются пакеты с заголовочными файлами для вашего ядра (например, linux-lts-headers для ядра linux-lts) [1].

Дополнительно:  Sympy root

Подписывание модулей

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

Перейдите в дерево каталогов вашего ядра и выполните:

# for module in `ls /lib/modules/$(uname -r)/kernel/misc/{vboxdrv.ko,vboxnetadp.ko,vboxnetflt.ko}` ; do ./scripts/sign-file sha1 certs/signing_key.pem certs/signing_key.x509 $module ; done

Примечание: Алгоритм хэширования может отличаться от указанного, но он должен быть встроен в ядро.

Загрузка модулей ядра для VirtualBox

virtualbox-host-modules-arch и virtualbox-host-dkms используют службу systemd-modules-load.service для загрузки необходимых VirtualBox модулей ядра при запуске системы. Если необходимо загрузить модуль сразу после установки, то либо перезагрузитесь, либо однократно загрузите его вручную. Список модулей можно найти в файлах /usr/lib/modules-load.d/virtualbox-host-modules-arch.conf или /usr/lib/modules-load.d/virtualbox-host-dkms.conf.

Примечание: Если автоматическая загрузка модулей VirtualBox при запуске системы нежелательна, замаскируйте файлы /usr/lib/modules-load.d/virtualbox-host-modules-arch.conf и /usr/lib/modules-load.d/virtualbox-host-dkms.conf, создав пустой файл (или символическую ссылку на /dev/null) с таким же именем в каталоге /etc/modules-load.d/.

Среди используемых VirtualBox модулей ядра обязательным является vboxdrv. Если он не был загружен, то запустить виртуальные машины не получится.

Чтобы загрузить модуль вручную, выполните:

# modprobe vboxdrv

Следующие модули необходимы в некоторых сложных конфигурациях:

  • vboxnetadp и vboxnetflt необходимы для сетевых взаимодействий в режимах bridged и host-only. Если точнее, vboxnetadp позволяет через настройки VirtualBox создать в хостовой системе программный сетевой интерфейс, а vboxnetflt даёт виртуальной машине возможность его использовать.

Примечание: Если модули ядра для VirtualBox были загружены, а после этого получили обновления, то необходимо перезагрузить их вручную, чтобы заработала обновлённая версия. Для этого выполните команду vboxreload с правами root.

Доступ к USB-устройствам хоста из гостевой ОС

Добавьте пользователя в группу vboxusers, если необходимо предоставить ему доступ к USB-портам хоста из виртуальной машины.

Диск с гостевыми дополнениями

Если в качестве гостя выступает не Arch Linux, то имеет смысл установить пакет virtualbox-guest-iso. Он работает как образ диска, с которого можно установить гостевые дополнения. Файл .iso будет находиться в каталоге /usr/lib/virtualbox/additions/VBoxGuestAdditions.iso. Зайдите в гостевую систему, вручную смонтируйте образ и запустите установщик.

Расширения

Oracle Extension Pack предоставляет набор дополнительной функциональности. Набор распространяется под несвободной лицензией только для личного пользования. Расширения доступны в виде пакета virtualbox-ext-oracleAUR в AUR или в скомпилированном виде в неофициальном репозитории seblu.

Более «традиционный» способ — скачать расширения с сайта разработчиков и установить их либо через графический интерфейс (File > Preferences > Extensions), либо командой VBoxManage extpack install <.vbox-extpack>. Предварительно убедитесь, что у вас есть инструмент вроде Polkit для выдачи привилегированного доступа к VirtualBox — установка требует прав root.

Интерфейсы

Для VirtualBox разработано три интерфейса:

  • стандартный графический интерфейс, команда VirtualBox.
  • интерфейс командной строки, команда VBoxSDL; создаёт окно виртуальной машины без оверлеев.
  • интерфейс командной строки без отображения окон (например, для ВМ, находящейся на сервере), команда VBoxHeadless. Расширение VRDP позволяет получить доступ к экрану виртеальной машины.

Настройки безопасности Wayland (в частности, при использовании GDM) не пропускает ввод с клавиатуры в VirtualBox, что мешает, например, использовать в гостевой ОС комбинации клавиш. Чтобы это обойти, добавьте VirtualBox в белый список:

$ gsettings get org.gnome.mutter.wayland xwayland-grab-access-rules
$ gsettings set org.gnome.mutter.wayland xwayland-grab-access-rules "['VirtualBox Machine']"

Первая команда выведет текущий список приложений в белом списке. ‘VirtualBox Machine’ необходимо добавить к этому списку (вторая команда в примере выше не добавляет, а создаёт список из ровно одного элемента).

Наконец, можно администрировать виртуальные машины через веб-интерфейс с помощью phpVirtualBox.

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

Важно: Если вы собираетесь хранить образы виртуальных дисков в файловой системе Btrfs, то перед их созданием необходимо отключить copy-on-write для целевого каталога.

Пошаговая установка Arch Linux как гостевой ОС

Установка Arch Linux в виртуальную машину

Примечание: Хостам с ОС Windows, возможно, придется отключить Hyper-V для того, чтобы использовать возможности виртуализации устройств и создания 64-битных виртуальных машин в VirtualBox. Чтобы узнать, как отключить или снова включить Hyper-V, посмотрите пост на StackOverflow.

Загрузите установочный носитель Arch через один из виртуальных дисков виртуальной машины. Затем совершите установку базовой системы Arch, как описано в руководстве по установке, без установки графических драйверов: мы будем устанавливать драйвера, поставляемые VirtualBox на следующем этапе.

Установка в режиме EFI

Если вы хотите установить Arch Linux в режиме EFI внутри VirtualBox, в настройках виртуальной машины, перейдите в закладку Настройки, и установите флажок Enable EFI (special OSes only). После выбора ядра из меню установочного носителя Arch Linux, установка будут висеть в течение минуты-двух, и после этого будет загружено ядро . Подождите и не прекращайте установку.

При загрузке в режиме EFI, VirtualBox будет пытаться выполнить /EFI/BOOT/BOOTX64.EFI из ESP. Если первый вариант не удается, VirtualBox будет пытаться выполнить сценарий оболочки EFI startup.nsh из корня ESP. Если вы не хотите вручную запускать загрузчик из оболочки EFI каждый раз, вы должны будете переместить свой загрузчик в этот путь по умолчанию. Не заморачивайтесь с VirtualBox Boot Manager (доступен по F2 при загрузке): EFI данные будут добавлены в него вручную при загрузке или efibootmgr будет сохранять их после перезагрузки, но терять после закрытия виртуальной машины.

Установка гостевых дополнений

После завершения установки гостевой системы, установите дополнения гостевой ОС, которые включают драйверы и приложения, оптимизирующие гостевую операционную систему. Они могут быть установлены с помощью virtualbox-guest-utils.

Примечание: Метод, описанный в VirtualBox руководстве не работает на гостевой Arch Linux, в результате Unable to determine your Linux distribution несколько раз повторено, как сообщение об ошибке. Если Вы уже попробовали этот первый метод и вы используете правильное описанное выше решение впоследствии, это не удастся. Вы получите ошибку /usr/bin/VBox* exists in filesystem и /usr/lib/VBox* exists in filesystem. Решение заключается в удалении конфликтующих файлов: # rm /usr/bin/VBox* /usr/lib/VBox* Эти файлы на самом деле являются символическими ссылками на места, где были установлены гостевые дополнения; По умолчанию, это /opt/VBoxGuestAdditions-номер версии. Удалите и эти файлы # rm -r /opt/VBoxGuestAdditions-номер версии,так как они не нужны. Теперь вы можете перезапустить установку правильным, вышеописанным способом.

Загрузка модулей ядра VirtualBox

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

# modprobe -a vboxguest vboxsf vboxvideo

Чтобы загрузить модуль VirtualBox во время загрузки системы, обратитесь к Загрузка ядра#Автоматическое управление модулями и создайте *.conf файл (например, virtualbox.conf) в директории /etc/modules-load.d/ с следующим содержанием:

/etc/modules-load.d/virtualbox.conf
vboxguest
vboxsf
vboxvideo

Кроме того, команда

# systemctl enable vboxservice 

включает автозагрузку модулей и синхронизацию времени хоста и гостевой ОС.

Запуск гостевых сервисов VirtualBox

После довольно непростой установки с модулями ядра VirtualBox, необходимо обеспечить взаимодействие гостевой ОС и хоста посредством сервисов. Гостевой сервис — на самом деле просто исполняемый файл, обращающийся к VBoxClient, который будет взаимодействовать с вашей X Window System. VBoxClient управляет следующими функциями:

  • Общий буфер обмена и перетаскивания между принимающей стороной и гостевой ОС;
  • Бесшовный оконный режим;
  • Гостевой дисплей автоматически изменяется в соответствии с размером окна гостевой ОС;
  • Проверка версии VirtualBox, установленной на хосте.

Все эти особенности могут быть включены независимо следующими параметрами:
 $ VBoxClient —clipboard —draganddrop —seamless —display —checkhostversion

Как ссылка, VBoxClient-all bash скрипт позволяет использовать все эти функции. Вы должны установить VBoxClient, который будет автоматически загружен в качестве DE или оконного менеджера

На практике,

  • Если вы используете DE, вам просто нужно установить флажок или добавить /usr/sbin/VBoxClient-all} в разделе автозапуска вашей DE (DE обычно устанавливают флаг на .desktop файлы в ~/.config/autostart, см. настройку автозапуска для более подробной информации);
  • Если у вас нет каких-либо DE, добавьте следующую строку в начале ~/.xinitrc перед любыми exec функциями:
~/.xinitrc
/usr/bin/VBoxClient-all

VirtualBox также может синхронизировать время между хостом и гостевой ОС. Чтобы сделать это, выполните VBoxService с правами суперпользователя. Чтобы установить автоматический запуск этого кода при загрузке, выполните:

# systemctl enable vboxservice

Теперь у вас есть рабочая гостевая Arch Linux. Поздравляем!

Если вы хотите расшарить директории между вашим компьютером и гостевым Arch Linux, читайте дальше.

Расшаривание директорий

Общие папки управляются в хосте через настройки виртуальной машины, доступной через графический интерфейс VirtualBox, на вкладке Shared Folders. Там путь к директории и имя точки монтирования определены как Имя папки и аргументы, такие как Read-only, Auto-mount и Make permanent Эти параметры могут быть определены через утилиту VBoxManage. См. для более подробной информации.

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

Чтобы избежать проблемы /sbin/mount.vboxsf: mounting failed with the error: No such device, убедитесь, что модуль ядра vboxsf загружен правильно. Он должен быть загружен, поскольку мы включили все гостевые модули ядра ранее.

Дополнительно:  Что делать, когда не включается и не работает кулер (вентилятор) на ноутбуке?

Два дополнительных шага необходимы для того, чтобы точки монтирования должны быть доступны из пользователей кроме root-а:

  • Пакет создает группу vboxsf;
  • Ваше имя пользователя должно быть в этой группе, используйте команду gpasswd -a $USER vboxsf, чтобы добавить свое имя пользователя и запустите newgrp, чтобы применить изменения немедленно.

Ручное монтирование

Выполните следующую команду для монтирования директории в гостевой Arch Linux:

# mount -t vboxsf имя_расшариваемой_директории точка_монтирования_в_гостевой_ОС

Файловая система vboxsf предоставляет и другие способы, просмотреть которые можно выполнив:

# mount.vboxsf

Например, если пользователь не добавлен в vboxsf группу, мы могли бы использовать эту команду, чтобы смонтировать директорию в гостевой ОС:

# mount -t vboxsf -o uid=1000,gid=1000 home /mnt/

Где UID и GID являются значениями, соответствующими пользователям, которым мы хотим дать доступ к монтированию директории. Эти значения можно узнать из вывода команды id, выполненной из сессии этого пользователя.

Автомонтирование

Чтобы функция автоматического монтирования заработала, вы должны включить флажок в графическом интерфейсе или использовать дополнительный аргумент —automount при команде VBoxManage общая_директория

Теперь общая директория должна появиться в /media/sf_имя_расшаренной_директории.

Вы можете использовать символические ссылки, если хотите иметь более удобный доступ:

$ ln -s /media/sf_имя_расшаренной_директории ~/мои_документы

Монтирование при загрузке

Вы можете монтировать директории с помощью fstab. Во избежание проблем с systemd, необходимо добавить в /etc/fstab строчку comment=systemd.automount.
Таким образом, общие папки монтируются только тогда, когда доступны точки подключения, а не во время запуска. Это может избежать некоторых проблем, особенно если гостевая ОС еще не загружена, когда systemd уже начал читать fstab и монтировать разделы.

desktop   /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,comment=systemd.automount 0 0

mount.vboxsf может не поддерживать[устаревшая ссылка 2020-08-06] nofail аргумент:

desktop   /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0

Импорт/экспорт виртуальных машин VirtualBox в/из других гипервизоров

Если вы планируете использовать виртуальную машину на другом гипервизоре или хотите импортировать в VirtualBox виртуальную машину, созданную в другом гипервизоре, вы можете быть заинтересованы в чтении следующих шагов.

Удаление дополнений гостевой ОС

Гостевые дополнения доступны в большинстве гипервизоров: VirtualBox поставляется с гостевыми дополнениями, VMware с VMware Tools, Parallels с инструментами Parallels, и т.д. Это дополнительные компоненты, предназначенные для установки внутри виртуальной машины после гостевой операционной системы, состоящие из драйверов устройств и системных приложений, которые оптимизируют гостевую операционной системы для повышения производительности и удобства использования. Читать подробнее.

Если у вас установлены дополнения в вашей виртуальной машине — удалите их в первую очередь. Ваша гостевая ОС, особенно если это ОС из семейства Windows, может вести себя странно, аварийно или не загрузиться вообще, если вы используете специальные драйверы одного гипервизора на другом.

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

От этого шага будет зависеть способность преобразовывать образ диска виртуальной в другие форматы — непосредственно или конвейерным методом.

Автоматические инструменты

Некоторые компании предоставляют инструменты, которые предлагают возможность создания виртуальных машин с операционной системой Windows или GNU / Linux, расположенной в виртуальной машине или даже в оригинальной установке. С таким продуктом вам не нужно применять этот и следующие шаги, и можно далее не читать.

  • Parallels Transporter — не бесплатный, продукт от Parallels Inc. Это решение в основном заключается в части программного обеспечения под названием агент, который будет установлен в гостевой ОС, которую вы хотите импортировать / преобразовать. Затем, Parallels Transporter, который работает только на OS X , создаст виртуальную машину с этим агентом, который контактирует либо по USB или по сети Ethernet.
  • VMware vCenter Converter — бесплатен при регистрации на Webiste VMware, работает почти так же, как Parallels Transporter, но часть программного обеспечения, которая собирает данные для создания виртуальной машины работает только на платформе Windows.

Ручное преобразование

Во-первых, ознакомьтесь с форматами, поддерживаемыми Virtualbox и форматами других гипервизоров.

  • Импорт и экспорт виртуальной машины из/в формат VMware не является проблемой, если вы используете формат диска VMDK или OVF, в противном случае преобразования VMDK в VDI и VDI в VMDK можно осуществить вышеописанным VMware vCenter Converter.
  • Импорт и экспорт из/в QEMU почти не проблема: некоторые форматы QEMU поддерживает непосредственно VirtualBox и преобразование между QCOW2 в VDI и VDI в QCOW2 по-прежнему доступны в случае необходимости.
  • Импорт и экспорт из/в Parallels гипервизора является трудный задачей: Parallels поддерживает только свой собственный формат жесткого диска (даже стандартные форматы и портативный формат OVF не поддерживается!).
  • Чтобы экспортировать виртуальную машину для Parallels, вам нужно будет использовать инструмент описанной выше Parallels — Transporter.
  • Чтобы импортировать виртуальную машину в VirtualBox, вы должны будете использовать VMware vCenter Converter , чтобы преобразовать виртуальную машину в формат VMware в первую очередь — а затем используйте инструмент для миграции с VMware.

Создание конфигурации VM для гипервизора

Каждый гипервизор имеет свой собственный файл конфигурации виртуальной машины: .vbox для VirtualBox, .vmx для VMware, config.pvs файл, расположенный в виртуальной машине (.pvm файл), и т.д. Вы можете, таким образом, создать новую виртуальную машину в новом гипервизоре и указать его конфигурацию как можно ближе относительно начальной виртуальной машины.

Обратите пристальное внимание на интерфейс прошивки (BIOS или UEFI), используемый для установки гостевой операционной системы. В то время как опция доступна выбирать между этими 2 интерфейсов на VirtualBox и на Parallels решений, на VMware, вам придется вручную добавить следующую строку в ваш .vmx файл.

ArchLinux_vm.vmx
firmware = "efi"

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

Совет:

  • В VirtualBox, если вы не хотите просмотривать весь графический интерфейс, чтобы найти нужное место где можно добавить новый виртуальный диск устройства, вы можете Заменить виртуальный диск вручную из файла .vbox, или использовать VBoxManage storageattach, описанный в увеличении вируального диска или в руководстве VirtualBox
  • Кроме того, в продуктах VMware, вы можете заменить местоположение текущего местоположения виртуального диска путем адаптации .vmdk местоположения файла в .vmx конфигурационном файле.

Управление виртуальными дисками

Форматы, поддерживаемые VirtualBox

VirtualBox поддерживает следующие форматы виртуальных дисков:

  • VDI: Virtual Disk Image является собственным стандартои VirtualBox, используемыи по умолчанию, когда вы создаете виртуальную машину в VirtualBox.
  • VMDK: изначально разработан VMware для своих продуктов.Спецификация была закрытым исходным кодом, но сейчас стало открытым форматом, который полностью поддерживается VirtualBox. Этот формат дает возможность разбивать себя на несколько файлов по 2 Гб. Эта функция особенно полезна, если вы хотите сохранить виртуальную машину на компьютерах, которые не поддерживают очень большие файлы. Другие форматы, за исключением формата HDD от Parallels, не обеспечивают такую эквивалентную функцию.
  • VHD: Virtual Hard Disk — формат, используемый в Microsoft в Windows Virtual PC и Hyper-V. Если вы собираетесь использовать любой из этих продуктов Microsoft, вы должны будете выбрать этот формат.

Совет: Начиная с Windows 7, этот формат может быть установлен непосредственно без каких-либо дополнительных приложений.

  • VHDX (только для чтения): Это расширенная версия формата виртуального жесткого диска, разработанного Microsoft, которая была выпущена на 2012-09-04 с Hyper-V 3.0 при переходе на Windows Server 2012. Эта новая версия имеет повышенную производительность (лучшее расположение блоков), большие размеры блоков и поддержку журнала. VirtualBox поддерживает этот формат только для чтения.
  • Версия 2 HDD: Формат HDD разработан Parallels Inc и используются в их гипервизоре, например Parallels Desktop для Mac. Новые версии этого формата (т.е. 3 и 4) не поддерживаются из-за отсутствия документации для этого форматф.
  • QED: Формат Enhanced Disk QEMU — старый формат для QEMU, свободный и открытый. Этот формат был разработан в 2010 году таким образом, чтобы обеспечить превосходную альтернативу qcow2 и другим форматам. Этот формат имеет полностью асинхронный ввод / вывод, хорошую целостность данных, откат файлов и разреженные файлы. Формат QED поддерживается только для совместимости с виртуальными машинами, созданными в старых версиях QEMU.
  • QCOW: QEMU CoW — нынешний формат для QEMU.Формат QCOW поддерживает прозрачное сжатие на основе ZLIB и шифрование (последнее имеет недостаток, и не рекомендуется к сипользованию). QCOW доступен в двух версиях: QCOW и qcow2. Последний, как правило, заменяет первый. QCOW в настоящее время поддерживается VirtualBox. Qcow2 поставляется в двух версиях: qcow2 0.10 и qcow2 1.1 (по умолчанию используемый при создании виртуального диска с QEMU). VirtualBox не поддерживает qcow2.
  • OVF: Open Virtualization Format является открытым форматом, который был разработан для обеспечения взаимодействия и распределения виртуальных машин между различными гипервизоров. VirtualBox поддерживает все версии этого формата через VBoxManage импорт / экспорт, но с [https: //www.virtualbox.org/manual/ch14.html#KnownProblems известными ограничениями].
  • RAW: Это режим, когда виртуальный диск скидывается непосредственно на диск без определенного формата файл контейнера. VirtualBox поддерживает эту функцию несколькими способами: преобразование RAW диск к определенному формату, или клонированием диска в формате RAW, или непосредственно через файл VMDK, который указывает на физический диск или просто файл.
Дополнительно:  Root права и root explorer что это

Преобразование виртуальных дисков разных форматов

VMDK в VDI и VDI в VMDK

VirtualBox может конвертировать VDI в VMDK и обратно с использованием VBoxManage clonehd.

VMDK в VDI:

$ VBoxManage clonehd source.vmdk destination.vdi --format VDI

VDI в VMDK:

$ VBoxManage clonehd source.vdi destination.vmdk --format VMDK

VHD в VDI и VDI в VDH

VirtualBox также может конвертировать VHD в VDI и наоборот с использованием VBoxManage clonehd:

VHD в VDI:

$ VBoxManage clonehd source.vhd destination.vdi --format VDI

VDI в VHD:

$ VBoxManage clonehd source.vdi destination.vhd --format VHD

QCOW2 в VDI и VDI в QCOW2

VBoxManage clonehd не может конвертировать QEMU форматы и необходимо воспользоваться иными инструментами. Команда qemu-img из пакета qemu-desktop может осуществлять преобразования QCOW2&lt;=&gt;VDI.

Примечание: qemu-img также обрабатывает кучу других форматов. В соответствии выводу qemu-img --help, qemu-img поддерживает данные форматы : «vvfat vpc vmdk vhdx vdi ssh sheepdog sheepdog sheepdog raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd nbd nbd iscsi dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug'».

QCOW2 в VDI:

$ qemu-img convert -pO vdi source.qcow2 destination.vdi

VDI в QCOW2:

$ qemu-img convert -pO qcow2 source.vdi destination.qcow2

Так как QCOW2 предостовляется в двух версиях (0.10 и 1.1) (см. форматы, поддерживаемые VirtualBox. Используйте параметр -o compat= для выбора версии.

$ qemu-img convert -pO qcow2 source.vdi destination.qcow2 -o compat=0.10

или

$ qemu-img convert -pO qcow2 source.vdi destination.qcow2 -o compat=1.1

Совет: Параметр -p отображает прогресс выполнения преобразования.

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

VDI

Монтирование образов VDI работает только с образами фиксированного размера (т.е. статичными образами); динамические образы (динамическое выделение размера) монтируются довольно-таки не просто.

Если необходимо смещение раздела (в VDI), добавьте значение offData в 32256 (например, 69632 + 32256 = 101888):

$ VBoxManage internalcommands dumphdinfo <storage.vdi> | grep "offData"

Теперь cмонтируем:

# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <storage.vdi> /mntpoint/

Вы также можете использовать скрипт mount.vdi, который можно использовать (и даже установить скрипт в /usr/bin/:

# mount -t vdi -o fstype=ext4,rw,noatime,noexec vdi_file_location /mnt/

Также можно использовать модули ядра qemu-desktop , которые выполняют эту же функцию attrib:

# modprobe nbd max_part=16
# qemu-nbd -c /dev/nbd0 <storage.vdi>
# mount /dev/nbd0p1 /mnt/dir/
# # to unmount:
# umount /mnt/dir/
# qemu-nbd -d /dev/nbd0

Если файлы раздела не распространяются, попробуйте использовать partprobe /dev/nbd0. В противном случае, VDI раздел может быть отображен непосредственно в файл с помощью qemu-nbd -P 1 -c /dev/nbd0 .

Сжатие виртуальных дисков

Сжатие работает только с файлами .vdi и в основном состоит из следующих действий:

Загрузите виртуальную машину и удалите все ненужное вручную или с помощью специальных средств, например bleachbit (доступна для ОС Windows).

Затирание свободного места нулями может быть выполнено следующими инструментами:

  • В UNIX-based системах, выполните команду dd или, предпочтительно, AUR (см. здесь информацию об отличиях):
# dcfldd if=/dev/zero of=/fillfile bs=4M
Когда fillfile достигает лимита раздела, вам будет выдано сообщение вида 1280 blocks (5120Mb) written.dcfldd:: No space left on device. Это означает, что все пространство пользователя и незарезервированные блоки раздела будут затерты. Используя эту команду от суперпользователя, важно убедится в том, что все свободные блоки затерты. По умолчанию некий процент блоков ФС зарезервирован для супер-пользователя (см. вывод -m аргумента при команде mkfs.ext4 или используйте tune2fs -l чтобы увидеть, сколько места зарезервировано под приложения запущенные от root).
Когда вышеописанный процесс будет завершён, вы можете удалить созданный вами файл fillfile.
  • В ОС Windows есть два инструмента:
PS> ./Write-ZeroesToFreeSpace.ps1 -Root c:\ -PercentFree 0

Примечание: Этот скрипт должен быть запущен в среде PowerShell от имени администратора. По дефолту скрипты не запускаются из-за ограничений политик безопасности. Необходимо установить необходимое значение параметра Get-ExecutionPolicy в политиках безопасности: Set-ExecutionPolicy RemoteSigned.

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

  • В UNIX-based системах можно использовать fsck;
  • В Windows системах:
  • chkdsk c: /F где c: заменяется на имя проверяемого диска;
  • или FsckDskAll отсюда[устаревшая ссылка 2020-08-06], который основан на chkdsk, но не требует перезапуска для каждого отдельного диска;

Теперь удалите нули из vdi файлов с помощью VBoxManage modifyhd:

$ VBoxManage modifyhd your_disk.vdi --compact

Примечание: Если в вашей виртуальной машине есть снимки, вам необходимо выполнить команду для всех ваших .vdi файлов.

Увеличение размера виртуальных дисков

Если вы выходите за рамки пространства жесткого диска, которое выбрали при создании виртуальной машины, проблему можно решить по совету из руководства VirtualBox VBoxManage modifyhd. Эта команда работает только для динамически расширяемых дисков VDI и VHD . Если вы хотите изменить размер фиксированного виртуального диска, можете использовать нижеописанный трюк, который работает и на виртуальной машине Windows, и в UNIX-подобных системах.

Во-первых, создайте новый виртуальный диск рядом с тем, который вы хотите увеличить:

$ VBoxManage createhd -filename new.vdi —size 10000

где размер указан в MiB, в этом примере 10000MiB ~ = 10GiB, new.vdi — имя создаваемого нового виртуального диска.

Далее старый виртуальный диск должен быть клонирован в новый(это может занять длительной время):

$ VBoxManage clonehd old.vdi ew.vdi —existing

Примечание: По умолчанию, эта команда использует Standard (что соответствует динамическому выделению) формату файла диска, и, следовательно, не будет использовать тот же формат в качестве формата исходного виртуального диска. Если ваш old.vdi имеет фиксированный размер, и вы хотите, чтобы новый диск был тоже фиксированным, добавьте параметр —variant Fixed.

Отключите старый диск и установите новый, обязательно заменив все выделенные курсивом аргументы на свои:

$ VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium none
$ VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium new.vdi --type hdd

Чтобы получить имя контроллера диска и номер порта, вы можете использовать команду VBoxManage showvminfo VM_name. Среди вывода вы получите такой результат (то, что вы ищете выделено курсивом):

[...]
Storage Controller Name (0):            IDE
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on
Storage Controller Name (1):            SATA
Storage Controller Type (1):            IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1):  30
Storage Controller Port Count (1):      1
Storage Controller Bootable (1):        on
IDE (1, 0): Empty
SATA (0, 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/{6bb17af7-e8a2-4bbf-baac-fbba05ebd704}.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704)
[...]

Скачайте GParted LiveCD и установите его в качестве виртуального привода , загрузите вашу виртуальную машину, используйте увеличение / перемещение ваших разделов. По окончании работы отмонтируйте GParted LiveCD и перезагрузите машину.

Примечание: На GPT дисках, увеличение размера диска приведет к созданию резервной копии заголовка GPT в месте, отличном от конца устройства. GParted попросит, чтобы исправить проблему, нажать на исправить два раза. На дисках MBR такой проблемы не возникнет.

Наконец, отключите старый виртуальный диск в VirtualBox и удалите его:

$ VBoxManage closemedium disk old.vdi
$ rm old.vdi

Замена виртуального диска из файла. vbox вручную

Если вы думаете, что редактирование простого XML файла более удобно, чем возня с GUI или VBoxManage и вы хотите заменить (или добавить) виртуальный диск в вашей виртуальной машине, просто замените GUID, местоположение файла и формат для ваших нужд в конфигурационном файле .vbox, соответствующем вашей виртуальной машине:

ArchLinux_vm.vbox
<HardDisk uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}" location="ArchLinux_vm.vdi" format="VDI" type="Normal"/>

в (суб-тег ) замените старый GUID на новый.

ArchLinux_vm.vbox
<AttachedDevice type="HardDisk" port="0" device="0">
  <Image uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}"/>
</AttachedDevice>

Примечание: Если вы не знаете GUID диска который вы хотите добавить, вы можете использовать VBoxManage showhdinfo file. Если раньше вы использовали VBoxManage clonehd, для копирования или конвертирования виртуальных дисков, он выводит GUID после завершения копирования / преобразования. Применение случайного GUID не работает, так как каждый UUID хранится внутри любого образа диска.

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

UUID широко используются VirtualBox. Каждая виртуальная машина и каждый виртуальный диск виртуальной машины должны иметь разные UUID. Когда вы запускаете виртуальную машину в VirtualBox, он будет отслеживать все UUID. См VBoxManage list, чтобы просмотреть список элементов, зарегистрированных в VirtualBox.

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

Вы можете использовать эту команду, чтобы назначить новый UUID для вашего виртуального диска:

$ VBoxManage internalcommands sethduuid /path/to/disk.vdi

Совет: В будущем, чтобы избежать копирования виртуального диска и назначения нового UUID вручную, используйте VBoxManage clonehd.

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

Оцените статью
Master Hi-technology
Добавить комментарий