Установка VirtualBox під Solaris не відрізняється складністю: скачуємо пакет і встановлюємо:
# wget https://... && pkgadd -d <pkg_name.pkg>
Також встановлюємо extension pack (інакше VRDE не запрацює і видасть помилку), який скачуємо з сайту virtualbox
VRDE: VirtualBox Remote Desktop Extension is not available.
# VBoxManage extpack install /opt/VirtualBox/Oracle_VM_VirtualBox_Extension_Pack-7.0.8.vbox-extpack
Підготовка і встановлення порожньої машини через VBoxManage
# VBoxManage createvm --name=pdf --basefolder=/data/VARSHARE/VB --ostype=Debian_64 --register
# VBoxManage createhd --filename /data/VARSHARE/VB/pdf/disk0.vdi --size=200000 --variant Standard
# VBoxManage storagectl pdf --name "SATA Controller" --add sata --controller IntelAhci
# VBoxManage storageattach pdf --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /data/VARSHARE/VB/pdf/disk0.vdi
# VBoxManage modifyvm pdf --memory 8192
# VBoxManage modifyvm pdf --cpus 4
# VBoxManage storagectl pdf --name "IDE Controller" --add ide
# VBoxManage storageattach pdf --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium systemrescue-10.00-amd64.iso
# VBoxManage modifyvm pdf --nic1 hostonly --hostonlyadapter1 vboxnet0
# VBoxManage modifyvm pdf --vrde on --vrdeport 3389 --vrdeaddress 0.0.0.0 --vrdeauthtype external --vrdeextpack default
# VBoxManage setproperty vrdeauthlibrary "VBoxAuthSimple"
# VBoxManage internalcommands passwordhash "MegaPass"
# VBoxManage setextradata pdf "VBoxAuthSimple/users/MegaUser" "hash from previous step"
# VBoxManage startvm pdf --type headless
Трохи поясню. Тут ми встановили додатково авторизацію при підключенні до консолі (username=MegaUser, password=MegaPass). Я використовую образ systemrescue-10.00-amd64.iso, бо він має всі необхідні утиліти для переносу ФС (dump/restore). Під Solaris чомусь не працює bridge mode для мережі, тому прийшлося вибрати hostonly.
Також, не забуваємо правильно вказувати ostype, особливо, якщо це стосується 64-біт, бо змінити це вже не вийде, треба буде перестворювати заново машину.
Далі завантажуємося з ISO, налаштовуємо мережу, ставимо пароль для root’a, додаємо у файервол дозволяючі правила для підключення (бо за замовчуванням там все DROP), розбиваємо диск як треба, монтуємо у /mnt і запускаємо сам перенос з SRC хоста:
# dump -0 -f - / | ssh root@target_machine "cd /mnt; restore -rf -"
Цей метод універсальний, оскільки можна переносити з більшого диску на менший. Після закінчення робимо chroot у новий диск і міняємо конфіги під новий хост (IP, hostname,…). Не забуваємо встановити grub.
Тепер треба якось дати доступ до цієї машини ззовні. Перевіримо, чи ввімкнений forwarding:
# routeadm -p ipv4-forwarding
persistent=enabled default=disabled current=enabled
Якщо ні, то вмикається так:
# routeadm -u -e ipv4-forwarding
Враховуючи, що у нашої машини сіра IP-адреса, то зробимо binat:
pass quick on ext_if from 192.168.56.102 to any binat-to XX.XX.XX.XX
pass quick on vboxnet0 from 192.168.56.0/24 to any
pass quick on vboxnet0 from to 192.168.56.0/24
pass out quick on vboxnet0 proto tcp from 192.168.56.0/24 port {10050} to YY.YY.YY.YY
pass quick proto tcp from YY.YY.YY.YY to 192.168.56.102 port {10050}
де, XX.XX.XX.XX – зовнішня IP адреса, за якою буде доступна vbox, <white_list> – таблиця з IP надійної мережі, YY.YY.YY.YY – хост, який не належить до white_list