I'm running FreeBSD 7.0 on my server and I backup to a USB drive every night. I have a problem that if I reboot the kernel detects the USB drive first and tries to mount all the partitions/slices off it and that doesn't work.

I'm using a 3ware raid card configured as a RAID 5 in hardware. FreeBSD sees this as one device called /dev/da0s1, this is also the same devices that USBs use.

Is there a way to mount my system UFS2 drive/slices using UUIDs or Labels instead so that this problem will go away?

First, you'll need to disable USB boot / mass-storage device support in the BIOS, so that it doesn't try to boot from USB.

Then, you can lock in the SCSI device names so that no matter which order you plug in the devices, they will always be numbered the same. That way, the 3Ware array will always be da0 and the USB backup drive will always be da1.

You do this via /boot/loader.conf.

Get the device name, SCSI bus name, and target number via camcontrol devlist: