Блог экспериментатора инженера-разработчика: Infanty.
Я пишу how-to статьи на редкие темы или статьи обзоры - для себя и тех кто со мной работает.
Блог существует при поддержке: "Оккупационных сил Марса".

Используя связку VirtualBox и Ubuntu Server, можно настроить полноценный программный аналог виртуального или выделенного сервера. Такую связку хорошо применять как для разработки новых сайтов, так и для отладки существующих. Так же на такой связке очень удобно повышать свою квалификацию администратора сервера, делая копию образа диска виртуальной машины перед внесением изменений в работу Ubuntu Server и откатываясь на данную копию образа диска виртуальной машины в случае неудач.

Копию образа диска виртуальной машины очень удобно переносить между компьютерами. Кроме того, VirtualBox позволяет экспортировать конфигурацию настроек виртуальной машины, для этого в главном окне программы нужно выбрать: "Файл" -> "Экспорт конфигурации".

Установка ОС в виртуальную машину

Скачиваем VirtualBox со страницы: https://www.virtualbox.org/wiki/Downloads и устанавливаем как обычную программу отвечая утвердительно на все вопросы задаваемые при установке. Так же рекомендую установить VirtualBox Extension Pack.

Скачиваем образ диска Ubuntu Server со страницы: http://www.ubuntu.com/download/server/download.

В программе VirtualBox создаём новую виртуальную машину и при создании её создаём новый расширяемый виртуальный жёсткий диск (у меня его размер составляет 80 Гбайт). После создания в главной окне VirtualBox выделяем созданную виртуальную машину и нажав кнопку свойства указываем на вкладке: "Носители" -> "Образ диска" -> Ubuntu Server. Так же в разделе "Сеть" включаем второй сетевой адаптер и настраиваем его тип подключения как: "Виртуальный адаптер хоста".

Запускаем созданную виртуальную машину. Устанавливаем Ubuntu Server. Рекомендую устанавливать англоязычную версию в виду того, что при возникновении ошибок в работе с Ubuntu через консоль найти источник ошибки удобней производя поиск вводя в поисковую строку системы поиска в сети интернет - выдачу консоли на английском языке. Так же это позволит обойти проблему русификации консоли.

Дополнения гостевой ОС

После установки системы, выключаем Ubuntu. В главной окне VirtualBox выделяем созданную виртуальную машину и нажав кнопку свойства указываем на вкладке: "Носители" -> "Образ диска" -> VboxGuestAdditions и запускаем Ubuntu.

После чего, если у Вас установлен Linux Mint вместо Ubuntu - достаточно открыть проводник и посмотреть путь к диску дополнений гостевой ОС. Он будет вида: "/media/YourLogin/VBox_GAs_5.2.22/", где жирным выделены данные которые будут у Вас отличаться (это логин пользователя ОС и версия VirtualBox). Устанавливаем дополнения VirtualBox для виртуальной машины набрав в консоли:

sudo /media/YourLogin/VBox_GAs_5.2.22/VBoxLinuxAdditions.run

В Ubuntu Server установка дополнений гостевой ОС - несколько сложней. Для их установки - переходим в папку cd-rom'a набрав в консоли:

cd /media/cdrom

Если папка: "/media/cdrom" пуста (список файлов выводится командой: ls). Или её (папки cdrom) совсем нет - значит диск нужно монтировать вручную, набрав в консоли:

cd /media 
sudo mount /dev/cdrom /media/cdrom 

Устанавливаем дополнения VirtualBox для виртуальной машины набрав в консоли:

sudo /media/cdrom/VBoxLinuxAdditions.run 

Если при установке дополнений гостевой ОС у Вас возникли ошибки в консоли, то возможно в Вашей системе не хватает дополнительных пакетов. Только в этом случае стоит их устанавливать (если ошибок не возникло, то пропускаем этот пункт) и заново пытаться установить дополнения VirtualBox для виртуальной машины набрав в консоли:

sudo apt-get install make gcc build-essential linux-headers-generic dkms
sudo /media/cdrom/VBoxLinuxAdditions.run 

После чего перезагружаем систему (независимо от того установлен у Вас Linux Mint или Ubuntu) набрав в консоли:

sudo shutdown -r now 

Вместо перезагрузки, можно просто выключить систему набрав в консоли:

sudo poweroff 

Примечания по дополнениям гостевой ОС

Помните, что обновление ядра виртуальной машины может привести к тому, что у Вас могут не установиться дополнения VirtualBox для виртуальной машины. Так же, если Вы всё-таки решитесь обновить ядро виртуальной машины - после этого Вам необходимо будет переустановить дополнения гостевой ОС.

Так же при установке их - Вы получите сообщение об ошибке: "Could not find the X.Org or XFree86 Window System, skipping.". Так как в виртуальной машине не установлен Xserver который теоретически и не нужен на сервере.

После установки дополнений VirtualBox для виртуальной машины, общая папка между реальной и виртуальной машиной будет доступна по пути: "/media/sf_Share", если при её задании в свойствах виртуальной машины (в VirtualBox) была установлена галочка: "Авто-подключение". Для того, чтобы получить права доступа на данную папку необходимо набрать в консоли:

sudo usermod -aG vboxsf ВашЛогин

Этой командой ваша учётная запись будет добавлен в нужную группу и после перегрузки конфигурационных файлов или при следующей загрузке системы, Вы сможете получить доступ к файлам в папке по пути: "/media/sf_Share".

Закрепляем Ip-адрес за виртуальной машиной

Если нужно обращаться к виртуальной машине по Ip-адресу, то необходимо в настройках виртуальной машины во вкладке: "Сеть" включить второй сетевой адаптер и настроить его тип подключения как: "Виртуальный адаптер хоста", если это не было сделано ранее. После включения второго сетевого адаптера и загрузки виртуальной машины, узнаем имя данного сетевого адаптера для назначения ему постоянного Ip-адреса, набрав в консоли:

ifconfig -a 

Вторая строчка в первом столбике и будет именем второго сетевого адаптера. Например на изображении ниже - имя второго сетевого адаптера: enp0s8. Примечание: на изображении ниже второму сетевому адаптеру уже задан Ip-адрес: 192.168.56.101.

Что бы задать сетевому адаптеру временный Ip-адрес и маску подсети, набрём в консоли:

sudo ifconfig enp0s8 192.168.56.101 netmask 255.255.255.0 up 

Что бы при каждой перезагрузке системы не задавать временный Ip-адрес и маску подсети, отредактируем файл: "/etc/network/interfaces", приведя его приблизительно к такому виду (указаны настройки для всех имён сетевых адаптеров с изображения выше):

# This file describes the network interfaces available on your system
# and how to activate them.

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto  enp0s3
iface enp0s3 inet dhcp

# The secondary network interface
iface enp0s8 inet static
address 192.168.56.101
netmask 255.255.255.0
gateway 192.168.56.0
auto enp0s8

Для редактирования файла с использованием консоли (с помощью редактора: vim) выполним команду установки редактора, а после - команду открытия файла для редактирования:

sudo apt-get install vim 
sudo vim /etc/network/interfaces 

После ввода пароля и открытия файла, перейдём в режим редактирования нажав клавишу: "I" (клавиатура должна быть переключена в английскую раскладку). После завершения редактирования файла, нажмём клавишу: "ESC" для выхода из режима редактирования и для сохранения документа с последующим выходом введём: ":wq".

Применим изменения набрав в консоли:

sudo service network-manager restart

Перед тем как соединится с виртуальной машиной с помошью PuTTY или WinSCP по только, что настроенному для неё статическому Ip-адресу: 192.168.56.101, не забудем установить на сервер OpenSSH сервер набрав в консоли:

sudo apt-get install openssh-server 

SFTP и SSH для Root

Чтобы установить пароль для пользователя: root (крайне не рекомендуется), наберём в консоли:

sudo passwd root 

После задания пароля для пользователя: root, необходимо так же разрешить его аутентификацию с использованием OpenSSH (крайне не рекомендуется). Для этого отредактируем файл: "/etc/ssh/sshd_config", закомментировав в нём строку (при наличии):

PermitRootLogin prohibit-password 

И добавив в конце файла строку:

PermitRootLogin yes 

После чего, нужно перегрузить OpenSSH командой:

service ssh restart 

Всё готово для соединения с виртуальной машиной по SFTP с помощью PuTTY или WinSCP по только, что настроенному для неё статическому Ip-адресу: 192.168.56.101 с логином: root и указанным Вами паролем.