From the VyOS homepage

VyOS is an open source network operating system that can be installed on physical hardware or a virtual machine on your own server, or a cloud platform. It is based on GNU/Linux and joins multiple applications such as Quagga, ISC DHCPD, OpenVPN, StrongS/WAN and others under a single management interface.

VyOS is documented in a Wiki at The user guide is available at, upgrade instructions can be found at

For VyOS installation only ISO images are available. So the first action is to install these ISO image into a virtual disk image. Later this disk image will be used to run the VyOS VM within GNS3.

I’ve decided to use the beta versions of v1.2, it’s already pretty stable. It’s downloadable from

Creation of an Install VM

First we have to download the latest snapshot from

Now we will setup a VM for installing VyOS. For that we start GNS3 and open the Preferences / Qemu VMs.

With “New” start the QEMU VM wizard and go through the following steps:

  • Select the server type, normally “Run this Qemu VM on the GNS3 VM”. Only if your local or remote server runs on Linux you may choose these.
  • Enter a QEMU VM name, e.g. VyOS
  • Select qemu-system-x86_64 as the Qemu binary (should be the default) and 512 MB of RAM
  • Use Console type VNC (not telnet !!!)
  • Select a new disk image, use the “Create” button to start the image creator wizard.
    • Use the defaults in the next two dialogs (“Binary and format” and “Qcow2 options”)
    • As a file location use “VyOS.qcow2” and set the disk size to 2.000 MiB
    • Finish the Qemu image creator dialog
  • Finish the QEMU VM wizard

Now we have to edit the just created VyOS VM.

  • General settings: set the boot priority to “HDD or CD/DVD-ROM”.
    Initial settings - General
  • CD/DVD: use “Browse” to select the just downloaded VyOS ISO, it will be automatically uploaded to the GNS3 VM.
    Initial settings - CD/DVD
  • Network: set the number of adapters to 0.
    Initial Settings - Network
  • Advanced settings: disable “Use as a linked base VM”.
    Initial settings - Advanced

Now finish the VM edit with “OK”, then exit the preferences with “OK”.


Create a new project and drag the newly created VyOS VM into it. Start the VM and open a console.

The VNC console should open and the boot screen should be shown:
Install boot screen

Press Enter to boot, then login with username vyos, password vyos.

Now start the installation with the “install image” command, stay with the defaults and choose a password for the user vyos.

vyos@vyos:~$ install image
Welcome to the VyOS install program.  This script
will walk you through the process of installing the
VyOS image to a local hard drive.
Would you like to continue? (Yes/No) [Yes]:
Probing drives: OK
Looking for pre-existing RAID groups...none found.
The VyOS image will require a minimum 1000MB root.
Would you like me to try to partition a drive automatically
or would you rather partition it manually with parted?  If
you have already setup your partitions, you may skip this step

Partition (Auto/Parted/Skip) [Auto]:

I found the following drives on your system:
 sda	2097MB

Install the image on? [sda]:

This will destroy all data on /dev/sda.
Continue? (Yes/No) [No]: y

How big of a root partition should I create? (1000MB - 2097MB) [2097]MB:

Creating filesystem on /dev/sda1: OK
Mounting /dev/sda1...
What would you like to name this image? [999.201709152137]:
OK.  This image will be named: 999.201709152137
Copying squashfs image...
Copying kernel and initrd images...
I found the following configuration files:
Which one should I copy to sda? [/config/config.boot]:

Copying /config/config.boot to sda.
Enter password for administrator account
Enter password for user 'vyos':
Retype password for user 'vyos':
I need to install the GRUB boot loader.
I found the following drives on your system:
 sda	2097MB

Which drive should GRUB modify the boot partition on? [sda]:

Setting up grub: OK

After that, shutdown the VM with the “poweroff” command.

In GNS3 right-click on the VyOS VM, select configure and set the console type to telnet. Then start the VM and open a console.

This time a telnet console should open and after some seconds the GRUB boot screen should be shown:
Telnet boot screen

Within 5 seconds select the second option (serial console) and press Enter. After a short time VyOS should boot, then login with username vyos and the password, you chose during the installation.

Now we want to change the boot menu to use the serial console by default. For that we have to edit the GRUB configuration with “sudo vi /boot/grub/grub.cfg” and set default to 1. Optionally we can disable the “Press ESC to enter the Grub menu…” part during the boot by commenting the echo/if/fi statements.

The beginning of my GRUB menu file looks like this:

# Generated by /opt/vyatta/sbin/vyatta-grub-setup at Sun Sep 17 08:42:56 UTC 2017
set default=1
set timeout=5
serial --unit=0 --speed=9600
terminal_output --append serial

#echo -n Press ESC to enter the Grub menu...
#if sleep --verbose --interruptible 5 ; then
        terminal_input console serial

Finally shutdown the VM with “poweroff”, then delete the VM from the GNS3 project. The VyOS.qcow2 image contains now a working VyOS image. If you like to have a backup of this image, use scp/winscp to copy it from the GNS3 VM (directory /opt/gns3/images/QEMU).

Modify the install VM for regular use

We could now remove the install VM template and create a new one for the normal work, using the just created VyOS.qcow2 image. But it’s easier to modify the install VM to a VM for regular use. In GNS3 open the Preferences / Qemu VMs and edit the VyOS VM:

  • General settings: set the boot priority to HDD and the console type to telnet, optionally set the router symbol and category.
    Final settings - General
  • HDD: set the disk interface of HDA to scsi. This will speedup the boot process considerably.
    Final settings - HDD
  • CD/DVD: optionally unmount the ISO by clearing the image textbox.
    Final settings - CD/DVD
  • Network: set the number of adapters, e.g. to 4 and the name format to eth{0}
    Final settings - Network
  • Advanced settings: enable “Use as a linked base VM”.
    Final settings - Advanced

Then finish the VM edit with “OK”, finally leave the preferences with “OK”.


Create a project with two VyOS router and interconnect them.

Now boot them up, login and configure IP addresses on the eth0 interface, similar to this:

vyos@vyos:~$ configure
vyos@vyos# set interfaces ethernet eth0 address
vyos@vyos# commit
vyos@vyos# save
Saving configuration to '/config/config.boot'...
vyos@vyos# exit

Now you should be able to ping between the VyOS router.