Перенос linux с виртуальной машины на реальную

Обновлено: 03.07.2024

Возможно ли / возможно переносить установку виртуальной машины Ubuntu на физическую машину? Если это возможно, насколько это сложно выполнить и какие шаги мне потребуется предпринять для подготовки к миграции.

Я бы хотел провести некоторое тестирование на виртуальной машине, и если это будет выполнено, выполните миграцию этой системы на физическое оборудование, а не переустанавливать все. Возможно ли это?

4 ответа

Возможно, это не совсем то, о чем вы просите, но он может выполнить то, что вы хотите сделать.

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

Вы можете использовать действительно опрятную программу резервного копирования под названием Déjà Dup.

Информация из программного центра ubuntu:

Déjà Dup - простой инструмент резервного копирования.

Поддержка локальных, удаленных или неактивных облачные хранилища резервных копий, такие как Amazon S3 или облачные файлы Rackspace. Безопасное шифрование и сжатие ваших данных. Постепенное резервное копирование, позволяющее восстанавливать из любой конкретной резервной копии. Регулярные резервные копии расписаний. Интеграция в ваш рабочий стол GNOME

Вы сделаете это менее чем за два часа!

Звучит просто. Может ли s / o подтвердить, что это действительно работает? – Mateng 23 August 2013 в 19:53

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

Процедура описана ниже .

Поскольку у вас есть файл vmdk, у вас может быть рабочая станция VMWare, даже полная виртуальная машина, к которой подключен vmdk. Запустите свою виртуальную машину с помощью этого конкретного vmdk, но вместо обычной загрузки используйте PartedMagic liveCD для загрузки.

Когда запускается liveCD, перейдите в главное меню и найдите UDPCast Disk Cloning. Его диалоги не требуют пояснений (см. Снимок экрана) UDPCast

После выбора этой виртуальной машины в качестве sender вы должны выбрать, какой диск вы хотите транслировать (используя Unix нотация, например / dev / sda).

После того, как вы запустили sender, вам также нужно запустить receiver. Поскольку у вас есть физический hdd, я предполагаю, у вас также есть полный компьютер с этим hdd, прикрепленным к нему. То же самое и здесь: вам нужно запустить liveCD с UDPCast Disk Cloning, выбрав receiver на этот раз, а также соответствующий физический hdd.

Стоит отметить, что вы должны сделать все необходимые меры для обеспечения сетевого подключения между вашим Виртуальная машина и физическое оборудование. Вы должны принять необходимые меры предосторожности, если ваш vmdk содержит личные данные, поскольку его содержимое будет эффективно передаваться по вашей сети. Другое дело, что ваш целевой hdd должен иметь не менее емкость памяти, чем емкость вашего vmdk. Это очевидно, но также стоит отметить, что ваш образ выложен индивидуально на целевом hdd, и вам нужно выполнить соответствующие операции с gparted или т. П., Чтобы использовать большую емкость вашего нового hdd.

Возможно ли / возможно ли выполнить установку виртуальной машины Ubuntu на физическую машину? Если возможно, насколько сложно это будет выполнить и какие шаги мне нужно предпринять, чтобы подготовиться к миграции.

Я хотел бы провести некоторое тестирование на виртуальной машине и, если она сработает, перенести эту систему на физическое оборудование вместо переустановки всего. Это возможно?

Да, это возможно. Это даже не что трудно, он просто занимает некоторое время, в Ubuntu LiveCD, липкие обратно-пластик, и внешний USB - диск (если вы не имеете более одного внутренних дисков).

Предварительный шаг: преобразовать диск во что-нибудь полезное

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

Загрузите терминал и запустите:

Переместитесь /media/wherever-the-image-is/disk.img туда, куда вы не собираетесь писать. Если вы планируете записать его на тот диск, на котором он в данный момент находится, вам нужно поместить его на отдельный внутренний диск или, в худшем случае, на внешний диск.

Следующие инструкции предполагают, что вы переместили его /media/dave/disk.img ( dave это внешний USB-диск)

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

Запишите образ на свой собственный диск

Вы хотите сделать что-то вроде этого. Это предполагает, что вы собираетесь перезаписать весь диск. Если вы хотите выполнить установку вместе с Windows, не следуйте этим инструкциям! Пропустить после пуль.

Загрузитесь с Ubuntu Live CD и нажмите «Попробовать Ubuntu».

Смонтируйте место, где хранится образ vmdk (например, внешний USB-диск как /media/dave ). Вы не установите место , где вы хотите написать.

Тогда мы идем на работу:

Вы хотите заменить sdX правильный путь к целевому диску. sudo Пустой пароль, просто нажмите кнопку возврата.

Затем вы можете открыть gparted или что-то еще, и вы должны увидеть свой раздел Ubuntu, сидящий на диске. Вы должны быть в состоянии расширить его.

Запишите образ на диск вместе с другой операционной системой

Это, возможно, совершенно безопасный способ ведения дел. Идея очень похожа, за исключением того, что вы делаете правильную установку Ubuntu, а затем просто синхронизируете файлы из disk.img .

На этот раз ваш LiveCD должен быть той же версией Ubuntu, что и ваша виртуальная установка. Загрузитесь с Live CD и снова нажмите «Установить».

Следуйте инструкциям установщика, переделайте вещи так, как считаете нужным. Примерно через 10 минут вы будете установлены, и он попросит вас перезагрузиться. Не перезагружайся. Не имеет значения, случайно ли вы это сделали, просто убедитесь, что вы вернулись в LiveCD для следующих инструкций.

Смонтируйте раздел новой установки и внешний диск, на котором вы сохранили disk.img ранее (просто дважды щелкните их в nautilus).

Смонтируйте ваш disk.img ISO в терминал:

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

«Подпись NTFS отсутствует. Не удалось смонтировать '/ dev / loop0': неверный аргумент. У устройства '/ dev / loop0', похоже, нет действительной NTFS."

Итак, если вы определили, что смещение равно «xxx», вы можете смонтировать раздел с помощью

Оттуда вы можете либо выбрать файлы Cherry-Pick, либо просто скопировать все поверх вашей новой установки Ubuntu, используя что-то вроде:

Вы знаете инструмент, который делает это автоматически? Для установок в Windows / VirtualBox VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdX команда все равно будет работать. Все, что нужно, это перейти на CD Program Files\Oracle\VirtualBox перед запуском первой команды. @ Я сомневаюсь, что /dev/sdX это правильная цель в Windows. AFAIK это будет \\Device\Harddisk0 или что-то вроде этого. VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdX не работает В Linux это дает ошибку: VBoxManage: error: Cannot create destination file "/dev/sdX": VERR_ALREADY_EXISTS . Необходимо VBoxManage сначала использовать команду для отправки изображения. Затем используйте DD, чтобы поместить образ на физический диск.

Может быть, это не совсем то, что вы просите, но это может выполнить то, что вы хотите сделать.

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

Вы можете использовать действительно аккуратную программу резервного копирования под названием Déjà Dup .

Информация от программного центра Ubuntu:

Déjà Dup - это простой инструмент для резервного копирования. Он скрывает сложность резервного копирования «Правильный путь» (зашифрованный, удаленный и обычный) и использует дублирование в качестве бэкэнда.

Поддержка локальных, удаленных или облачных резервных копий, таких как Amazon S3 или Rackspace Cloud Files

Надежно шифрует и сжимает ваши данные

Инкрементное резервное копирование, позволяющее восстанавливать из любой конкретной резервной копии

Графики регулярного резервного копирования

Хорошо интегрируется в ваш рабочий стол GNOME

введите описание изображения здесь

Вы будете сделаны менее чем за два часа!

Звучит просто. Можно ли подтвердить, что это действительно так работает? среди прочего . UID (номера пользователей) может быть другим в тот момент.

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

Процедура изложена ниже.

Поскольку у вас есть файл vmdk, в вашем распоряжении может быть рабочая станция VMWare, даже полная виртуальная машина, к которой подключен vmdk. Запустите вашу виртуальную машину с этим конкретным подключенным vmdk, но вместо обычной загрузки используйте PartedMagic liveCD для загрузки.

Начальный экран UDPCast Disk Cloning

Когда LiveCD запущен, перейдите в главное меню и найдите UDPCast Disk Cloning . Его диалоги не требуют пояснений (см. Скриншот)

После выбора этой виртуальной машины sender вы должны выбрать, какой диск вы хотите транслировать (используя нотацию Unix, например / dev / sda).

После того, как вы начали sender , вам также нужно начать receiver . Поскольку у вас есть физический жесткий диск, я полагаю, у вас также есть полный компьютер с этим жестким диском. То же самое и здесь: вам нужно запустить liveCD, UDPCast Disk Cloning выбрав receiver это время и соответствующий физический жесткий диск.

Стоит отметить, что вы должны принять все необходимые меры для обеспечения сетевого подключения между вашей виртуальной машиной и физическим оборудованием. Вы должны принять необходимые меры предосторожности, если ваш vmdk содержит личные данные, поскольку его содержимое будет эффективно передаваться по вашей сети. Другое дело, что ваш целевой жесткий диск должен иметь не меньшую емкость, чем емкость вашего vmdk. Это очевидно, но также стоит отметить, что ваше изображение размещено один на один на целевом жестком диске, и вам необходимо выполнить подходящие операции с gparted или чем-то подобным, чтобы использовать большую емкость нового жесткого диска.

Если мне хочется побыстрее установить на компьютер какой-либо дистрибутив GNU/Linux, хорошим способом для этого может быть установка его в виртуальной машине с последующим преобразованием виртуального компьютера в реальный путем копирования виртуального диска на физический жесткий диск (этот процесс, в противоположность виртуализации, можно назвать "реализацией").
Вы можете использовать виртуальный диск как шаблон для быстрого и простого развертывания системы на нескольких компьютерах. У меня имеется целый набор шаблонов для различных конфигураций, например для десктопов и серверов, для 32 и 64-битных машин, для различных дистрибутивов Linux. Все они готовы к установке в любой момент. В этой заметке приведен мой рецепт для конвертирования виртуального компьютера в реальный. Я работал с дистрибутивами Debian 4 и 5 (серверы и десктопы) и floppyfw (маршрутизаторы и брандмауэры). Этот метод должен работать с большинством (если не со всеми) дистрибутивами Linux. Для создания виртуальных машин я применял VirtualBox, но любое другое решение для виртуализации (VMware, QEMU, Parallels и т.д.) также должно подойти. Я ни в коем случае не гарантирую успеха - используйте этот метод на свой страх и риск!

Создание виртуальной машины

Я предполагаю, что вы уже знаете, как создать виртуальную машину и установить в ней GNU/Linux, поэтому не буду подробно описывать этот процесс. Обычно я создаю виртуальный компьютер с небольшим жестким диском, вся файловая система расположена на первом разделе. Если необходимы дополнительные разделы для /home, /var и т.д., я предпочитаю создавать их позже, на реальной машине, что будет описано ниже. Для десктопов и серверов достаточно виртуального диска размером около 8 Гб.
Установите GNU/Linux и все необходимые приложения в виртуальной машине, а также произведите все необходимые вам настройки.

Очистка (необязательно)

Размер сжатого виртуального диска можно уменьшить, если удалить ненужные файлы и свободное пространство на диске. В Debian вы можете значительно увеличить свободное место, очистив кэш загруженных программных пакетов с помощью команды:

Теперь посмотрим, сколько у нас свободного пространства на диске:

В приведенном примере размер свободного пространства составляет 3577324 блоков (каждый по 1 Кб).
Чтобы удалить свободное пространство, создадим файл, заполненный нулями, размером немного меньше размера свободного пространства. Для верности, чтобы избежать ошибок, примем его размер равным 3577324 - 1000 = 3576324 блоков:

Теперь удалим этот файл:

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

Копирование виртуального диска в файл

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

Мы хотим скопировать все с начала диска до конца первого раздела, т.е. первый 931 цилиндр. Находим количество блоков размером по 512 байт, которые необходимо скопировать: 931 * 16065 = 14956515. Приведенная ниже команда копирует данные в сжатый файл.

здесь template.bin.gz - сжатый файл с данными, /mnt/nfs - расшаренная директория, в которой я его сохраняю. Разумеется, директория может быть любой.

Копирование файла на физический жесткий диск

Загрузите физический компьютер с GNU/Linux. Я использовал USB-флешку с установленным на ней Debian, но подойдет любой GNU/Linux live CD. Для того, чтобы получить доступ к файлу, содержащему данные для жесткого диска (в моем случае template.bin.gz), необходимо подключиться к сетевой папке, в которой он находится, либо скопировать его на любой носитель.
Копируем данные на жесткий диск:

В вашем случае замените "/mnt/nfs" на путь к директории, в которой у вас лежит файл с данными. Кроме того, замените /dev/hda на свой жесткий диск (например, это может быть /dev/sda)/

Разбиение диска

Теперь жесткий диск имеет точно такую же таблицу разделов, как виртуальный диск. Если вы хотите, чтобы разделы реального жесткого диска имели точно такой же размер, как на виртуальном диске, то можете пропустить следующие разделы до настройки имени хоста и сети. Однако обычно физический диск имеет намного больший размер, чем виртуальный, и если вы хотите использовать имеющееся свободное место, например для расширения раздела подкачки или увеличения пространства под домашнюю директорию, читайте дальше.
Используем fdisk или любой его аналог для редактирования таблицы разделов жесткого диска (в моем случае /dev/hda).
Я обычно удаляю все существующие разделы, за исключением первого (/dev/hda1). Затем я создаю раздел подкачки на 2 Гб (/dev/hda2), а оставшееся место использую для создания большого раздела под /home (вместо этого можно создать отдельные разделы под /home и /var). Сохраните изменения и выйдите из fdisk.
Ниже приведено разбиение для моего жесткого диска на 400 Гб.

Форматируем второй раздел для подкачки:

Обычно я форматирую раздел /home в файловую систему ext3:

Перемещение домашних директорий

Смонтируйте первый и третий разделы ("/" и "/home" соответственно):

Переместите домашние директории с /dev/hda1 на /dev/hda3:

Редактируем fstab

Отредактируйте /mnt/hda1/etc/fstab, чтобы отразить тот факт, что /home у нас теперь находится на отдельном разделе. Ниже мой отредактированный fstab:

Имя хоста и настройки сети

Выключите компьютер и удалите флешку или CD. Снова включите компьютер. Если все прошло удачно,вы увидите реальную версию вашей виртуальной машины.


Итак, нужно было перенести виртуальную, предварительно настроенную и оттестированную Ubuntu 16.04 из Hyper-V на физический машину. Опасался "подводных камней", с которыми столкнулся при обратном переносе, отличие - ОС была Windows. Оказалось, всё прозрачно.

Последовательность переноса

Первое что нужно - выключить виртуальную машину и скопировать vhd-шник.

Второе - открутить диск от физической машины и подцепить к машине, на которой будет выполняться перенос. Для подобных операций очень рекомендую купить USB док-станцию. У меня вот такая и очень ей доволен, удобно:

Перенос виртуальной машины на физическую

Далее, для переноса воспользовался программой Vhd2Disk

Программа абсолютно проста и настолько же эффективна. Посмотреть соответствие дисков можно в Управление дисками:

Перенос виртуальной машины на физическую

Перенос 5Gb прошел менее чем за 10 минут без всяких проблем. После загрузки оказалось только, что сетевой интерфейс стал вместо eth0 - eno1. Почему так происходит почитать можно здесь. Поэтому данный интерфейс не был автоматически включен. Команда ifconfig выводит только активные интерфейсы. Посмотреть все интерфейсы, включая отключенные:

Настроить новый сетевой интерфейс на автостарт:

Настройка на DHCP:

Настройка на статику:

Тут же, если что, можно прикрутить статический маршрут:

В зависимости от того, как указан способ достижения сети назначения, создаётся один из трёх возможных типов маршрута:

  • Маршрут следующего перехода — указывается только IP адрес следующего перехода;
  • Напрямую подключённый статический маршрут — указывается только выходной интерфейс;
  • Полностью заданный статический маршрут — указываются IP адрес следующего перехода и выходной интерфейс.

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

Ну и до кучи - посмотреть список маршрутов:

Посмотреть список оборудования:

Посмотреть информацию о процессоре:

Раньше использовал VirtualBox для полигона и экспериментов, теперь всё проще - Hyper-V встроен в Windows 10 Pro и есть простой инструмент для переноса.

Читайте также: