Ох... ничего у меня плотность блога... Раньше по 30 сообщений в месяц, сейчас - одно. Не сердитесь, работы больше - времени меньше.
Итак, нужно было перенести работающую Linux-систему в виртуальную машину. Вообще, по заданию в качестве виртуалки нужен Hyper-V, но у нас нет Windows 2008, а без неё Hyper-V не работает. Подсказали мне софтинку Platespin Migrate. В процессе чтения документации окзалось, что она на живую может мигрировать Linux-машину только в работающую виртуалку. Ну и фиг с ней, буду делать по-своему. Итак, пришло решение...
На работающей системе tar-им (с ключами cfp) каждый раздел (если у вас их несколько). Когда tar-ите корневой, то не забудьте исключить /proc, /sys и сам файл архива (чтоб он сам себя не паковал рекурсивно). В результате я получил набор файлов boot.tar, root.tar, var.tar, home.tar, которые скопировал на ftp.
Далее создаём виртуальную машину Linux. Я использовал VMware (так как её потом можно преобразовать в образ для Hyper-V, но что-то мне подсказывает, что данный способ будет работать и с другими виртуалками), базовая ОС - любая, в моём случае Windows 2003. Машину создал, загрузился с LiveCD своего любимого дистрибутива. (желательно, совсем не критично, но таки желательно, чтобы LiveCD был от того же дистрибутива. который вы переносите). Загрузившись в режиме восстановления я сделал следующее: разбил диск на разделы, отформатировал, примонтировал разделы к текущей файловой системе LiveCD, скопировал с ftp свои архивы (каждый файл в соответствующий раздел, распаковал, удалил с виртуального диска архивы. В общем, сделал наполнение разделов максимально приближенным к живой системе. Отмонтировал все разделы нашего будущего виртуального Linux за исключением корневого и после этого chroot на его этот самый корневой раздел.
Будучи в корневом разделе, я создал каталоги /proc, /sys, а также точки монтирования остальных разделов. После этого можно монтировать /proc и /sys, поправить /etc/fstab, примонтировать разделы /boot, /home, /var.
Важная вещь: нужно заново сделать initrd для того, чтобы ядро могло нормально загрузиться. Именно для этого я брал LiveCD именно своего дистрибутива и монтировал /proc и /sys - чтобы получить программное окружение максимально близкое к тому, что будет эксплуатироваться. После этого поправил загрузчик и установил его на виртуальный диск.
Ну сделал и всякие остальные мелочи: поправил адреса сетевых служб, поправил SELinux (чтоб он не пугался и не запрещал входить в систему) и убрал шероховатости.
Всё, система нормально работает.
В принципе, как я понимаю, ничем не отличается от прочих переносов живой системы (single HD -> RAID, с машины на машину)
ОтветитьУдалить