Add a raw disk to a virtualbox virtual machine

This is strange there is no way to add a physical disk to your virtual machine under virtualbox! Still it is possible and it is simple, but you need to execute few commands under console so you need to open a terminal and to have a root privileges!
To use a raw disk in our virtual machine we must create a special VMDK file and then to use it when adding a hard drive to our virtualbox virtual machine with “Use an existing virtual hard disk dile”.

Here are the right steps to add a raw disk:

STEP 1) Permissions – your user must have (write) permissions to access raw disks

In most cases your user do not have write permission to the disk – it is the same under MS Windows and any Linux distribution (and probably MAC)! So here is the right way how to give permissions under Linux and Windows:

  • Under Linux (Ubuntu, Centos, Fedora, Gentoo and probably all other). There are at least two ways to give WRITE permission to the raw disk (use one of them, the first one is preferred). We want to add our third disk the “/dev/sdc” so the examples are with this device:
    1. add your user to “disk” group and log out. After you log in you’ll have WRITE permissions to the disks. Probably you must log off your GUI (Gnome, KDE and so on), too!
      srv@local ~ $ sudo sudo usermod -a -G disk myuser
      

      “myuser” is the username of the user I am logged in. The log out and log in (if you are using a GUI – gnome, kde or something else, you must log out from the GUI, too and then log in again).

    2. execute virtualbox with root user
    3. change the permission of the physical device you want to use (this is temporary, because next time you reboot you must change it again)
      srv@local ~ $ sudo chmod o+rw /dev/sdc 
      
  • Under Windows 10 (or 7) – you must start the command prompt and Virtualbox with “run as Administrator” – look at the next step (STEP 2).

Keep on reading!

How to configure openvpn client with an ovpn single configuration file

One file for configuration is always a good thing. We can pack everything needed for a openvpn client configuration in one single file, when using certificate authorization. If you use password authorization it is not possible, because the username and password must be in another file, but with certificate we can inline everything in one configuration file. Below is the template of such file:

client
dev tun
proto tcp
comp-lzo
verb 3
 
remote [IP] [PORT]
resolv-retry infinite
nobind

persist-key
persist-tun

<ca>
-----BEGIN CERTIFICATE-----
[CA_CERTIFICATE]
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
[CLIENT_CERTIFICATE]
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
[CLIENT_KEY]
-----END PRIVATE KEY-----
</key>

#uncomment to route these IP/Networks requested by the client
#route [IP1] [MASK1]
#route [IP2] [MASK2]

To get it working you should change the

  • Remote IP and port – replace [IP] [PORT] with your IP and PORT of the openvpn server you use.
  • copy everything between “—–BEGIN CERTIFICATE—–” and “—–END CERTIFICATE—–” from the certificate authority (CA) file and replace with [CA_CERTIFICATE]
  • copy everything between “—–BEGIN CERTIFICATE—–” and “—–END CERTIFICATE—–” from the certificate file and replace with [CLIENT_CERTIFICATE]
  • copy everything between “—–BEGIN PRIVATE KEY—–” and “—–END PRIVATE KEY—-” from the certificate file and replace with [CLIENT_KEY]

You can also uncomment the route lines to enable specific routes through the VPN, such routes are probably not included in the server configuration, but the user could add them, too.
Save the above file (best with extension .ovpn) and then import it in any openvpn client under Linux, Windows and Android. The file contains everything the openvpn client needs to establish a vpn connection