The Raspberry can indeed be programmed to boot from (certain) USB pens, but right now, only the Raspberry 3 is supporting that functionality.
Apparently, the rpi 3 comes with a fuse that can be programatically blown from Raspbian (once). Be aware that once the fuse is blown, there is no coming back. They call it "programming the OTP bit".
Also, there are some timing issues with some USB pens models, however the guys responsible for the project have booted successfully with those models:
- Sandisk Cruzer Fit 16GB
- Sandisk Cruzer Blade 16Gb
- Samsung 32GB USB 3.0 drive
- MeCo 16GB USB 3.0
So according to their instructions:
Install first Raspbian in an SD card;
Then enable USB boot mode with:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
program_usb_boot_mode=1 to the end of
Reboot the Raspberry Pi with
sudo reboot, then check that the OTP bit has
been programmed with:
$ vcgencmd otp_dump | grep 17:
Ensure the output 0x3020000a is shown. If it is not, then the OTP bit
has not been successfully programmed.
Install/burn the Linux distro of your choice to your USB device as you would normally do to an SD card.
Attach the USB mass storage device to your Raspberry Pi 3 and power it
up. After between five and ten seconds the Raspberry Pi 3 should begin
booting, and display the rainbow splash screen on an attached screen.
see How to boot from a USB mass storage device on a Raspberry PI 3 and PI 3 booting part I: USB mass storage boot beta