Recent lostintransit.de blog post called Adding Arista switch to CML was a source of inspiration to the vEOS running in GNS3. The vEOS appliance runs in QEMU/KVM in GNS3. Follow lostintransit's instructins to download the Aboot and vEOS images from Arista's download portal to run. Arista offers free vEOS downloads after a email registration.

Information might be useful to other GNS3 users tinkering in GNS3 with the vEOS appliance installation starting. Having booting issues myself right at the start found following GNS3 community discussion thread called - Arista vEOS Fails to boot. This thread gives a generic overview which GNS3 appliance configuration settings are mandatory to get the installation routine of vEOS in GNS3/QEMU in first place.

📗 Hint
QEMU vEOS installation requires having a Aboot as CDROM, and target HDD available at boot time, in the correct sequence.

Local application versions running:

GNS3

user % gns3 --version 2.2.48.1

QEMU

user % qemu-system-x86_64 --version

QEMU emulator version 9.0.2 Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers

vEOS Installation

The vEOS installation works differently to all known installation routines. the mandatory QEMU appliance settings for booting up vEOS and install it here are documented the GNS3-gui bug report.

📘 Note
The sequence does not change after the installation has been finished. EOS depends on having Aboot available and booted first

GNS3/QEMU mandatory settings

1 Aboot - CDROM 2 HDD - target medium

Boot Nr. 1 (fail)

Booting using the latest vEOS images, following releases

  • Aboot-veos-serial-8.0.2.iso
  • vEOS-lab-4.32.1F.qcow2

This is running into a boot loop. Using the GNS3 appliance templates, the installation never starts, since it fails to mount the target storage to start the installation.

Trying ::1...
Connected to ::1.
Escape character is '^]'.

ISOLINUX 4.05 0x5bd8f633  Copyright (C) 1994-2011 H. Peter Anvin et al
Loading linux.......
Loading initrd...ready.
[    6.382184] Running e2fsck on: /mnt/flash
[    6.649224] e2fsck on /mnt/flash took 0s


Aboot 8.0.2-32351763


Press Control-C now to enter Aboot shell
Booting flash:/vEOS-lab.swi
[   11.391159] sd 0:0:1:0: [sdb] Synchronizing SCSI cache
[   11.393259] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[   11.960776] kexec_core: Starting new kernel
[    0.012929][    T0] dmamem: Failed to allocate CMA
[    6.310720][  T335] Running e2fsck on: /mnt/flash
[    6.421365][  T340] e2fsck on /mnt/flash took 0s
Data in /mnt/flash/vEOS-lab.swi differs from previous boot image on /mnt/flash.
Saving new boot image to /mnt/flash...
Switching rootfs

[   38.281574][    T1] systemd[1]: Failed to mount /.deltas.
[   38.293636][    T1] systemd[1]: Failed to mount /monitor.
[   38.296441][    T1] systemd[1]: Failed to mount /run/netns.
[   38.309815][    T1] systemd[1]: Failed to mount /tmp.
[   38.311826][    T1] systemd[1]: Failed to mount /var/core.
[   38.321823][    T1] systemd[1]: Failed to mount /var/lib/docker.
[   38.324056][    T1] systemd[1]: Failed to mount /var/log.
[   38.330206][    T1] systemd[1]: Failed to mount /var/shmem.
[   38.333547][    T1] systemd[1]: Failed to mount /var/tmp.
[   39.147333][    T1] systemd[1]: Failed to mount FUSE Control File System.
[   39.163081][    T1] systemd[1]: Failed to mount Kernel Configuration File System.
[   39.178860][    T1] systemd[1]: Failed to mount FUSE Control File System.
You are in emergency mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" or "exit"
to boot into default mode.

Cannot open access to console, the root account is locked.
See sulogin(8) man page for more details.

Press Enter to continue.

Something is wrong. The discussion thread leads to a closed bug report. The issue is solved.

Boot Nr.2 (installation starts)

Seeing no further options I decided to change vEOS version to older code. The vEOS installation uses now following images:

  • Aboot-veos-serial-8.0.2.iso
  • vEOS-lab-4.28.3M.qcow2

Using these images the installation process works, it finds the target storage and the installation begins. These are the installation events:

Trying ::1...
Connected to ::1.
Escape character is '^]'.

ISOLINUX 4.05 0x5bd8f633  Copyright (C) 1994-2011 H. Peter Anvin et al
Loading linux.......
Loading initrd...ready.
[    4.482033] Running e2fsck on: /mnt/flash
[    4.733332] e2fsck on /mnt/flash took 0s


Aboot 8.0.2-32351763


Press Control-C now to enter Aboot shell
Booting flash:/vEOS-lab.swi
[    0.121367] dmamem: Failed to allocate CMA
[    5.046624] Running e2fsck on: /mnt/flash
[    5.142447] e2fsck on /mnt/flash took 0s
Data in /mnt/flash/vEOS-lab.swi differs from previous boot image on /mnt/flash.
Saving new boot image to /mnt/flash...
Switching rootfs
Process '/sbin/modprobe -bv sg' failed with exit code 1.
Process '/sbin/modprobe -bv sg' failed with exit code 1.
Process '/sbin/modprobe -bv sg' failed with exit code 1.
Process '/sbin/modprobe -bv sg' failed with exit code 1.
Failed to apply ACL on /dev/sr0: Operation not supported
Failed to apply ACL on /dev/sr0: Operation not supported
Process '/sbin/modprobe -bv sg' failed with exit code 1.

Welcome to Arista Networks EOS 4.28.3M
New seat seat0.
/usr/bin/SsuRestore: line 24: /mnt/flash/persist/AsuEvent.log: No such file or directory
Starting ProcMgr: Removing all files in all subdirs of /etc/ProcMgr.d/run
[  OK  ]
Starting EOS initialization stage 1: [  OK  ]
Starting NorCal initialization: Starting EOS Cloud Init: [  OK  ]
[  OK  ]
Starting EOS initialization stage 2: [  OK  ]
Completing EOS initialization (press ESC to skip): [  OK  ]
Model and Serial Number: unknown
System RAM: 2005448 kB
Flash Memory size:  3.9G

No startup-config was found.

The device is in Zero Touch Provisioning mode and is attempting to
download the startup-config from a remote system. The device will not
be fully functional until either a valid startup-config is downloaded
from a remote system or Zero Touch Provisioning is cancelled.

To cancel Zero Touch Provisioning, login as admin and type
'zerotouch cancel' at the CLI. Alternatively, to disable Zero Touch
Provisioning permanently, type 'zerotouch disable' at the CLI.
Note: The device will reload when these commands are issued.

ZTP disable

In the default state the vEOS installation routine boots in active in a ztp mode. It continuously displays the console with ZTP messages. Login using the know credetianls user/pass admin no password and disable the ZTP procedure. The appliance will reboot after disabling zerotouch:

localhost login: admin
localhost>ena
localhost#zerotouch disable

Boot Nr. 3 (installation continues)

After the command zerotouch disable has been applied on the command line the appliance boots 2nd time. This is the normal appliance behaviour.

Jul 26 20:18:04 localhost ZeroTouch: %ZTP-6-CANCEL: Cancelling Zero Touch Provisioning
Jul 26 20:18:04 localhost Launcher: %LAUNCHER-6-PROCESS_STOP: Configuring process 'ZeroTouch' to stop in role 'ActiveSupervisor'
Jul 26 20:18:04 localhost Launcher: %LAUNCHER-6-PROCESS_STOP: Configuring process 'Ipv6RouterAdvt' to stop in role 'ActiveSupervisor'
Jul 26 20:18:04 localhost ProcMgr-worker: %PROCMGR-6-WORKER_WARMSTART: ProcMgr worker warm start. (PID=1645)
Jul 26 20:18:04 localhost ProcMgr-worker: %PROCMGR-6-TERMINATE_RUNNING_PROCESS: Terminating deconfigured/reconfigured process 'ZeroTouch' (PID=2086)
Jul 26 20:18:04 localhost ProcMgr-worker: %PROCMGR-6-TERMINATE_RUNNING_PROCESS: Terminating deconfigured/reconfigured process 'Ipv6RouterAdvt' (PID=2392)
Jul 26 20:18:04 localhost ProcMgr-worker: %PROCMGR-6-PROCESS_TERMINATED: 'Ipv6RouterAdvt' (PID=2392, status=9) has terminated.
Jul 26 20:18:04 localhost ProcMgr-worker: %PROCMGR-6-PROCESS_TERMINATED: 'ZeroTouch' (PID=2086, status=9) has terminated.
localhost#Flushing AAA accounting queue: [  OK  ]

Restarting system
[20:18:07] watchdog punch .
[20:18:08] watchdog punch .
[20:18:09] watchdog punch .
[20:18:09] watchdog punch .
[  260.437692] sysrq: Remount R/O
[20:18:09] watchdog punch .
[20:18:09] watchdog punch .
[20:18:10] watchdog punch .
[20:18:11] watchdog punch .
Error: No matching scd device found on this machine
Smbus transaction failed (/sb/1/0x23 0x4 0xde), exception = Aham request failed
Powercycle script had no effect; platform = veos
Stopping ProcMgr and managed processes: [FAILED]
umount: /var/shmem: target is busy.
umount: /var/tmp: target is busy.
umount: /mnt/flash: target is busy.
umount: /var/log: target is busy.
[  274.432168] systemd-shutdown[1]: Failed to parse (null): No such file or directory
[  274.436212] systemd-shutdown[1]: Failed to deactivate swaps: No such file or directory
[  274.442818] [3996]: Failed to unmount /mnt/flash: Device or resource busy
[  275.506352] reboot: Restarting system

ISOLINUX 4.05 0x5bd8f633  Copyright (C) 1994-2011 H. Peter Anvin et al
Loading linux.......
Loading initrd...ready.
[    4.674796] Running e2fsck on: /mnt/flash
[    4.760547] e2fsck on /mnt/flash took 0s


Aboot 8.0.2-32351763


Press Control-C now to enter Aboot shell
Booting flash:/vEOS-lab.swi
[    0.126359] dmamem: Failed to allocate CMA
[    5.153002] Running e2fsck on: /mnt/flash
[    5.236887] e2fsck on /mnt/flash took 0s
Switching rootfs
Process '/sbin/modprobe -bv sg' failed with exit code 1.
Process '/sbin/modprobe -bv sg' failed with exit code 1.
Failed to apply ACL on /dev/sr0: Operation not supported
Failed to apply ACL on /dev/sr0: Operation not supported
Process '/sbin/modprobe -bv sg' failed with exit code 1.

Welcome to Arista Networks EOS 4.28.3M
New seat seat0.
Starting ProcMgr: Removing all files in all subdirs of /etc/ProcMgr.d/run
[  OK  ]
Starting EOS initialization stage 1: [  OK  ]
Starting NorCal initialization: Starting EOS Cloud Init: [  OK  ]
[  OK  ]
Starting EOS initialization stage 2: [  OK  ]
Completing EOS initialization (press ESC to skip): [  OK  ]
Model and Serial Number: unknown
System RAM: 2005376 kB
Flash Memory size:  3.9G

The installation process will take its time to finish. After finished installation the ready login prompt is displayed like here:

localhost login:

Using the default Arista credentials to authenticate:

  • username: root
  • password: (use ENTER key)
  • enable : (empty)

Login to the serial line:

localhost login: admin
localhost>ena
localhost#show version
Arista vEOS-lab
Hardware version:
Serial number: 04A96F9020F1BC4C387340CB299B6948
Hardware MAC address: 0c7d.e8bf.c81e
System MAC address: 0c7d.e8bf.c81e

Software image version: 4.28.3M
Architecture: i686
Internal build version: **4.28.3M-28837868.4283M**
Internal build ID: 45af8df6-a20d-4e7c-963f-efa9e922ee91
Image format version: 1.0
Image optimization: None

Uptime: 1 hour and 15 minutes
Total memory: 2005424 kB
Free memory: 1253248 kB

The default startup config. In the shipped-default state the vEOS is a switch, it has the no ip-routing globally enabled:

localhost#show running-config

! Command: show running-config ! device: localhost (vEOS-lab, EOS-4.28.3M) ! ! boot system flash:/vEOS-lab.swi ! no aaa root ! transceiver qsfp default-mode 4x10G ! service routing protocols model ribd ! spanning-tree mode mstp ! interface Ethernet1 ! interface Ethernet2 ! interface Ethernet3 ! interface Ethernet4 ! interface Ethernet5 ! interface Ethernet6 ! interface Ethernet7 ! interface Ethernet8 ! interface Management1 ! no ip routing ! end

vEOS relies on booting Aboot first, this is mandatory setting. Mandatory during installation and mandatory after finished installation. The GNS3 model disk entries and bootalbe order stays unchanged.

The Aboot gives access to the serial-line. Then vEOS boots having that QEMU serial-line available, can be verified using the

show users

Arista command, check the Line con in the output:

localhost#show users

Line User Host(s) Idle Location * 1 con 0 admin idle 00:00:06 -

Summary

Depending on the guest's available resources, the booting the appliance stops for some time on completing EOS init:

Starting EOS initialization stage 2: [  OK  ]
Completing EOS initialization (press ESC to skip):

---- DO NOT press ESC ---

---- FINISHED instalation STATE:

Completing EOS initialization (press ESC to skip): [  OK  ]
Model and Serial Number: unknown
System RAM: 2005376 kB
Flash Memory size:  3.9G

localhost login:

Now having vEOS ready and usable, after last years failed attempts on installation in GNS3. Looking back if I had done more searching I would have found this particular bug listing the correct sequence of images set in GNS3. That was the main issue that prevented having a operational vEOS GNS3 routing appliance at hand.

References