Although it exists in many other places, I’ve not found a comprehensive set of instructions for installing JunOS 11.4 under VirtualBox that actually works. As I found, It isn’t too difficult, and only took me a day or so.
You’ll need to create a FreeBSD machine in VirtualBox with 1Gb of RAM and 5Gb of disk space. Select one or more network interfaces as the Intel PRO/1000 MT Desktop adapter. If you’re running on a UNIX system, additionally redirect the COM1 serial port to a host pipe called /tmp/com1. Use the command socat /tmp/com - to show the output from the serial console, which is useful after booting the Olive for the first time.
Installing FreeBSD
- Download the FreeBSD 4.4 mini ISO from ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/ISO-IMAGES/4.4/4.4-mini.iso
- Create a FreeBSD machine with 1Gb of RAM. Create a VDI startup disk (either dynamically allocated or fixed size) of 4Gb
- Edit the machine settings and enable network adapters as Intel PRO/1000 MT Desktop (82540EM) adapters. Although FreeBSD 4.4 won’t support these, JunOS 11.4 will.
- Attach the ISO image to the CD/DVD drive in the machine, and boot it.
- When FreeBSD boots, select ‘Skip kernel configuration and continue with installation’.
- At the /stand/sysinstall menu, select a Standard installation.
- At the ‘FDISK Partition Editor’ screen, delete any existing slices and create a single FreeBSD slice covering the entire disk by pressing ‘A’. Press ‘Q’ to finish – changes are automatically saved.
- At the ‘Install Boot Manager for drive ad0?’ page, select ‘Standard’ so as not to install a boot manager.
- At the ‘FreeBSD Disklabel Editor’ screen, create partitions as follows:
- 1G filesystem mounted on /
- 512M swap partition
- 512M filesystem mounted on /config
- Remaining space in a filesystem mounted on /var
- Press ‘Q’ to finish – changes are automatically saved.
- At the ‘Choose Distributions’ page, select ‘X’ to exit’.
- At the ‘Choose Installation Media’ page, select ‘Install from a FreeBSD CD/DVD’.
- The disk will now be partitioned, filesystems created and FreeBSD installed.
- After installation, the following questions will appear. Answer ‘No’ to each:
- Would you like to configure any Ethernet or SLIP/PPP network devices?
- Do you want this machine to function as a network gateway?
- Do you want to configure inetd and simple internet services?
- Do you want to have anonymous FTP access to this machine?
- Do you want to configure this machine as an NFS server?
- Do you want to configure this machine as an NFS client?
- Do you want to select a default security profile for this host?
- Would you like to customise your system console settings?
- Answer ‘Yes’ to “Would you like to set this machine’s time zone now?”. Select ‘No’ to “Is this machine’s CMOS clock set to UTC?”, then select ‘8 – Europe’, ’42 – United Kingdom’ then ‘1 – Great Britain’. Answer ‘Yes’ to “Does the abbreviation ‘BST’ look reasonable?”
- Answer ‘No’ to “Would you like to enable Linux binary compatibility?”
- Answer ‘No’ to “Does this system have a USB mouse attached to it?”, then select ‘Exit’ at the “Please configure your mouse” menu
- Answer ‘No’ to the question regarding browsing the FreeBSD package collection.
- Answer ‘No’ to the question regarding adding initial user accounts.
- Set a password for the ‘root’ user.
- Answer ‘No’ to the question regarding the last chance to set options.
- Select ‘X’ to exit installation, detach the ISO image and select ‘Yes’ to the “Are you sure you wish to exit?” question.
- The virtual machine will now restart.
Creating a JunOS installation image
Download junos-olive-patch.sh and run it against a standard JunOS installation image, for example:
user@host:~$ ./junos-olive-patch.sh jinstall-11.4R2.14-domestic.tgz
This will unpack and patch the installation file, replacing ‘checkpic’ in the pkgtools archive with a symbolic link to /bin/true so the package will install on an Olive.
To get this installation package on to VirtualBox, make it in to an ISO file using mkisofs:
user@host:~$ mkisofs jinstall-11.4R2.14-domestic.tgz > olive.iso
Attach the ISO image to the Olive in VirtualBox, then mount the ISO file on FreeBSD by typing mount /cdrom. Install the package by running pkg_add -f jinstall-11.4R2.14-domestic.tgz.
Reboot, and wait for the BTX loader screen to disappear – this may take several minutes. If you’re using socat to monitor the output of the console, you’ll see JunOS being installed.