Некоторые провайдеры предоставляют такую возможность, так как linux дистрибутивы изначально ориентированы не только на реальное железо но и на виртуальное, поддержка обычно хорошая. Единственное, это доступно только если используется виртуализация kvm/vmware/vbox/hyperv/... но не паравертуализация (lxc/virtuozzo/...)
Выбираешь способ установки своего дистрибутива загрузкой iso, выбираешь любой инструмент развертывания своего образа (чем бы он у тебя не был) и устанавливаешь.
Совет, выбирай ядро с пометкой cloud/vps/kvm и т.п., а то универсальные ядра долго грузятся.
Я настраивал VPS, загрузившись в штатный livecd и настраивая с помощью debootstrap минимальный конфиг, настройки сети (чаще всего особенности тут и их достаточно скопировать из текущей установки), пароли, языковые пакеты и локаль и т.п.
Так же linux позволяет подмену операционной системы на живую, даже если провайдер это не разрешает, типовой метод - отключение swap раздела, установка в него минимальной версии linux, настройка загрузчика на ее использование, перезагрузка, форматирование и дальше по прежнему сценарию. Недостаток - ошибка превращает машину в тыкву и требует переустановки или восстановление из бакапа, в общем вопрос что удобнее с твоим провайдером.
p.s. Самое смешное когда я это делал, мне это нужно было делать ради единственного отличия от провайдерского конфига - файловая система btrfs с поддержкой сжатия на лету (у меня были очень объемные текстовые дампы, сжимаемые 10х). В общем все в твоих руках.