У меня есть сервер под управлением Ubuntu 10.04. Поскольку я хочу протестировать некоторые работы по обслуживанию, такие как обновление до 12.04, я подумал, что мне следует создать копию виртуальной машины на сервере с использованием Virtual Box. У меня нет физического доступа к серверу, поэтому я рассмотрел следующие варианты: я делаю
dd
, записывая весь жесткий диск в виде необработанного образа на моем компьютере и затем создавая VDI из необработанного изображения dd
. Решение rsync немного сложнее, но, похоже, экономит полосу пропускания и позволяет мне создавать «копию» сервера с немного другой конфигурацией (например, меньший диск).
Какой, по вашему мнению, лучший способ сделать это? Один из вышеперечисленных методов? Другой?
Использование rsync
напрямую оказалось более проблематичным, чем я думал:
По этим причинам я завершил двухэтапный процесс:
Я наконец-то выбрал базовый tar
, хотя мог бы использовать rdiffdir
, предоставленный duplicity
, чтобы сэкономить некоторую пропускную способность.
Я начал с настройки туннеля SSH, который я мог бы использовать для туннелирования файлов tar
, чтобы мне не пришлось записывать архив в файловую систему, которую я копировал.
local$ ssh user@remote -R 3000:localhost:3000
loacl$ nc -l 3000 > filesystem.tar.gz
remote$ sudo tar -vcz / --exclude={/dev,/proc,/sys,/tmp} | nc localhost 3000
Это создало архив tar всей файловой системы на моем локальном хост-компьютере. Следующим шагом было распаковать его в гостевой системе:
guest$ cd /
guest$ nc -l 3000 | sudo tar -xvz
local$ nc guest_ip 3000 < filesystem.tar.gz
В моем случае /etc/fstab
ссылались на файловые системы по их UUID, поэтому мне пришлось обновить его с выводом guest$ sudo blkid
. Мне также пришлось обновить сетевые настройки в /etc/udev/rules.d/70-persistent-net.rules
(имена интерфейсов) и /etc/network/interfaces
(IP-адреса).
По общему признанию, dd
-приход или создание другого образа сервера, вероятно, будут иметь проблемы с пропускной способностью в случае, если у вас есть только удаленный доступ к серверу.
Установка сервера Ubuntu 10.04 в VDI только для того, чтобы иметь возможность копировать существующую установку, также на самом деле не нужна (но это может сэкономить часть полосы пропускания).
Позвольте мне предложить следующий подход:
Скопируйте все файлы со старого сервера в еще пустой раздел вашей виртуальной машины
rsync -avze ssh user@host:/ /<mountpoint>
Установите Grub соответственно. Grub2 к MBR теперь заполненного диска VDI.