Миграция ОС из реалки в виртуалку (18.06.2025). Печать
2025 - Июнь
18.06.2025 10:32
Save & Share
Миграция - это всегда боль (не ограничиваясь ссылками в этой ссылке: по сайту есть и ещё страдания). Что приводит к закреплению мысли: заставляют что-то мигрировать - слезай с задачи любой ценой, даже ценой депремирования/увольнения: здоровье-нервы сэкономишь.

Простой перенос Astra SE v.1.4 из реального мира в виртуальную машину VirtualBox - естественно, обернулся кошмаром (в т.ч. из-за зашлакованности ОС, установленной в 2014 году). В материале - описаны только первые 2 суток кошмара на улице Вязов, и количество суток до достижения результата - неизвестно. Раз, два, Фредди заберет тебя...



Сама миграция, перенос архивированием физического носителя и восстановления на виртуальный носитель с помощью TeraByte Image, - прошла условно-прекрасно:
- нельзя просто установить в виртуалке ОС с нуля и перенести файлы: это идеально настроенный сервер, выполняющий сразу 3 функции вместо привычной для сервера одной. При этом, настройкой занимались в т.ч. люди, которые уже физически уничтожены, - перенастройка невозможна из-за недостатка информации;
- долгие анализ и очень аккуратная чистка ОС и его содержимого (2 захода пришлось делать) - сократила объём данных с 1.8ТБ до 0.3ТБ: мусора, в т.ч. дублирующегося, - было невероятное количество;
- архивация на внешний диск. После чистки - время архивации уменьшилось с 3.5ч до 1.2ч, размер архива уменьшился в 2.5 раза;
- создание ISO-файла 200ГБ с TBI-файлом, для присоединения к виртуальной машине с целью восстановления в виртуалке;
- восстановление по USB 2.0: в новом ПК, почему-то, материнская плата держит везде USB 3.0 - а передние разъёмы корпуса оказались USB 2.0.

А вот после первого запуска виртуальной машины с ОС - начался форменный писец (Astra SE v.1.4 - кусок забагованного говна).

Разрешение в виртуальной машине - было 640x480 в виде малюсенького окошечка. Игры в настройками дисплея VirtualBox - приводили к изменению разрешения на 1024x768 - но не более, а надо - 1768x992 минимум (чтобы разрешение дочерней ОС было на 1 позицию режима меньше, чем родительской: отсутствие ползунков на экране виртуальной машины). Требуется в автозапуск (fly-admin-autostart, sh xrandr.txt) дочерней ОС поместить файл, содержащий название видеовхода и нужного разрешения:
#cvt 1920 1080 60
xrandr --newmode "1920x1080" 173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode 'Virtual1' '1920x1080'
xrandr --output 'Virtual1' --mode '1920x1080'

При настройке скорости виртуальной машины, есть ряд неочевидных вещей:
- ползунки ЦП и RAM ведут себя странно: зелёная линия занимает у ЦП половину доступных ЦП, а у RAM - только 24ГБ из 32ГБ. Выход за пределы зелёной линии - приводит к появлению жёлтого/оранжевого (зависит от версии VirtualBox) треугольника "обнаружены неправильные настройки";
- нужно забить болт на этот жёлтый треугольник. Если присмотреться, прямо вплотную, к линии - видно, что она разделена не на зелёную и красную зоны, а на зелёную, оранжевую и красную. ЦП при этом можно докрутить хоть на 12 поток из 12 - это оранжевая зона. RAM - до 29.5ГБ (если зайти в красную зону - кнопка OK перестаёт быть активной);
- если несколько виртуальных машин запущены вместе в родительской ОС - выгодно им сделать максимум потоков для всех. И когда у одной есть нагрузка на все ядра, а другая простаивает, - физический процессор используется максимально. Если же виртуалки обе пытаются использовать 12 потоков - они будут просто бороться за проценты, никаких критических ошибок не возникает. Также нет смысла выделять 11 потоков из 12, оставив 1 для родительской ОС: так как ручное управление потоками отсутствует - такая настройка не будет иметь смысла;
- по аналогии: если несколько виртуальных машин запущены вместе в родительской ОС - выгодно им сделать максимум RAM для всех. Пока нет загрузки виртуальной RAM - физически RAM не загружается (было запущено 2 виртуальной машины по 16ГБ RAM - когда в системе всего 16ГБ RAM). Физически RAM заполняется только по факту загрузки RAM виртуальной. Если виртуалки используют RAM попеременно и разными объёмами - никаких багов не будет. Однако если сразу вместе начнут использовать много RAM - вот именно эта ситуация не проверена на практике, так что тут возможны нюансы.

В дочерней ОС вообще не видится сетевая карта, как устройство. Приходится лезть в /etc/network/interfaces - и прямо создавать интерфейс руками:
auto eth1
iface eth1 inet static
address 10.0.1.221
netmask 255.255.255.0
gateway 10.0.1.10

Общие папки в дочерней ОС не работают, в отличие от родительской. Пришлось заимствовать решение из Astra 1.7 - но оно заработало только с дополнением:
- ярлык подключения общей папки (приложение): sh /home/astra/network.sh;
- содержимое файла: sudo mount -t cifs -o pass=12345678,vers=2.1 //10.0.1.30/ForAll /mnt;
- ярлык открытия общей папки (приложение): sudo fly-fm /mnt.

Неизвестно, как будет работать виртуальная машина с 2 мониторами.

Так как создан полный клон сервера - ему сразу нужно сменить IP, чтобы не было скрытного конфликта адресов. Так как виртуалка зашифрована и защищена надёжным паролем - выставить автовход в дочернюю ОС (примерно: Пуск→Панель_управления→Система→Вход_в_систему→Дополнительно→Разрешить_автоматический_вход_в_систему), а также убрать в ней гашение и блокировку экрана.

Совсем неисправимо: учётная запись Root - не пашет. Рабочий стол прогружается - но видно только его 1/5 часть справа, ничего не работает (в т.ч. горячие клавиши).

Пока неисправимо:
- современные процессоры, обычно, имеют функцию автоматического разгона в случае высокой нагрузки (другое дело, что в части процессоров это реализовано через жопу). Но как только процессор оказался в дочерней ОС - он стал работать исключительно с номинальной скоростью. Это привело к тому, что номинальный более поточный и менее гигагерцный процессор - стал одинаковым в скорости с авторазогнанным менее поточным и более гигагерцным (при применении многопоточности). А без многопоточности - проиграл сразу вдвойне авторазогнанному более гигагерцному;
- в виртуальной машине, по неведомой причине, 1 поток оказался всегда загруженным на 100%. В родительской ОС - постоянная загруженность на определённое и расчётное количество процентов CPU (тоже 1 поток). В дочерней ОС - отображалось в виде неотключаемого процесса v86d, жрущего расчётное количество процентов CPU относительно количества выделенных ЦП (в настройках виртуалки "ЦП" - реальный поток). Прикол в том, что не загружая дочернюю ОС (просто меню выбора режимов загрузки Astra), - поток как жрался, так и жрётся. Это оказалось не шифрование диска, не виртуальная периферия, не ЦП с RAM - полная загадка. Даже если загрузиться с WinPE - всё равно 5% (~2/3 потока) всегда жрётся, даже если жёсткий диск виртуальный отключен. Это влияет только на энергопотребление и скорость работы виртуалки - вроде, не критично - а, вроде, и критично.
Обновлено ( 18.06.2025 15:31 )