The new FreeNAS is based on nanoBSD, then here are all the steps for generate the disk image of this release (from a FreeBSD 8.1 amd64).
Refer to the README file for more information.
cd /usr/src/tools/tools/nanobsd
svn co https://freenas.svn.sourceforge.net/svnroot/freenas/experimental/ix freenascd freenasThen for build the 64bit release:
sh ../../nanobsd.sh -c freenas64.confOf for build the 32 bit release:sh ../../nanobsd.sh -c freenas32.confThe resulted disk image will be found in:
/tmp/YOUR-LOGIN/obj.freenas64|32/_.disk.full
(Don't forget to copy the disk image in other place and before a reboot if you have the 'clear_tmp_enable="YES"' in you rc.conf!)
Cross-compilation of a 32bit release should be possible, but didn't works for the moment (stop during compile of ports/net/unison).
The generated image can only boot from the first IDE device (/dev/ad0s1a) because of original nanoBSD script limitation (removed in BSDRP).
If you would test it from an USB key, first step is to copy it on your key (/dev/da0 for this example):
dd if=_.disk.full of=/dev/da0 bs=128k
And we need to adapt it, first by setting glabel on each partitions:
glabel label cfg /dev/da0s3
glabel label data /dev/da0s4
glabel label freenas /dev/da0s1aThen mount the root filesystem of the FreeNAS:
mount /dev/label/freenas /mnt
And add this line to boot/loader.conf (it's a FreeBSD 8.1 boot from usb «feature»):
kern.cam.boot_delay=10000
Modify the etc/fstab like that:
/dev/label/freenas / ufs ro 1 1
/dev/label/cfg /cfg ufs rw,noauto 2 2
/dev/label/data /data ufs rw 2 2
And at last, modify conf/default/etc/remount too:
mount -o ro /dev/label/cfg
Unmount the key:
umount /mnt
Now you can try to boot from your usb key (login: root, no password).
FreeNAS is configured as DHCP client, you can try to connect to the very experimental WebGUI, but as wrote in the readme, this first snapshot is only a testing of the «base» system.