Итак, после 2 недель исследований и прочтения множества постов в блогах я, наконец, понял, как это сделать.
Это не особенно прямолинейно, но это и не ракетостроение, однако у меня возникает чувство (и враждебность), когда я спрашивал на форумах proxmox, что они предпочли бы, чтобы вы не уходили с платформы proxmox, временно или иным образом.
В любом случае, шаги, которые вам нужно выполнить, по существу
в командной строке proxmox введите «pct list», чтобы получить идентификатор контейнера, который вы хотите скопировать.
в той же командной строке «vzdump -compress gzip -dumpdir /tmp» вам не нужен параметр dump dir, но по умолчанию вложено глупое количество папок, поэтому я бы посоветовал использовать tmp dir для простоты .
затем вам нужно создать «файл метаданных», используя следующие команды (обратите внимание: символы # необходимо изменить на BACKTICKS, прежде чем копировать и вставлять/использовать команду, мне пришлось использовать символ # как уценку в сообщение SO не может отображать символ обратной галочки из-за того, как его использует уценка):
эхо-архитектура: #pct config $1 | арка grep: | awk '{print $2}'# > metadata.yaml
эхо-дата создания: #date +%s# >> metadata.yaml
tar -czvf metadata.tar.gz metadata.yaml
метаданные rm.yaml
Переместите созданные вами файлы «.tar.gz» на целевую машину с современной версией LXD, для этого я использовал rsync.
В командной строке вашего компьютера LXD используйте следующую команду для импорта метаданных и файла дампа в образ lxc:
sudo lxc image import metadata.tar.gz <имя vzdump>.tar.gz
Это импортирует контейнер как образ, который нельзя запустить напрямую, введите
lxc список изображений
и получите отпечаток изображения, которое вы только что создали
все еще в командной строке LXD, используя отпечаток пальца из вашего изображения:
lxc launch <fingerprint> <имя, которое вы хотите дать своему контейнеру>
На этом этапе у вас будет новый контейнер, который является точной копией вашего оригинального работающего proxmox.
Однако у вас может не быть одинаковых сетевых настроек. Для меня все в моей сети работает через DHCP, включая статическую аренду, поэтому было важно, чтобы мои новые контейнеры имели один и тот же MAC-адрес, что было легко сделать с помощью
pct config <идентификатор контейнера>
на proxmox cli, чтобы отобразить конфигурацию оборудования, затем скопируйте и вставьте MAC-адрес оттуда, а затем
lxc stop <имя контейнера>
lxc config set <имя контейнера> volatile.eth0.hwaddr <скопированный mac-адрес>
lxc start <имя контейнера>
Если ваши статические аренды DHCP управляются с MAC-адреса, то это гарантирует, что они получат тот же IP-адрес, если ваш хост LXD настроен для моста IP-адресов в той же сети, что и ваш исходный хост proxmox.
Я написал сообщение в блоге, которое можно найти по адресу: https://shawtyds.wordpress.com/2021/11/16/converting-containers-from-proxmox-ve-back-to-plain-old-lxd-lxc/ это немного подробнее.
После того, как ваш скопированный контейнер запущен, достаточно использовать lxc для удаления временного образа (если вы не хотите его сохранить) и стереть файлы «.tar.gz» с обоих серверов и, возможно, удалить старый контейнер с proxmox, если он вам больше не нужен.