Setting up Virtual Machine with Ubuntu to work through console in Windows

Here is how to work with Linux inside a virtual machine from Windows using ssh client and VirtualBox. If you will use any command line ssh client you culd use all linux fuctional right inside your standard Windows Command Line

0 Setup Software to the Host:

Set up VirtualBox, VirtualBox Extention and Ubuntu Server Edition (or Ubuntu Desktop) in a regular mode. I called the machine just: “ubuntu”

 

1 Add VirtualBox setup directory to the PATH variable:

setx /M path "%path%;"C:\Program Files\Oracle\VirtualBox\""

Note: C:\Program Files\Oracle\VirtualBox\ could be differs

 

2 Set up a VM network:

Virtual Machine Settings -> Network -> Adapter 2 (tab) -> Attached to: -> Host-only adapter-> OK (button).

 

3 Setup ssh server on the Ubuntu VM:

Run the virtual machine

Open a linux terminal and write:

sudo apt-get install openssh-server nano net-tools

 

(Optional) Config the SSH server

In a linux terminal (guest ubuntu):

sudo nano /etc/ssh/sshd_config

And restart SSH server:

sudo systemctl restart ssh.service

 

(Optional) Set up a non-gui mode

If you setted up Ubuntu Desktop you could turn off GUI at startup to reduce the resource consumption. Even more it is not needed workin through a console. In a guest terminal:

sudo systemctl set-default multi-user.target

To turn on GUI again use:

sudo systemctl set-default graphical.target

 

4 Check your local VM IP:

ifconfig

It sould be something like 192.168.56.101, in my case, at least

 

5 Close the Virtual Machine

 

6 Run VMbox from CMD:

VBoxManage startvm "ubuntu" --type headless

Instead “ubuntu” you should use your VM name

 

7 Connect to Ubuntu via any SSH client:

For example, right from Command Line via ssh from cygwin:

ssh user@192.168.56.101

Note: change user to your username in guest’s VM and 192.168.56.101to IP which we checked on the 4th step

 

8 Use it!

For example like there: https://docs.espressif.com/projects/esp-idf/en/latest/get-started/linux-setup.html

 

(Optional) Connect USB device to your working VM:

In the host cmd get the list of devices:

VBoxManage list usbhost

Connect via UUID:

VBoxManage controlvm ubuntu usbattach f8a9f295-e221-49b0-97a5-aec55d6a2c8c

 

9 Stutdown VMbox when you’ve done:

VBoxManage controlvm "ubuntu" poweroff --type headless

 

(Optional) Mount Ubuntu Home as a drive:

A. Install SSHFS-Win

B. Open File Explorer -> right-click on This PC -> Map network drive -> in the Folder field:

\\sshfs\remoteUser@remoteIP

 

(Optional) Set up a shared folder

A. Inside the host:

A1. VBoxManage sharedfolder add ubuntu --name esp-repos -automount -hostpath C:\esp\repos

 

B. Inside the guest:

B1. sudo mkdir $HOME/host-share/esp-repos

sudo touch /etc/init.d/vboxmount
sudo nano /etc/init.d/vboxmount

B2. Insert:

sudo mount -t vboxsf esp-repos /home/agramakov/host-share/esp-repos/

B3. Register start script:

sudo chmod 755 /etc/init.d/vboxmount
sudo update-rc.d vboxmount defaults

 

 

 

(Optional) Read more about:

– working with VirtualBox without GUI

Add a Comment

Your email address will not be published. Required fields are marked *