How to install pfSense 2.0.2 on Hyper-V (Windows Server 2012)

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:

  1. 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
  2. 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).
  3. 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/).
  4. 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.
  5. 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
    OK boot
    set hw.clflush_disable=1
  6. Select the option to install pfSense otherwise you wil just boot the LiveCD.
    Select the Install option
  7. Change video font, screenmap and keymap appropriate to your video monitor, keyboard and language. Then select “Accept these Settings”.
    Accept these Settings
  8. Select Quick/Easy install to use the first hard disk and “automatically” install pfSense.
    Quick/Easy Install
  9. Confirm by pressing OK.
    Confirm
  10. Select to install a standard kernel.
    Standard kernel
  11. When the installation is finished, choose to reboot the VM, power it off and eject the ISO.
    Reboot
  12. Start the VM again (remember to set the parameter hw.clflush_disable=1 at boot-time if using a AMD CPU).
  13. Configure VLANs if appropriate for your environment.
    Configure VLANs
  14. Assign interfaces as appropriate for your configuration, confirm by pressing y and enter.
    Assig interfaces.
  15. Enter option 8 to get to the shell.
    Shell
  16. 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
    Script
  17. 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
  18. Reboot to test your configuration.
    # reboot

Reference: http://forum.pfsense.org/index.php?topic=44568.0