Install on CF on ALIX / PCEngines Board


I found several guides on how to install Vyatta on a compact flash.
Basically it’s all about using a virtual machine and mounting the CF as the installation disk.
I tried now with Windows VMWare Workstation, Mac OS X FUsion and Virtualbox without any luck, I never seem to be able to mount the CF as a disk, so the vm doesn’t even start.

Has anyone been able to get this accomblished with a VyOS image?



In Linux terminology, can you pass through the raw block device as a HDD (i.e. /dev/sdX) ?


I think I’m lost here.
If you mean booting from USB Stick with the ISO and the mount the CF, then no, for whatever reason the ALIX board doesn’t support booting via the two USB Ports

No, sorry I wasn’t clear. Using some form of virtualisation (vmware workstation, fusion, whatever), can you pass through your CF ‘device/disk’ to the virtual machine. Then when you power on, it boots from ISO and might see the CF as a HDD for installation. Hope that helps?



Virtualbox will allow you to pass the USB device directly to the VM


can’t believe it’s that easy …

installation itself worked fine on the CF, but when I stick it into the ALIX board, it boots into grub but then I get:

Booting ‘VyOS 1.1.5 linux (KVM console)’

[ 3.395577] i8042: No controller found

any additional hints?




Back in 2012ish I built my own Vyatta router based on PC Engines alix2d13. I too read about using a virtual machine to build the CF image but never tried it. The article I read was on the Vyatta forums but courtesy of Brocade that article and many many more and knowledge has disappeared into the ether. ‘Your Bad’ Brocade.

Also rather than go down the CF route I elected to buy two 4GB IDE disk-on-modules from InnoDisk. These lay horizontally and have master/slave switches and can be stacked, the HF model has male and female connectors on opposite sides of the board. These allowed me to install on to a RAID1 setup. This is expensive compared to installing on a CF disk - so why did I do it? 'Cause I could :wink: The unfortunate consequence of this is that the CF card slot is disabled :frowning:

EDC 4000 44pin HF 4GB (DE4PF-04GDB1C1DR)
EDC 4000 44pin HB 4GB (DE4PB-04GDB1C1DR)

The method I chose was to PXE boot the router and load Vyatta that way. Now hold on there good buddy, there’s a problem so don’t go running off to build your own TFTP server just yet. Since Vyatta 6.2 and on (and this includes VyOS) there is an issue with PXE booting the Vyatta/VyOS live CD. Just after mdadm sorts itself out the kernel gets its knickers in a bunch and ‘kernel panics’. Looking at debug logs it appears that it is because it is unable to mount/find the file system. Conclusion, Vyatta did something to vmlinuz1 or initrd1.img between 6.1 and 6.2 when they were renamed them to vmlinuz and initrd.img. Note the the dropping of the ‘1’ suffix.

I did discover a work around to this and scratching the back of my mind (it was 3 years ago), you will need to build a tftp server (if you don’t already have one, configure it to PXE serve Vyatta 6.0 or 6.1, install Vyatta on your PC Engines based router, add a system image for Vyatta 6.4 and finally using the VyOS Migration Guide install VyOS, et voila one VyOS based PC Engines router. You will also need to be able to connect to the RS232 port on the alix motherboard in order to install and configure Vyatta for the first time.

Over the past week I have been refreshing my mind with Virtual hardware under VMware Workstation 11. And this is what I did;

  1. Build a gash/temporary Debian 8.1 Linux server.
    Why Debian? Just because I can and Vyatta/VyOS are Debian based.

1.1 Create a new VMware guest based on Debian 7.x 64-bit hardware profile. I then deleted the sound card, Printer and USB components.

1.2 Down load the 64bit netinst iso image debian-8.1.0-amd64-netinst.iso from your local Debian mirror.

1.3 Mount the CD image and boot.

1.4 Debian install: I followed the installation and when it asked for options I dropped the Debian Desktop environment ('cause real men and operating systems have character - go VMS) and the Print Server. I did add the SSH Server option.

1.5 If you want to test the set-up without abusing your alix router, create another VWmare guest but this time use Workstation 9 and the Debian 6 profile and configure an IDE based disk. Again deleting the sound card. (I tried Workstation 11, but there appears to be some sort of hardware issue – ‘T0’ re-spawns too frequently and is disabled for 5 minutes at a time. This happens on a regular basis but it still works.)

  1. Configure the PXE server.

2.1 Logon and switch to root. The base install does not install sudo so you will have to su to the root account.

2.2 Install all the bits and pieces that we will need

apt-get update
apt-get install tftpd-hpa isc-dhcp-server syslinux pxelinux nfs-kernel-server

2.3 TFTP setup
Check the tftpd-hpa configuration

[code]more /etc/default/tftpd-hpa



2.4 DHCP setup
Rename the as installed dhcpd.conf file out of the way

mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf-orig
Create a new dhcpd.conf file from scratch

[code]vi /etc/dhcp/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;

allow booting;

option domain-name “”;
option subnet-mask;
option broadcast-address;
option domain-name-servers;
option routers;

subnet netmask {
option broadcast-address;
option routers;
option domain-name-servers;
filename “pxelinux.0”;

The above will PXE boot any client that asks, if you want to limit who or what

tftpd responds to you will need uncomment the next section and supply

ethernet hardware addresses (MAC address) for the select few.

#group {


host tftpclient {

hardware ethernet 00:50:56:34:F2:24;

filename “pxelinux.0”;


host pxe-32 {

hardware ethernet 00:50:56:35:C1:5F;

filename “pxelinux.0”;



2.5 NFS server set-up
Modify the nfs export file

vi /etc/export

# /etc/exports: the access control list for file systems which may be exported
#               to NFS clients.  See exports(5).
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
Append either or both of the references to vyatta 6.0 or 6.1. Yes they are a bit long winded but if you want to keep this tftp server you can the easily add other operating systems e.g. /srv/nfsroot/debian/8.1.0/amd64 etc.

2.6 PXE set-up - Part 1
At this stage we just need to copy the required base files into the tftp directory and create the pxelinux.cfg directory

cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/ cp /usr/lib/syslinux/modules/bios/{menu.c32,libutil.c32,ldlinux.c32} /srv/tftp/ mkdir /srv/tftp/pxelinux.cfg

2.7 Load Vyatta Live CD files into the NFSroot area.
Unload the CD

Connect the VMware guests' CDRom to the Vyatta 6.0 or 6.1 ISO image.
Mount the cdrom
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
Create the required nfs file structure
mkdir -p /srv/nfsroot/vyatta/6.0/i386/.disk
Create the required tftp file structure
mkdir -p /srv/tftp/vyatta/6.0/i386/live
Copy the CD
cp -r /mnt/cdrom/* /srv/nfsroot/vyatta/6.0/i386/
cp /mnt/cdrom/.disk/* /srv/nfsroot/vyatta/6.0/i386/.disk/
cp /mnt/cdrom/live/{vmlinuz1,initrd1.img} /srv/tftp/vyatta/6.0/i386/live

2.8 PXE setup - Part deux
We want to do a proper job and create a decent boot menu.

Create the default pxelinux config
vi /srv/tftp/pxelinux.cfg/default

SERIAL 0 9600 0

UI menu.c32


MENU TITLE Vyatta Live (i368)

LABEL BootLocal
        localboot 0
        TEXT HELP
        Boot from local hard disk

LABEL live
        MENU LABEL Live (quiet)
        KERNEL vyatta/6.0/i386/live/vmlinuz1
        APPEND boot=live quiet netboot=nfs nfsroot= initrd=vyatta/6.0/i386/live/initrd1.img ramdisk_size=32768 console=ttyS0 console=tty0 nopersistent noautologin nonetwork nouser hostname=vyatta
        TEXT HELP
        Launch Vyatta 6.0 (i386) live environment on tty0

LABEL live-console
        MENU LABEL Live Console (noisy)
        KERNEL vyatta/6.0/i386/live/vmlinuz1
        APPEND boot=live netboot=nfs nfsroot= initrd=vyatta/6.0/i386/live/initrd1.img ramdisk_size=32768 nopersistent noautologin nonetwork nouser hostname=vyatta
        TEXT HELP
        Launch Vyatta 6.0 (i386) live environment on tty0

LABEL live-serial
        MENU LABEL Live Serial (noisy)
        KERNEL vyatta/6.0/i386/live/vmlinuz1
        APPEND boot=live netboot=nfs nfsroot= initrd=vyatta/6.0/i386/live/initrd1.img ramdisk_size=32768 console=ttyS0 nopersistent noautologin nonetwork nouser hostname=vyatta
        TEXT HELP
        Launch Vyatta 6.0 (i386) live environment on ttyS0

LABEL live-debug
        MENU LABEL Live Debug (noisy)
        KERNEL vyatta/6.0/i386/live/vmlinuz1
        APPEND debug verbose boot=live netboot=nfs nfsroot= initrd=vyatta/6.0/i386/live/initrd1.img ramdisk_size=32768 console=ttyS0 console=tty0 nopersistent noautologin nonetwork nouser hostname=vyatta
        TEXT HELP
        Launch Vyatta 6.0 (i386) live environment on ttyS0 and tty0 in
        Debug mode
The APPEND line options MUST appear on a single line i.e. everything between and including APPEND and 'hostname=vyatta' is on a single line.
This will present a pretty coloured boot strap menu.
The above is based on the normal menu you would see if booting from the CD itself.  The original file can be found at


3.0 Lets get this show on the road

3.1 restart the tftp daemon

/etc/init.d/tftpd-hpa restart

3.2 restart the dhcp daemon

/etc/init.d/isc-dhsp-server restart

3.3 restart the nfs kernel server daemon

/etc/init.d/nfs-kernel-server restart
Check that the nfs volumes are available
showmount -e
Test mount the nfs volume
mount /mnt/cdrom
ls -la /mnt/cdrom
umount /mnt/cdrom

3.4 Boot the test hardware
You should see a menu offering BootLocal, Live, Live Console, Live Serial and Live Debug options. The ‘Live’ option is what the Vyatta CD defaults to when booting from the CD directly.

4 Installation

4.1 Install Vyatta 6.0
Configure the live environment as usual to get the network running before executing install-image. The installation will give you the opportunity to copy the live/running config, accept this and the alix router should be configured and you can login via the network.
Don’t forget to set-up the root account and enable the SSH service.

4.2 Add System image for Vyatta 6.4
You will need to ftp or wget the Vyatta 6.4 ISO image on to the router.

Add the image
add system image vyatta-livecd_VSE6.4-2012.05.31_i386.iso
This may barff with some Xattrs error,  ignore this as 6.4 sorts it out.

Reboot the router into Vyatta 6.4

4.3 Migrate to VyOS
Use the Migrating From Vyatta guide to install VyOS

sudo apt-key add so3group_maintainers.key
add system image

4.4 Reboot
Reboot and you will now have a VyOS 1.1.5 (i386) router :slight_smile: :slight_smile:

4.5 Tidy Up
Remember you still need to login as vyatta at this stage.

Remove the Vyatta images for 6.0 and 6.4
delete system image VC6.0-2010.06.01
delete system image VSE6.4-2012.05.31
Your user account will still be vyatta, use the configuration tool to add vyos and delete vyatta.
set system login user vyos level admin
set system login user vyos authentication plaintext-password vyos

logout and login again but this time as vyos

delete system login user vyatta
Change the host name
set system host-name vyos
Change the package repo.
set system package repository vyos components 'main'
set system package repository vyos distribution 'helium'
set system package repository vyos url ''
delete system package repository community

4.6 Job done.

5 Where can I get Vyatta 6.0, 6.1, and 6.4?
Well, I’ve put copies on;

(Never throw anything away, you never know when you might want it again !!)

I have a write-up of the installation I just did (using VirtualBox on Linux to write to the raw CF card) of VyOS 1.1.7 if it’s of use to anyone who finds this thread:

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.