I don't know how disk partitions are named under FreeBSD, but you shouldn't be using the same name for the mbr and bootpartition.bin.
Under Linux, the convention is:
/dev/sda - the "whole disk" device.
/dev/sda1 - Partition 1
/dev/sda2 - Partition 2
etc
The MBR is the first sector on the disk - so you read and write that via /dev/sda.
The first partition (/dev/sda1) is the firmware partition and is marked as "empty" - type 0x00. The second (/dev/sda2) is the FAT32 partition - type 0x0b.
Another issue is that some operating systems (Mac OS X is one) will not create a device node for empty partitions - on Mac OS X you only see the equivalent to /dev/sda2.
If this is the case for you, then you can access the first partition via the "whole disk" device. The first partition (on every ipod I've seen) starts at sector 63, so you can use dd with the seek option.
i.e. to read bootpartition.bin:
dd if=/dev/sda iseek=63 count=16384 of=bootpartition.bin
count=16384 will read 16384 sectors - i.e. 8MB of data.
To write it, use:
dd if=rockboot.bin oseek=63 of=/dev/sda
(replacing /dev/sda in the above two examples with the "whole disk" device for your ipod).