When you are installing pfSense on Hyper-V there are some things to consider:
- Use Legacy Network Adapters.
- You need to reset all network adapters in pfSense every time the system boots.
- If running on AMD CPU you must set hw.clflush_disable=1 att boot-time.
- pfSense 2.0.x on Hyper-V is not recommended for production environments and should only be used for lab or test purposes.
The following steps is a description of how to install pfSense on Hyper-V in a successful way:
- Download pfSense-LiveCD-2.0.2-RELEASE-amd64.iso.gz from one of the pfSense mirrors at http://www.pfsense.org/mirror.php?section=downloadsVerify
- Verify the file hash of the downloaded file using your favourite hashing tool (Personally I like HashTab which is freely available for personal use at http://implbits.com/HashTab.aspx).
- Extract the ISO-file from the downloaded tarball using a file archiver of your choice (I like 7-Zip which is an open source file archiver. It is available at http://www.7-zip.org/).
- Create a Hyper-V VM with two Legacy Network Adapters and remove any network adapter already present. The VM should have a small IDE harddrive (typically 1GB) and at least 128MB of RAM.
- Boot the VM on the ISO-file. If you are using a AMD CPU in your windows host you must set the boot parameter hw.clflush_disable=1 at boot time. To do that press 7 at the boot menu and enter the following commands (also shown in the following picture):
OK set hw.clflush_disable=1
- Select the option to install pfSense otherwise you wil just boot the LiveCD.
- Change video font, screenmap and keymap appropriate to your video monitor, keyboard and language. Then select “Accept these Settings”.
- Select Quick/Easy install to use the first hard disk and “automatically” install pfSense.
- Confirm by pressing OK.
- Select to install a standard kernel.
- When the installation is finished, choose to reboot the VM, power it off and eject the ISO.
- Start the VM again (remember to set the parameter hw.clflush_disable=1 at boot-time if using a AMD CPU).
- Configure VLANs if appropriate for your environment.
- Assign interfaces as appropriate for your configuration, confirm by pressing y and enter.
- Enter option 8 to get to the shell.
- Create simple script that resets all your network adapters at boot by entering the following commands (add more interfaces depending on your configuration and start dhclient on all interfaces that should receive IP-configuration dnyamically):
# touch /etc/rc.local
# touch /etc/rc.local.running
# chmod 755 /etc/rc.local
# echo “ifconfig de0 down” >> /etc/rc.local
# echo “ifconfig de0 up” >> /etc/rc.local
# echo “ifconfig de1 down” >> /etc/rc.local
# echo “ifconfig de1 up” >> /etc/rc.local
# echo “dhclient de0” >> /etc/rc.local
- If using an AMD CPU, enter the following command to permanently set the parameter hw.clflush_disable=1 at boot time:
# echo “hw.clflush_disable=1” >> /boot/loader.conf.local
- Reboot to test your configuration.