Raspberry Pi: Raspbian – Boot From USB Hard Drive

While this is not a true boot from hard drive since an SD card is still required it will speed up your system and possibly reduce usage of the SD card to prevent SD card failure.

sudo fdisk /dev/sda

If partitions exist delete partitions using d then

[enter] Partition Type
[enter] Partition Number
[enter] Partition Size

If your current partition is on mmcblk0p6 and destination partition sda1 use

sudo dd if=/dev/mmcblk0p6 of=/dev/sda1

sudo resize2fs /dev/sda1

sudo nano /boot/cmdline.txt

change root=/dev/mmcblk0p6 to root=/dev/sda1

ctrl + o
ctrl + x

sudo reboot