M0n0wall to pfSense CrossFlash HowTo
7-Zip file containing all needed files:
- Tested on m0n0wall 1.34 & 1.33 with pfSense 2.1 NanoBSD
- 256MB RAM w/ roughly 160MB free (if you have less free RAM, you will get disk errors when uploading)
- Set disk variable in pfSenseCrossFlashConfigRestore.sh script BEFORE uploading (steps & download below)
(Open exec.php, display attached disks, use correct disk target in next step)
(Set disk variable in pfSenseCrossFlashConfigRestore.sh script & save)
Upload files: pfSenseCrossFlash.sh, pfSenseCrossFlashConfigRestore.sh, php.ini
chmod +x /tmp/pfSenseCrossFlash.sh
(Upload FULL NanoBSD image via exec.php, match image size with CF card size, example uses 2GB)
Upload pfSense-2.1-RELEASE-2g-i386-nanobsd.img.gz via exec.php
(Flash pfSense image, replace [disk[partition]] with disk variable from previous step)
gzip -dc /tmp/pfSense-2.1-RELEASE-2g-i386-nanobsd.img.gz | dd of=/dev/[disk[partition]] obs=64k
(Restore m0n0wall config to pfSense & reboot)
Tada! Upon reboot, pfSense will start from slice 1, upgrade the m0n0wall XML config to a pfSense XML config just as it would if you restored a m0n0wall config to an already functional pfSense install, so your interfaces, IP's, passwords, VPN's, interface filter rules, anything that is normally converted, is.
Yes, downtime going from an hour or three to 5-15 minutes (just the final reboot) is pretty cool…..
However, NOT having to drive to 12 (or 1200 in some cases) locations and physically upgrade these (mostly ALIX) m0n0wall boxes by pulling the storage device or using a boot disc is simply indispensable.....
Plus, Google said it couldn't be done. Ha!
Update: Tested and working on m0n0wall 1.8.1, 1.34, 1.33 to pfSense 2.2.2 + 2.1 NanoBSD