Как перенести Debian на виртуальную машину
Обновлено: 21.11.2024
Если текущий хост виртуальной машины (ВМ) становится неподходящим или больше не может использоваться, или если вы хотите перераспределить рабочую нагрузку хостинга, вы можете перенести ВМ на другой хост KVM.
9.1. Как работает миграция виртуальных машин
Важной частью миграции виртуальной машины (ВМ) является копирование XML-конфигурации виртуальной машины на другой хост-компьютер. Если перенесенная виртуальная машина не отключена, миграция также передает состояние памяти виртуальной машины и всех виртуализированных устройств на конечный хост-компьютер. Чтобы ВМ продолжала работать на целевом хосте, образы дисков ВМ должны оставаться доступными для нее.
По умолчанию перенесенная виртуальная машина является временной на целевом хосте и остается определенной также на исходном хосте.
Вы можете перенести работающую ВМ с помощью активной или неактивной миграции. Чтобы перенести отключенную ВМ, необходимо использовать автономную миграцию. Подробнее см. в следующей таблице.
Таблица 9.1. Типы миграции ВМ
Динамическая миграция
ВМ продолжает работать на исходном хост-компьютере, пока KVM передает страницы памяти ВМ на конечный хост. Когда миграция почти завершена, KVM очень ненадолго приостанавливает работу ВМ и возобновляет ее работу на целевом хосте.
Полезно для виртуальных машин, которым требуется постоянное время безотказной работы. Однако виртуальные машины, которые изменяют страницы памяти быстрее, чем их может передать KVM, например виртуальные машины с высокой нагрузкой ввода-вывода, не могут быть перенесены в режиме реального времени, и вместо этого необходимо использовать нединамическую миграцию.
Образы дисков ВМ должны располагаться в общей сети, доступной как для исходного, так и для целевого хоста.
Неактивная миграция
Приостанавливает работу ВМ, копирует ее конфигурацию и память на целевой хост и возобновляет работу ВМ.
Вызывает простои ВМ, но в целом более надежен, чем динамическая миграция. Рекомендуется для ВМ с высокой нагрузкой ввода-вывода.
Образы дисков ВМ должны располагаться в общей сети, доступной как для исходного, так и для целевого хоста.
Офлайн-миграция
Перемещает конфигурацию ВМ на целевой хост
Рекомендуется для отключения ВМ.
Образы дисков ВМ не обязательно должны быть доступны в общей сети. Вместо этого их можно копировать или перемещать вручную на целевой хост.
Дополнительные ресурсы
- Дополнительную информацию о преимуществах миграции виртуальных машин см. в разделе 9.2, «Преимущества миграции виртуальных машин».
- Инструкции по настройке общего хранилища для переноса ВМ см. в Раздел 9.4, «Совместное использование образов дисков виртуальных машин с другими хостами».
9.2. Преимущества переноса виртуальных машин
Миграция виртуальных машин (ВМ) может быть полезна для:
Виртуальные машины балансировки нагрузки можно переместить на менее загруженные хост-компьютеры, если их хост перегружен или если другой хост недогружен. Независимость от оборудования Когда вам нужно обновить, добавить или удалить аппаратные устройства на хост-компьютере, вы можете безопасно переместить виртуальные машины на другие хосты. Это означает, что виртуальные машины не испытывают простоя для усовершенствования оборудования. Энергосберегающие виртуальные машины могут быть перераспределены на другие хосты, и, таким образом, незагруженные хост-системы могут быть отключены для экономии энергии и сокращения расходов в периоды низкого использования. Виртуальные машины с географической миграцией можно перемещать в другое физическое расположение для снижения задержки или по другим причинам.
9.3. Ограничения на перенос виртуальных машин
Перед переносом виртуальных машин (ВМ) в RHEL 8 убедитесь, что вы знаете об ограничениях переноса.
- Миграция динамического хранилища невозможна в RHEL 8, но вы можете перенести хранилище, когда виртуальная машина отключена. Обратите внимание, что динамическая миграция хранилища доступна в Red Hat Virtualization.
- Миграция виртуальных машин из или в сеансовое соединение libvirt ненадежна и поэтому не рекомендуется.
ВМ с назначенными хост-устройствами не будут работать должным образом после миграции, или миграция завершится ошибкой. К таким конфигурациям относятся:
- Переход через устройство
- Назначение устройства SR-IOV
- Устройства-посредники, такие как vGPU
Эмулируемые ЦП как на исходной ВМ, так и на целевой ВМ должны быть идентичными, иначе миграция может завершиться ошибкой. Любые различия между ВМ в следующих областях, связанных с ЦП, могут вызвать проблемы при переносе:
- Модель ЦП
- Настройки прошивки
- Версия микрокода
- Версия BIOS
- Настройки BIOS
- Версия QEMU
- Версия ядра
9.4. Совместное использование образов дисков виртуальной машины с другими хостами
Для выполнения динамической миграции виртуальной машины (ВМ) между поддерживаемыми узлами KVM требуется общее хранилище ВМ. В этом разделе приведены инструкции по совместному использованию локально сохраненного образа ВМ на исходном и целевом хостах с использованием протокола NFS.
Предпосылки
- ВМ, предназначенная для переноса, отключена.
- Необязательно: хост-система доступна для размещения хранилища, которое не является исходным или целевым хостом, но и исходный, и конечный хост могут получить к нему доступ через сеть. Это оптимальное решение для общего хранилища, рекомендованное Red Hat.
- Убедитесь, что блокировка файлов NFS не используется, так как она не поддерживается в KVM.
NFS установлена и включена на исходном и целевом хостах. Если это не так:
Установите пакеты NFS:
Убедитесь, что порты для NFS, например 2049, открыты в брандмауэре.
Запустите службу NFS.
Процедура
Подключитесь к хосту, который предоставит общее хранилище. В данном примере это узел грузового отсека:
Создайте каталог, в котором будет храниться образ диска и который будет использоваться совместно с узлами переноса.
Скопируйте образ диска ВМ с исходного хоста во вновь созданный каталог. Например, следующий код копирует образ диска виртуальной машины странник1 в каталог /var/lib/libvirt/shared-images/ на хосте `cargo-bay`:
На хосте, который вы хотите использовать для общего доступа к хранилищу, добавьте общий каталог в файл /etc/exports. В следующем примере каталог /var/lib/libvirt/shared-images используется совместно с хостами исходного и конечного примеров:
И на исходном, и на целевом хосте смонтируйте общий каталог в каталоге /var/lib/libvirt/images:
Подтверждение
- Чтобы убедиться, что процесс прошел успешно, запустите виртуальную машину на исходном хосте и проверьте, правильно ли она загружается.
Дополнительные ресурсы
9.5. Миграция виртуальной машины с помощью интерфейса командной строки
Если текущий хост виртуальной машины (ВМ) становится неподходящим или больше не может использоваться, или если вы хотите перераспределить рабочую нагрузку хостинга, вы можете перенести ВМ на другой хост KVM. В этом разделе приведены инструкции и примеры для различных сценариев такой миграции.
Предпосылки
- И исходный хост, и конечный хост используют гипервизор KVM.
- Хост-источник и хост-получатель могут связываться друг с другом по сети. Используйте утилиту ping, чтобы проверить это.
- Чтобы Red Hat поддерживала миграцию, на исходном и целевом хостах должны использоваться определенные операционные системы и типы компьютеров. Чтобы убедиться в этом, см. Раздел 9.7, «Поддерживаемые хосты для миграции виртуальных машин».
Образы дисков ВМ, которые будут перенесены, расположены в отдельном сетевом расположении, доступном как для исходного, так и для целевого хоста. Это необязательно для автономной миграции, но необходимо для миграции работающей ВМ.
При переносе работающей ВМ пропускная способность сети должна быть выше, чем скорость, с которой ВМ создает грязные страницы памяти.
Чтобы получить частоту грязных страниц для вашей ВМ до начала динамической миграции, выполните следующие действия:
Контролируйте скорость создания грязных страниц виртуальной машиной в течение короткого периода времени.
После завершения мониторинга получите его результаты:
В этом примере виртуальная машина генерирует 2 МБ грязных страниц памяти в секунду. Попытка динамической миграции такой ВМ в сети с пропускной способностью 2 МБ/с или менее приведет к тому, что динамическая миграция не будет выполняться, если вы не приостановите работу ВМ или не снизите ее рабочую нагрузку.
Чтобы обеспечить успешное завершение динамической миграции, Red Hat рекомендует, чтобы пропускная способность вашей сети была значительно выше, чем скорость создания грязных страниц виртуальной машиной.
Убедитесь, что служба libvirtd включена и работает.
Процедура
Используйте команду virsh migrate с параметрами, соответствующими вашим требованиям миграции.
Следующее выполняет миграцию виртуальной машиныстранника1 с вашего локального хоста на системное подключение хоста целевого примера с использованием туннеля SSH. ВМ продолжит работу во время переноса.
Следующее позволяет вручную изменить конфигурацию виртуальной машиныстранника2, работающей на локальном хосте, а затем перенести виртуальную машину на хост-пример назначения. Перенесенная виртуальная машина автоматически будет использовать обновленную конфигурацию.
Эта процедура может быть полезна, например, когда целевому хосту необходимо использовать другой путь для доступа к общему хранилищу ВМ или при настройке функции, специфичной для целевого хоста.
Следующее приостанавливает работу виртуальной машиныстранника3 с хоста исходного примера, переносит ее на хост конечного примера и дает ей указание использовать скорректированную конфигурацию XML, предоставленную файломстранник3-alt.xml. Когда миграция завершена, libvirt возобновляет работу виртуальной машины на целевом хосте.
После переноса виртуальная машина остается в приостановленном состоянии на исходном хосте, а перенесенная копия удаляется после завершения работы.
Следующее удаляет выключенную виртуальную машину Wanderer4 с хоста исходного примера и перемещает ее конфигурацию на хост целевого примера.
Обратите внимание, что этот тип миграции не требует перемещения образа диска ВМ в общее хранилище. Однако, чтобы виртуальную машину можно было использовать на целевом хосте, необходимо перенести образ диска виртуальной машины. Например:
Дождитесь завершения переноса. Процесс может занять некоторое время в зависимости от пропускной способности сети, загрузки системы и размера виртуальной машины. Если параметр --verbose не используется для virsh migrate , интерфейс командной строки не отображает никаких индикаторов выполнения, кроме ошибок.
Во время миграции вы можете использовать утилиту virsh domjobinfo для отображения статистики миграции.
Подтверждение
На целевом хосте перечислите доступные ВМ, чтобы проверить, была ли миграция ВМ:
Если миграция все еще выполняется, эта команда отобразит состояние ВМ как приостановленное.
Устранение неполадок
-
В некоторых случаях целевой хост будет несовместим с определенными значениями XML-конфигурации перенесенной виртуальной машины, такими как сетевое имя или тип ЦП. В результате виртуальная машина не сможет загрузиться на целевом хосте. Чтобы устранить эти проблемы, вы можете обновить проблемные значения с помощью команды редактирования virsh.
Если динамическая миграция занимает много времени, это может быть связано с тем, что виртуальная машина находится под большой нагрузкой и изменяется слишком много страниц памяти, чтобы динамическая миграция была возможной. Чтобы решить эту проблему, измените миграцию на неактивную, приостановив виртуальную машину.
Дополнительные ресурсы
- Дополнительные параметры и примеры миграции виртуальных машин см. в virsh migrate --help или на справочной странице virsh.
9.6. Живая миграция виртуальной машины с помощью веб-консоли
Если вы хотите перенести виртуальную машину (ВМ), которая выполняет задачи, требующие ее постоянной работы, вы можете перенести эту ВМ на другой хост KVM, не выключая ее. Это также известно как живая миграция. В следующих инструкциях объясняется, как это сделать с помощью веб-консоли.
Для задач, которые изменяют страницы памяти быстрее, чем KVM может их передать, например задач с высокой нагрузкой ввода-вывода, рекомендуется не выполнять динамическую миграцию виртуальной машины.
Предпосылки
- В вашей системе установлен подключаемый модуль виртуальной машины для веб-консоли.
- Исходный и конечный хосты работают.
- Образы дисков ВМ находятся в общем хранилище, доступном как для исходного, так и для целевого хоста.
При переносе работающей ВМ пропускная способность сети должна быть выше, чем скорость, с которой ВМ создает грязные страницы памяти.
Чтобы получить частоту грязных страниц для вашей ВМ до начала динамической миграции, выполните следующие действия в интерфейсе командной строки:
Контролируйте скорость создания грязных страниц виртуальной машиной в течение короткого периода времени.
После завершения мониторинга получите его результаты:
В этом примере виртуальная машина генерирует 2 МБ грязных страниц памяти в секунду. Попытка динамической миграции такой ВМ в сети с пропускной способностью 2 МБ/с или менее приведет к тому, что динамическая миграция не будет выполняться, если вы не приостановите работу ВМ или не снизите ее рабочую нагрузку.
Чтобы обеспечить успешное завершение динамической миграции, Red Hat рекомендует, чтобы пропускная способность вашей сети была значительно выше, чем скорость создания грязных страниц виртуальной машиной.
Процедура
В интерфейсе виртуальных машин веб-консоли нажмите кнопку меню ⋮ для виртуальной машины, которую вы хотите перенести.
Появится раскрывающееся меню с элементами управления различными операциями с ВМ.
Появится диалоговое окно "Перенос виртуальной машины на другой хост".
Настройте продолжительность переноса:
- Постоянно — не устанавливайте этот флажок, если вы хотите перенести виртуальную машину на постоянной основе. Постоянная миграция полностью удаляет конфигурацию ВМ с исходного хоста.
- Временный — при временном переносе копия виртуальной машины переносится на целевой хост. Эта копия удаляется с целевого хоста при выключении виртуальной машины. Исходная ВМ остается на исходном хосте.
Ваша виртуальная машина перенесена на целевой хост.
Подтверждение
Чтобы убедиться, что виртуальная машина была успешно перенесена и работает правильно:
- Убедитесь, что ВМ отображается в списке ВМ, доступных на целевом хосте.
- Запустите перенесенную виртуальную машину и посмотрите, загружается ли она.
9.7. Поддерживаемые хосты для переноса виртуальных машин
Чтобы миграция виртуальной машины (ВМ) работала правильно и поддерживалась Red Hat, исходный и конечный хосты должны иметь определенные версии RHEL и типы машин. В следующей таблице показаны поддерживаемые пути миграции ВМ.
Таблица 9.2. Совместимость с динамической миграцией
В поддерживаемых системах RHEL 7: типы компьютеров i440fx и q35
В поддерживаемых системах RHEL 8: типы компьютеров i440fx и q35
В поддерживаемых системах RHEL 7: типы компьютеров i440fx и q35 в RHEL 7.6.0 и более поздних версиях.
В поддерживаемых системах RHEL 8: тип машины q35 .
В поддерживаемых системах RHEL 7.Полностью поддерживается для машин типов i440fx и q35.
Я ищу информацию о том, как перенести мой физический сервер под управлением Debian на машину VirtualBox, работающую на моем рабочем столе Win7.
Я чувствую, что нужно просто воссоздать таблицу разделов жесткого диска на сервере, а затем скопировать все содержимое. Однако я понятия не имею, загрузится ли это на самом деле.
Я также не знаю, как Debian реагирует на пробуждение в совершенно другой среде.
Есть идеи или советы? В идеале мне не нужно выключать сервер, пока я не проверю, все ли работает на виртуальной машине.
+1 Отличный вопрос. Миграция реального оборудования на виртуальное — довольно стандартная процедура, в которой некоторые инструменты могут иметь большое значение. Я имею в виду, что инструмент может анализировать жесткий диск (определить диспетчер загрузки в MBR, найти разделы в /etc/fstab). Тем не менее, я также не видел ничего, что могло бы это сделать.
1 Ответ 1
Переместить все файлы из одной файловой системы в другую не проблема. Если только файлы и разрешения одинаковы, Linux не будет заботиться об изменении базового оборудования, типа файловой системы и т. д. Но Grub будет, поэтому вам нужно переустановить его.
Если хотите, вы можете просто создать образ всего диска и преобразовать его в диск VirtualBox (используя VBoxManage convertfromraw mydisk.img mydisk.vdi ). Это будет работать без переустановки Grub. Но, конечно, все остальные разделы также включаются (что может сделать файл слишком большим и непрактичным). Gparted или подобное можно запустить из VirtualBox для редактирования разделов.
Перенос Linux на новое оборудование обычно работает нормально. Согласно моему опыту, единственное, что требовало некоторой настройки, — это конфигурация X-сервера. Но поскольку вы используете сервер, это, вероятно, даже не проблема. Новый сетевой адаптер (как его видит Linux), вероятно, получит новый номер (например, eth1 вместо eth0), поэтому любые явные правила маршрутизации необходимо обновить (но вы можете указать udev использовать старый номер, чтобы избежать каких-либо проблем, см. этот вопрос).
Крис Хоффман
Крис Хоффман
Главный редактор
Крис Хоффман – главный редактор How-To Geek. Он писал о технологиях более десяти лет и два года был обозревателем PCWorld. Крис писал для The New York Times, давал интервью в качестве эксперта по технологиям на телевизионных станциях, таких как NBC 6 в Майами, и освещал свою работу в таких новостных агентствах, как BBC. С 2011 года Крис написал более 2000 статей, которые были прочитаны почти миллиард раз — и это только здесь, в How-To Geek. Подробнее.
Хотите сохранить старую установку Windows или Linux, не оставляя оборудование? Преобразуйте этот физический раздел Windows в виртуальный жесткий диск, что позволит вам загружать его в программе виртуальной машины, такой как VMware, Hyper-V, Parallels или VirtualBox.
Windows привязывается к оборудованию вашего компьютера. Эти инструменты создадут копию состояния физической машины и превратят ее в виртуальную машину, позволяя ей загружаться в той программе виртуальной машины, которую вы предпочитаете.
Для VMware — Windows или Linux
VMware предлагает бесплатный инструмент, известный как VMware vCenter Converter. Он может преобразовывать физические машины Windows и Linux в виртуальные машины VMware. Затем вы можете загрузить эти виртуальные машины в бесплатном приложении VMware Player VMware, так что это может быть совершенно бесплатным решением. Вы также можете загрузить его в VMware Workstation или VMware Fusion.
Загрузите vCenter Converter с сайта VMware и запустите его на компьютере, который хотите превратить в виртуальную машину. Нажмите кнопку «Преобразовать компьютер» на панели инструментов и выберите текущий включенный компьютер в качестве источника. Выберите виртуальную машину VMware Workstation, VMware Player или VMware Fusion в качестве места назначения и настройте параметры виртуальной машины.
Затем утилита создаст виртуальную машину из текущей системы Windows, изменив ее так, чтобы она правильно загружалась в программе виртуальной машины. Сохраните эту виртуальную машину на внешнем жестком диске и загрузите ее на другом компьютере.
Для Microsoft Hyper-V — только для Windows
Microsoft предлагает инструмент Disk2vhd — одну из множества полезных утилит SysInternals.Эта утилита преобразует работающую систему Windows в файл VHD (виртуальный жесткий диск) для использования в продуктах Microsoft для виртуальных машин, таких как инструмент виртуальной машины Hyper-V, включенный в профессиональные версии Windows 8 и 8.1.
Запустите этот инструмент в системе Windows, которую вы хотите преобразовать. Вы сможете выбрать, какие разделы и диски вы хотите включить в файл VHD. Он создаст копию работающей системы Windows в виде VHD-файла, и вы можете перенести этот VHD-файл на другой компьютер и запустить его в Hyper-V — преобразованная физическая система должна нормально загружаться, пока вы запускаете ее в Собственное программное обеспечение виртуальной машины Microsoft Hyper-V.
Для Parallels — Windows или Linux
Parallels предлагает собственный инструмент, известный как Parallels Transporter Agent. Эту утилиту можно установить как в Windows, так и в Linux, и она может преобразовать физическую систему в виртуальную машину для использования в приложении виртуальной машины Parallels для компьютеров Mac. Он может скопировать физическую машину в файл виртуальной машины Parallels на внешнем диске или перенести его на Mac с запущенным Parallels по локальной сети.
Загрузите приложение Parallels Transporter Agent с сайта Parallels и запустите его в своей системе Windows или Linux. Используйте мастер для переноса вашего текущего физического ПК на внешний жесткий диск или вашего Mac по сети, выбрав именно то, что превратит его в эту виртуальную машину.
Для VirtualBox — ручной метод
VirtualBox не предлагает простой графической утилиты для преобразования физической машины в виртуальную. Если вы чувствуете себя особенно авантюрным, они предлагают некоторые неподдерживаемые инструкции по преобразованию физического компьютера с Windows в виртуальную машину VirtualBox. Это требует некоторой настройки реестра и выключения компьютера. Затем вам придется вручную создать копию диска и преобразовать ее в файл VirtualBox VDI. Процесс преобразования виртуальной машины Linux должен быть примерно таким же, но без всех дополнительных настроек, необходимых для поведения Windows. Гораздо проще перемещать установки Linux между разными машинами с разной конфигурацией оборудования.
Этот процесс не для слабонервных, и мы включили его сюда только для полноты картины. Даже если вы уже используете VirtualBox, вы можете просто использовать утилиту VMware или Microsoft и попробовать VMware или Hyper-V. Если вы все еще готовы попробовать, посетите страницу MIgrate Windows в вики VirtualBox.
Если вы преобразуете ПК с Windows в виртуальную машину, помните, что у вас могут возникнуть проблемы с лицензированием. Активация Windows может определить, что она работает на другом компьютере, и вам, возможно, придется связаться с Microsoft, чтобы правильно активировать ее. Предполагается, что лицензии Windows одновременно используются только на одном компьютере.
- › Можно ли перенести установку Windows на другой компьютер?
- › Что означает XD и как вы его используете?
- › Почему не было Windows 9?
- › Почему прозрачные чехлы для телефонов желтеют?
- › Как установить Google Play Маркет в Windows 11
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
- › Как восстановить метки панели задач в Windows 11
Я часто использую VirtualBox для создания виртуальных машин для тестирования новых версий Fedora, новых прикладных программ и множества инструментов администрирования, таких как Ansible. Я даже использовал VirtualBox для проверки создания гостевого хоста Windows.
Я никогда не использовал Windows в качестве основной операционной системы ни на одном из моих персональных компьютеров или даже на виртуальной машине для выполнения каких-то малопонятных задач, которые невозможно выполнить в Linux. Однако я добровольно работаю в организации, которая использует одну финансовую программу, для которой требуется Windows. Эта программа работает на компьютере офис-менеджера с предустановленной Windows 10 Pro.
Это финансовое приложение не является особенным, и лучшая программа для Linux может легко заменить его, но я обнаружил, что многие бухгалтеры и казначеи крайне неохотно вносят изменения, поэтому мне пока не удалось убедить тех, кто в нашей организация для переноса.
Такое стечение обстоятельств, наряду с недавней угрозой безопасности, сделало крайне желательным преобразование хоста, работающего под управлением Windows, в Fedora и запуск Windows и программы учета на виртуальной машине на этом хосте.
Важно понимать, что я крайне не люблю Windows по нескольким причинам.Основные из них, применимые к этому случаю, заключаются в том, что мне не хотелось бы платить за другую лицензию Windows — Windows 10 Pro стоит около 200 долларов — для ее установки на новую виртуальную машину. Кроме того, Windows 10 требует достаточно информации при настройке в новой системе или после установки, чтобы взломщики могли украсть чью-либо личность в случае взлома базы данных Microsoft. Никто не должен указывать свое имя, номер телефона и дату рождения для регистрации программного обеспечения.
Начало работы
На физическом компьютере уже было установлено запоминающее устройство NVMe m.2 емкостью 240 ГБ в единственном доступном слоте m.2 на материнской плате. Я решил установить новый SATA SSD на хост и использовать существующий SSD с Windows в качестве устройства хранения для виртуальной машины Windows. На веб-сайте Kingston есть отличный обзор различных устройств SSD, форм-факторов и интерфейсов.
Дополнительные ресурсы по Linux
Этот подход означал, что мне не нужно было полностью переустанавливать Windows или какое-либо существующее прикладное программное обеспечение. Это также означало, что офис-менеджер, работающий на этом компьютере, будет использовать Linux для всех обычных действий, таких как электронная почта, доступ в Интернет, создание документов и электронных таблиц с помощью LibreOffice. Такой подход повышает профиль безопасности хоста. Виртуальная машина Windows будет использоваться только для запуска программы учета.
Сначала создайте резервную копию
Прежде чем делать что-либо еще, я создал резервную копию ISO-образа всего устройства хранения NVMe. Я создал раздел на внешнем USB-накопителе емкостью 500 ГБ, создал на нем файловую систему ext4, а затем смонтировал этот раздел в /mnt. Я использовал команду dd для создания образа.
Я установил новый твердотельный накопитель SATA емкостью 500 ГБ на хост и установил на него Fedora 32 Xfce с Live USB. При начальной перезагрузке после установки в меню загрузки GRUB2 были доступны диски Linux и Windows. На этом этапе хост может быть загружен с двойной загрузкой между Linux и Windows.
Ищу помощь во всех интернет-ресурсах
Теперь мне нужна была информация о создании виртуальной машины, которая использует физический жесткий диск или твердотельный накопитель в качестве устройства хранения. Я быстро обнаружил много информации о том, как это сделать, в документации VirtualBox и в Интернете в целом. Хотя документация VirtualBox помогла мне начать работу, она не является полной и не содержит важной информации. Большая часть другой информации, которую я нашел в Интернете, также весьма неполна.
Как заставить это работать
Эта процедура на самом деле довольно проста, хотя для ее работы требуется один тайный хак. К тому времени, когда я был готов к этому шагу, операционные системы Windows и Linux уже были установлены.
Сначала я установил самую последнюю версию VirtualBox на хосте Linux. VirtualBox можно установить из репозиториев программного обеспечения многих дистрибутивов, непосредственно из репозитория Oracle VirtualBox или загрузив нужный файл пакета с веб-сайта VirtualBox и установив его локально. Я решил загрузить версию AMD64, которая на самом деле является установщиком, а не пакетом. Я использую эту версию, чтобы обойти проблему, не связанную с этим конкретным проектом.
Процедура установки всегда создает группу vboxusers в /etc/group. Я добавил пользователей, предназначенных для запуска этой виртуальной машины, в группы vboxusers и disk в /etc/group. Важно добавить тех же пользователей в группу дисков, потому что VirtualBox работает от имени пользователя, который его запустил, а также требует прямого доступа к специальному файлу устройства /dev/sdx для работы в этом сценарии. Добавление пользователей в дисковую группу обеспечивает тот уровень доступа, которого в противном случае у них не было бы.
Затем я создал каталог для хранения виртуальных машин и предоставил ему права root.vboxusers и разрешения 775. Я использовал /vms для каталога, но это может быть что угодно. По умолчанию VirtualBox создает новые виртуальные машины в подкаталоге пользователя, создавшего виртуальную машину. Это сделало бы невозможным совместное использование виртуальной машины несколькими пользователями без создания серьезной уязвимости в системе безопасности. Размещение каталога ВМ в доступном месте позволяет совместно использовать ВМ.
Я запустил VirtualBox Manager как пользователь без полномочий root. Затем я использовал меню VirtualBox Preferences ==> General, чтобы установить папку машины по умолчанию в каталог /vms.
Я создал виртуальную машину без виртуального диска. Тип должен быть Windows, а версия должна быть установлена на Windows 10 64-bit. Установите разумный объем оперативной памяти для виртуальной машины, но его можно изменить позже, если виртуальная машина выключена. На странице установки «Жесткий диск» я выбрал «Не добавлять виртуальный жесткий диск» и нажал «Создать». Новая виртуальная машина появилась в окне VirtualBox Manager. Эта процедура также создала каталог /vms/Test1.
Я сделал это с помощью меню "Дополнительно" и выполнил все настройки на одной странице, как показано на рис. 1. В управляемом режиме предоставляется та же информация, но требуется больше щелчков мышью, чтобы просмотреть окно для каждого элемента конфигурации.Он предоставляет немного больше текста справки, но мне это не нужно.
Рисунок 1. Создайте новую виртуальную машину, но не добавляйте жесткий диск.
Затем мне нужно было узнать, какое устройство Linux назначило необработанному диску Windows. Как пользователь root в сеансе терминала используйте команду lshw, чтобы узнать назначение устройства для диска Windows. В этом случае устройство, представляющее все устройство хранения, — /dev/sdb.
Вместо виртуального запоминающего устройства, расположенного в каталоге /vms/Test1, VirtualBox должен иметь способ идентифицировать физический жесткий диск, с которого он должен загружаться. Эта идентификация выполняется путем создания файла *.vmdk, который указывает на необработанный физический диск, который будет использоваться в качестве устройства хранения для виртуальной машины. Как пользователь без полномочий root я создал файл vmdk, указывающий на все устройство Windows, /dev/sdb.
Затем я использовал диалоговое окно VirtualBox Manager File ==> Virtual Media Manager, чтобы добавить диск vmdk к доступным жестким дискам. Я нажал «Добавить», и в диалоговом окне управления файлами отобразилось расположение по умолчанию /vms. Я выбрал каталог Test1, а затем файл Test1.vmdk. Затем я нажал «Открыть», и файл Test1.vmdk отобразился в списке доступных жестких дисков. Я выбрал его и нажал «Закрыть».
Следующим шагом было добавление этого диска vmdk к устройствам хранения для нашей виртуальной машины. В меню настроек виртуальной машины Test1 я выбрал Storage и щелкнул значок, чтобы добавить жесткий диск. Откроется диалоговое окно, в котором файл виртуального диска Test1vmdk отображается в списке под названием «Не прикреплен». Я выбрал этот файл и нажал кнопку «Выбрать». Теперь это устройство отображается в списке устройств хранения, подключенных к виртуальной машине Test1. Единственным другим устройством хранения на этой ВМ является пустой привод CD/DVD-ROM.
Я нажал OK, чтобы завершить добавление этого устройства к виртуальной машине.
Прежде чем новая виртуальная машина заработает, нужно было настроить еще один элемент. Используя диалоговое окно «Настройки диспетчера VirtualBox» для виртуальной машины Test1, я перешел на страницу «Система ==> Материнская плата» и установил флажок «Включить EFI». Если вы этого не сделаете, VirtualBox выдаст ошибку о том, что не может найти загрузочный носитель при попытке загрузить эту виртуальную машину.
Теперь виртуальная машина загружается с чистого жесткого диска Windows 10. Однако я не мог войти в систему, потому что у меня не было обычной учетной записи в этой системе, а также у меня не было доступа к паролю для учетной записи администратора Windows.
Разблокировка диска
Нет, этот раздел не о взломе шифрования жесткого диска. Скорее речь идет об обходе пароля одной из многочисленных учетных записей администратора Windows, которого ни у кого в организации не было.
Несмотря на то, что я мог загрузить виртуальную машину Windows, я не мог войти в систему, потому что у меня не было учетной записи на этом хосте, а спрашивать у людей их пароли — ужасное нарушение безопасности. Тем не менее, мне нужно было войти в виртуальную машину, чтобы установить гостевые дополнения VirtualBox, которые обеспечили бы плавный захват и освобождение указателя мыши, позволили бы мне изменить размер виртуальной машины, чтобы она была больше 1024x768, и выполнять обычное обслуживание в будущем.< /p>
Это идеальный вариант использования возможностей Linux для изменения паролей пользователей. Несмотря на то, что я захожу для начала под учетной записью предыдущего администратора, в этом случае он больше не будет поддерживать эту систему, и я не смогу распознать его пароль или шаблоны, которые он использует для их создания. Я просто удалю пароль предыдущего системного администратора.
Для этой задачи существует очень хороший программный инструмент с открытым исходным кодом. На хосте Linux я установил chntpw, что, вероятно, означает что-то вроде «Изменить пароль NT».
Я выключил виртуальную машину, а затем смонтировал раздел /dev/sdb3 на /mnt. Я определил, что /dev/sdb3 является правильным разделом, потому что это первый большой раздел NTFS, который я увидел в выходных данных команды lshw, которую я выполнил ранее. Не монтируйте раздел во время работы виртуальной машины; это может привести к значительному повреждению данных на устройстве хранения ВМ. Обратите внимание, что правильный раздел может отличаться на других хостах.
Перейдите в каталог /mnt/Windows/System32/config. Утилита chntpw не работает, если это не текущий рабочий каталог (PWD). Запустите программу.
Команда chntpw использует TUI (текстовый пользовательский интерфейс), который предоставляет набор параметров меню. При выборе одного из пунктов основного меню обычно отображается дополнительное меню. Следуя четким названиям меню, я сначала выбрал пункт меню 1.
Затем я выбрал нашу учетную запись администратора, john, введя RID в командной строке. Здесь отображается информация о пользователе и предлагаются дополнительные пункты меню для управления учетной записью.
На этом этапе я выбрал пункт меню 2 "Разблокировать и активировать учетную запись пользователя", который удаляет пароль и позволяет мне войти в систему без пароля. Кстати — это автоматический вход. Затем я вышел из программы. Перед продолжением обязательно размонтируйте /mnt.
Знаю, знаю, но почему бы и нет! Я уже обошел защиту на этом диске и хосте, так что это не имеет значения ни на йоту. В этот момент я вошел в старую административную учетную запись и создал для себя новую учетную запись с безопасным паролем. Затем я вошел в систему как я и удалил старую учетную запись администратора, чтобы никто другой не мог ее использовать.
В Интернете также есть инструкции по использованию учетной записи администратора Windows (01f4 в списке выше). Я мог бы удалить или изменить пароль для этой учетной записи, если бы не было учетной записи администратора организации. Также обратите внимание, что эту процедуру можно выполнить с работающего USB-накопителя, работающего на целевом хосте.
Повторная активация Windows
Теперь у меня был Windows SSD, работающий как виртуальная машина на моем хосте Fedora. Однако, как ни печально, после нескольких часов работы Windows отобразила предупреждающее сообщение, указывающее, что мне нужно «Активировать Windows».
После того, как я просмотрел еще много тупиковых веб-страниц, я, наконец, отказался от попыток повторной активации с использованием существующего кода, потому что он каким-то образом был уничтожен. Наконец, при попытке подписаться на один из сеансов виртуального чата онлайн-поддержки виртуальное приложение «Получить помощь» указало, что мой экземпляр Windows 10 Pro уже активирован. Как это может быть? Он все время хотел, чтобы я активировал его, но когда я попытался, он сказал, что он уже активирован.
Или нет
К тому времени, когда я провел несколько часов в течение трех дней, исследуя и экспериментируя, я решил вернуться к загрузке исходного SSD в Windows и вернуться к этому позже. Но затем Windows — даже при загрузке с оригинального накопителя — потребовала повторной активации.
Поиск на сайте поддержки Microsoft не помог. После того, как мне пришлось возиться с той же автоматической поддержкой, что и раньше, я позвонил по указанному номеру телефона только для того, чтобы автоматическая система ответов сообщила, что вся поддержка Windows 10 Pro предоставляется только через Интернет. К настоящему времени я почти на день опоздал с запуском компьютера и его установкой в офисе.
Назад в будущее
В конце концов я смирился с этим, купил копию Windows 10 Домашняя примерно за 120 долларов США и создал виртуальную машину с виртуальным запоминающим устройством для ее установки.
Я скопировал большое количество файлов документов и электронных таблиц в домашний каталог офис-менеджера. Я переустановил единственную программу для Windows, которая нам нужна, и проверил у офис-менеджера, что она работает и все данные есть.
Заключительные мысли
Итак, моя цель была достигнута, буквально на день позже и примерно на 120 долларов меньше, но с использованием более стандартного подхода. Я все еще вношу некоторые изменения в разрешения и восстанавливаю адресную книгу Thunderbird; У меня есть несколько резервных копий CSV для работы, но файлы *.mab содержат очень мало информации на диске Windows. Я даже использовал команду find в Linux, чтобы найти все файлы на исходном устройстве хранения.
Я провалился в несколько кроличьих нор, и каждый раз мне приходилось извлекать себя и начинать заново. Я столкнулся с проблемами, которые не имели прямого отношения к этому проекту, но повлияли на мою работу над ним. Эти проблемы включали интересные вещи, такие как монтирование раздела Windows в /mnt на моем компьютере с Linux и получение сообщения о том, что раздел был неправильно закрыт Windows (да, на моем хосте Linux) и что он устранил несоответствие. Даже Windows не могла этого сделать после нескольких перезагрузок в так называемом режиме «восстановления».
Возможно, вы заметили некоторые подсказки в выходных данных утилиты chntpw. Я вырезал некоторые другие учетные записи пользователей, которые отображались на моем хосте, из соображений безопасности, но я увидел из этой информации, что все пользователи были администраторами. Излишне говорить, что я изменил это. Я до сих пор удивляюсь плохой административной практике, с которой сталкиваюсь, но, думаю, не следует.
В конце концов мне пришлось купить лицензию, но хотя бы немного дешевле, чем оригинал. Одна вещь, которую я знаю, это то, что часть этого Linux работала отлично, как только я нашел всю необходимую информацию. Проблема была связана с активацией Windows. Некоторым из вас, возможно, удалось повторно активировать Windows. Если да, то мне все равно хотелось бы узнать, как вы это сделали, поэтому поделитесь своим опытом в комментариях.
Это еще одна причина, по которой я не люблю Windows и использую только Linux в своих системах. Это также одна из причин, по которой я перевожу все компьютеры организации на Linux. Просто нужно время и убедительность. У нас осталась только эта бухгалтерская программа, и мне нужно поработать с казначеем, чтобы найти ту, которая подойдет ей.Я понимаю это — мне нравятся мои собственные инструменты, и мне нужно, чтобы они работали так, как лучше для меня.
Читайте также: