Перенос linux с виртуальной машины на реальную
Перенос виртуальной машины на физический жесткий диск
Создание виртуальной машины
Я предполагаю, что вы уже знаете, как создать виртуальную машину и установить в ней GNU/Linux, поэтому не буду подробно описывать этот процесс. Обычно я создаю виртуальный компьютер с небольшим жестким диском, вся файловая система расположена на первом разделе. Если необходимы дополнительные разделы для /home, /var и т.д., я предпочитаю создавать их позже, на реальной машине, что будет описано ниже. Для десктопов и серверов достаточно виртуального диска размером около 8 Гб.
Установите GNU/Linux и все необходимые приложения в виртуальной машине, а также произведите все необходимые вам настройки.
Очистка (необязательно)
Размер сжатого виртуального диска можно уменьшить, если удалить ненужные файлы и свободное пространство на диске. В Debian вы можете значительно увеличить свободное место, очистив кэш загруженных программных пакетов с помощью команды:
Теперь посмотрим, сколько у нас свободного пространства на диске:
Теперь удалим этот файл:
Чтобы автоматизировать вышеописанный процесс, можно использовать скрипт, который сам определяет размер свободного пространства и удаляет его:
Копирование виртуального диска в файл
Мы хотим извлечь данные из виртуального диска в таком виде, чтобы они были пригодны для копирования на физический диск. Для этого я подключил виртуальный диск вторым диском к другой виртуальной машине. Запустите эту виртуальную машину и просмотрите таблицу разделов второго диска.
Мы хотим скопировать все с начала диска до конца первого раздела, т.е. первый 931 цилиндр. Находим количество блоков размером по 512 байт, которые необходимо скопировать: 931 * 16065 = 14956515. Приведенная ниже команда копирует данные в сжатый файл.
Копирование файла на физический жесткий диск
Загрузите физический компьютер с 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:
Имя хоста и настройки сети
Описываемые ниже настройки относятся к Debian 5. Для других систем возможно необходимо будет редактировать другие файлы, расположенные в других местах. Если вы хотите, чтобы реальная система имела другое имя хоста, отличное от имевшегося у виртуальной машины, отредактируйте файл /mnt/hda1/etc/hostname, заменив в нем имя хоста.
Сетевой интерфейс может получить имя, отличное от имевшегося в виртуальной машине, например «eth1» вместо «eth0». Чтобы избежать этого, например, если вы настраивали сеть вручную, отредактируйте файл /mnt/hda1/etc/udev/rules.d/70-persistent-net.rules и удалите строку, которая относится к существующему сетевому интерфейсу. Если вам необходимо изменить настройки сети, редактируйте файл /mnt/hda1/etc/network/interfaces.
Выключите компьютер и удалите флешку или CD. Снова включите компьютер. Если все прошло удачно,вы увидите реальную версию вашей виртуальной машины.
Миграция с виртуальной машины (ВМ) на физическую систему
Возможно ли / возможно ли выполнить установку виртуальной машины Ubuntu на физическую машину? Если возможно, насколько сложно это будет выполнить и какие шаги мне нужно предпринять, чтобы подготовиться к миграции.
Я хотел бы провести некоторое тестирование на виртуальной машине и, если она сработает, перенести эту систему на физическое оборудование вместо переустановки всего. Это возможно?
Предварительный шаг: преобразовать диск во что-нибудь полезное
И VMWare, и VirtualBox (среди прочих) используют форматы дисков, которые плохо поддаются записи непосредственно на диск. Вы можете, но я лично чувствую, что сначала удобнее написать его в промежуточный стандартный образ. Вы можете сделать это из вашей текущей системы, не загружаясь с LiveCD.
Загрузите терминал и запустите:
Переместитесь /media/wherever-the-image-is/disk.img туда, куда вы не собираетесь писать. Если вы планируете записать его на тот диск, на котором он в данный момент находится, вам нужно поместить его на отдельный внутренний диск или, в худшем случае, на внешний диск.
Следующие инструкции предполагают, что вы переместили его /media/dave/disk.img ( dave это внешний USB-диск)
Запишите образ на свой собственный диск
Вы хотите сделать что-то вроде этого. Это предполагает, что вы собираетесь перезаписать весь диск. Если вы хотите выполнить установку вместе с Windows, не следуйте этим инструкциям! Пропустить после пуль.
Загрузитесь с Ubuntu Live CD и нажмите «Попробовать Ubuntu».
Тогда мы идем на работу:
Вы хотите заменить sdX правильный путь к целевому диску. sudo Пустой пароль, просто нажмите кнопку возврата.
Затем вы можете открыть gparted или что-то еще, и вы должны увидеть свой раздел Ubuntu, сидящий на диске. Вы должны быть в состоянии расширить его.
Запишите образ на диск вместе с другой операционной системой
На этот раз ваш LiveCD должен быть той же версией Ubuntu, что и ваша виртуальная установка. Загрузитесь с Live CD и снова нажмите «Установить».
Следуйте инструкциям установщика, переделайте вещи так, как считаете нужным. Примерно через 10 минут вы будете установлены, и он попросит вас перезагрузиться. Не перезагружайся. Не имеет значения, случайно ли вы это сделали, просто убедитесь, что вы вернулись в LiveCD для следующих инструкций.
Смонтируйте раздел новой установки и внешний диск, на котором вы сохранили disk.img ранее (просто дважды щелкните их в nautilus).
Смонтируйте ваш disk.img ISO в терминал:
«Подпись NTFS отсутствует. Не удалось смонтировать ‘/ dev / loop0’: неверный аргумент. У устройства ‘/ dev / loop0’, похоже, нет действительной NTFS.»
Итак, если вы определили, что смещение равно «xxx», вы можете смонтировать раздел с помощью
Оттуда вы можете либо выбрать файлы Cherry-Pick, либо просто скопировать все поверх вашей новой установки Ubuntu, используя что-то вроде:
Может быть, это не совсем то, что вы просите, но это может выполнить то, что вы хотите сделать.
Поскольку все ваши настройки хранятся в вашем домашнем каталоге, вы можете просто сделать его резервную копию в другом разделе на реальном диске. После того, как вы установили свежую Ubuntu на реальный диск, просто запустите программу резервного копирования еще раз, чтобы восстановить домашний каталог со всеми настройками без изменений.
Информация от программного центра Ubuntu:
Поддержка локальных, удаленных или облачных резервных копий, таких как Amazon S3 или Rackspace Cloud Files
Надежно шифрует и сжимает ваши данные
Инкрементное резервное копирование, позволяющее восстанавливать из любой конкретной резервной копии
Графики регулярного резервного копирования
Хорошо интегрируется в ваш рабочий стол GNOME
Вы будете сделаны менее чем за два часа!
Идея состоит в том, чтобы передать весь ваш vmdk из его виртуальной машины на физическую машину, где он будет записан на физический жесткий диск.
Процедура изложена ниже.
Поскольку у вас есть файл vmdk, в вашем распоряжении может быть рабочая станция VMWare, даже полная виртуальная машина, к которой подключен vmdk. Запустите вашу виртуальную машину с этим конкретным подключенным vmdk, но вместо обычной загрузки используйте PartedMagic liveCD для загрузки.
После выбора этой виртуальной машины sender вы должны выбрать, какой диск вы хотите транслировать (используя нотацию Unix, например / dev / sda).
Стоит отметить, что вы должны принять все необходимые меры для обеспечения сетевого подключения между вашей виртуальной машиной и физическим оборудованием. Вы должны принять необходимые меры предосторожности, если ваш vmdk содержит личные данные, поскольку его содержимое будет эффективно передаваться по вашей сети. Другое дело, что ваш целевой жесткий диск должен иметь не меньшую емкость, чем емкость вашего vmdk. Это очевидно, но также стоит отметить, что ваше изображение размещено один на один на целевом жестком диске, и вам необходимо выполнить подходящие операции с gparted или чем-то подобным, чтобы использовать большую емкость нового жесткого диска.
Перенос виртуальной машины на реальное железо
Всем доброго времени суток!
Вопрос, возможно, глупый, но всё же:
Есть полностью сконфигурированная ВМ, созданная в Virtualbox 4.1.6
Задача — перенести её на реальное железо, причем, желательно, с использованием флэш-накопителя.
Насколько я понимаю, пошагово это будет выглядеть как — создать образ харда виртуалки, записать его вместе с загрузчиком на флэшку, после чего развернуть этот образ на хард реального компа.
Если ход мыслей верен — прошу расписать каждый шаг и ПО, необходимое для реализации (или отослать к руководствам, если таковые имеются =) ), если же неверен — опять-таки, наставить на путь истинный.
Заранее благодарен за любую помощь! =)
Способов переноса может быть несколько:
1. Как уже посоветовали dd, загрузившись с Livecd, смонтировать приёмник в /mnt и дать команды:
2. Запаковать в архив целиком систему, только Linux / BSD, агрузиться с Livecd, смонтировать файловые системы в той последовательности, в которой они должны быть подключены, согласно /etc/fstab, к примеру в /mnt/system, в /mnt/backup смонтировать приёмник:
3. Вариант, воспользоваться специальным ПО, правда платным, Acronis True Image Home Edition (bootcd можно найти в internet бесплатно.) Создать образ целиком диска и сохранить к примеру на флешку, правда будет долго писаться (флешка медленная). Затем загрузиться с диска с Acronis`ом на новом ПК и развернуть образ диска с флешки, загрузчик восстанавливать не придётся.
Но это всё достаточно сложные варианты, т.к. вы просите всё сделать с помощью флешки, проще подключить жёсткий диск того компьютера, на который вы хотите перенести вашу виртуальну машину к компьютеру, где у вас установлен Virtualbox, пробросить его в виртуальную машину и скопировать систему прямо на него, проще это выполнить всё тем же Acronis`ом, режим клонирование диска / перенос системы. Он так же вам позволит указать другие размеры разделов и правильно увеличит файловые системы, так же не нужно будет переустанавливать загрузчик, да и скорость копирования будет выше за счёт того что вы пишете на жёсткий диск и Acronis не копирует пустое место диска как в случе с dd.
Для того, что бы пробросить реальный жёстки диск в Virtualbox нужно сначала создать (сопоставить ему) файл vmdk.
Грузитесь с bootcd Acronis True Image Home Edition и осществляете клонирование диска. Затем выключаете виртуальную машину, выключаете компьютер и подключаете диск к целевому компьютеру.
После чего, запись получившегося образа на реальный хард с помощью dd, как мне тут и посоветовали =)
Осталось взять knoppix и из под него развернуть образ. большое спасибо всем отозвавшимся! =)
>Насколько я понимаю, пошагово это будет выглядеть как — создать образ харда виртуалки, записать его вместе с загрузчиком на флэшку, после чего развернуть этот образ на хард реального компа.
просто сделайте tar-ом архивы разделов (всех, кроме каталогов /sys, /proc, /mnt, /media, их потом создать надо ручками), затем растарьте на целевой системе. Ну а загрузчик заново надо прописать (для lilo просто chroot && /sbin/lilo)
dd плохо тем, что диск(раздел) в 100Гб она копирует _только_ в диск(раздел) в 100Гб.
tar-ом быстрее обычно (если использовать tar cz)
Сначала удалите дополнения для виртуальной машины, перенесите диск целиком с помощью dd, подгоните размер разделов после переноса. Может возникнуть необходимость chroot-нуться в перенесённую систему и переустановить GRUB2.
>dd плохо тем, что диск(раздел) в 100Гб она копирует _только_ в диск(раздел) в 100Гб.
Т.е. вот это: «затем на новом диске реального ПК создать таблицу разделов с такими же по размеру разделами, или чуть большими, главное что не меньшими и развернуть всё тем же dd.» лютое 4.2?
Нет. Разве что после развёртывания нужно fsck сделать, чтобы сохранить в ФС информацию о новом размере раздела.
Можно создать новую виртуалку с реальным накопителем, накатить на нее весь нужный софт. Потом подмонтировать к этой виртуалке образ от настроенной виртуалки, скопировать все конфиги, хомяки и что там еще настраивалось. Впихнуть все нужные модули в рамдиск и поправить конфиг grub по необходимости.
>Т.е. вот это: «затем на новом диске реального ПК создать таблицу разделов с такими же по размеру разделами, или чуть большими, главное что не меньшими и развернуть всё тем же dd.» лютое 4.2?
А если вы хотите перенести раздел в 100Гб на раздел в 200Гб, то проще воспользоваться cp или лучше tar’ом.
Беда в том, что dd слишком тупая, и переносит всё AS IS.
>Нет. Разве что после развёртывания нужно fsck сделать, чтобы сохранить в ФС информацию о новом размере раздела.
тут resize надо делать, а не fsck. А это может привести к потере всех данных.
а вы проверяли? fsck посмотрит в таблицу разделов, где записано, что там 160Гб, а не 80? Ведь в самой FS записано что 80.
О какой потере данных может идти речь, если данные перенесены на новый диск откуда-то (с диска-источника или файла-образа), где точно остаётся их копия?
угу. С образа VM, который на том-же диске 🙂
В любом случае с dd слишком много геморроя на пустом месте. С помощью tar или cp перенести систему гораздо проще и быстрее.
dd удобнее для переноса нескольких разделов. А их обычно как раз несколько.
Сделай несколько разделов, подмонтируй в один корень, а потом tar/cp. Всё равно будет _проще_ и _быстрее_.
Чудесно, только как всё это относится к переносу виртуальной машины на железо?
Размеры физического диска и виртуального не совпадают с вероятностью 99.99999%. Поэтому делаем так. Разбиваем физический диск как нужно, монтируем в один корень, далее монтируем разделы виртуального диска и делаем cp с соответствующими флагами, далее chroot в корень физического диска и восстанавливаем загрузчик. Очевидно, что cp отработает в разы быстрее чем dd, так как данных переливать будет на порядки меньше, да и геморроя потом с resize’ом файловых систем избежим.
В виртуальной машине наверняка небольшие диски, ускорение вряд ли будет существенно. О каком гемморое с ресайзом речь? У любителей нарезать на пять разделов он может и будет, но у остальных-то ему откуда взяться?
В виртуальной машине наверняка небольшие диски, ускорение вряд ли будет существенно.
Читать man, высчитывать offset’ы и потом не забываем, что resize не увеличит число инодов (по крайней мере на ext3), поэтому в будущем можно огрести геморрой. Может лучше сразу сделать всё правильно?
Наглая ложь. Специально для дебилов привожу доказательства
Ничего не изменилось.
Теперь ждем твою демонстрацию или ты понял.
Далеко не факт.
Зависит от размеров диска виртуалки, и всё.
> высчитывать offset’ы и потом не забываем
Этим занимается parted.
> по крайней мере на ext3
Кого ext3 интересует сейчас?
Значит это автоматически делает GParted/parted, а не fsck. Логов под рукой нет, там что-то типа «подправляем размер раздела, чтобы полностью заполнить доступное пространство».
Какие, кроме установки дров и загрузки ядра для конкретной архитектуры проца?
Зависит от размеров диска виртуалки, и всё.
Конечно. А кто сказал, что он маленький?
Ты уверен, что для ext4 не так? я вот не уверен.
Во во. Смотреть на какие-то фичи. Ты прям как упертый баран. Тебе так сложно согласиться с очевидными фактами на счет того, что мой способ 100% рабочий быстрый и не зависит ни от чего?
Я переносом Windows 7 не занимался, но если вы почитаете в Internet, да и здесь то увидите проблемы замены драйверов. К тому же в реестре указан жёстко путь (расположение) системного раздела и файлов реестра:
Вообще данную тему очень интересно, видимо, обсуждать на форуме посвященном Linux / BSD системам.
И ещё раз повторюсь, замены в нужных местах можно попробовать сделать и в Windows, но она для этого не предназначена, в Linux / BSD делается всё куда проще, даже в случае не загружающейся системы (через chroot), попробуйте сделать то же самое в Windows.
>Вообще данную тему очень интересно, видимо, обсуждать на форуме посвященном Linux / BSD системам.
При чёс здесь моё сообщение, ТС в шапке темы указал, что у него Windows 7, читайте сначала весь материал, а не ухватами и делайте только после этого выводы.
Тьфу, перепутал темы, пардон, но с переносом Windows XP не всегда тоже гладко проходит.
Да у ТС Linux, наверное, ошибся.
Ну, допустим, определенный % пользователей всегда гарантированно сталкивается с какими-то половыми^W проблемами (независимо от ОСи) 🙂
Перенос с виртуальной машины (VM) на физическую систему
Возможно ли / возможно переносить установку виртуальной машины Ubuntu на физическую машину? Если это возможно, насколько это сложно выполнить и какие шаги мне потребуется предпринять для подготовки к миграции.
Я бы хотел провести некоторое тестирование на виртуальной машине, и если это будет выполнено, выполните миграцию этой системы на физическое оборудование, а не переустанавливать все. Возможно ли это?
4 ответа
Возможно, это не совсем то, о чем вы просите, но он может выполнить то, что вы хотите сделать.
Поскольку все ваши настройки хранятся в вашем домашнем каталоге, вы можете просто сделать резервную копию этого файла к другому разделу на реальном диске. После того, как вы установили новый Ubuntu на реальном диске, просто запустите программу резервного копирования еще раз, чтобы восстановить домашний каталог со всеми неповрежденными настройками.
Вы можете использовать действительно опрятную программу резервного копирования под названием Déjà Dup.
Информация из программного центра ubuntu:
Поддержка локальных, удаленных или неактивных облачные хранилища резервных копий, такие как Amazon S3 или облачные файлы Rackspace. Безопасное шифрование и сжатие ваших данных. Постепенное резервное копирование, позволяющее восстанавливать из любой конкретной резервной копии. Регулярные резервные копии расписаний. Интеграция в ваш рабочий стол GNOME
Вы сделаете это менее чем за два часа!
Идея состоит в том, чтобы передать весь ваш 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.