Introduction: Working Procedure to Make Raspberry Pi 2b V1.1 Boot From Usb Sata SSD

About: 78 years old, retired with much time to spend.

After spent several days looking for a way to let my Pi 2B V1.1 boot from Usb SSD without good results (I tried all of them), finally I found two really working tricks.

I think that other peoples in the world own an Pi 2B v1.1 confined within the limits of the SD, so I thought I'd share with them the following.

I personal tested the procedure two times, and always all gone well.

I don't exlude it can work on more recent Pis, avoiding to manage OTP and other stuff...

I greatly thank RonR and PiHome (see credits at BOP).

P.S. I’m not a Linux expert, so please don’t put me nerd questions 8-D

Let's go on...

Step 1: PREPARE FOR USB BOOT

Step 1.1

in Windows:

  1. Download latest Raspbian Buster from images server
  2. Download Win32 Disk Imager from this link
  3. Flash Buster on a 16/324GB SD with Win32 Disk Imager
  4. Add an empty file named 'ssh' to the boot (VFAT) partition of your SD card to enable SSH

Step 1.2

in RPi:

  1. Insert the SD into the Raspberry and power on
  2. Complete the base installation in the normal way
  3. Power off RPi

Step 1.3

in Windows:

  1. Create an image of SD with Win32 Disk Imager and name it Buster_installed.img
  2. Connect your SSD to USB
  3. If new, quick format it as FAT32
  4. Flash Buster_installed image on the SSD with Win32 Disk Imager
  5. Disconnect the SSD

Step 1.4

in RPi

Insert the SD and the SSD into the Raspberry and power on

From now on all the PARTUUID shown are only for example, you’ve to use yours

Now type

sudo ls /dev/disk/by-partuuid

the output:

pi@raspberrypi:~ $ Sudo ls /dev/disk/by-partuuid

16f266b1-01 16f266b1-02 2f1ce4b1-01 2f1ce4b1-02

If the PARTUUID are the same (and it should be):

Type:

sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.34).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help): x # enter x to go to expert menu

Expert command (m for help): i # enter i to change identifier

Here below put random 8 numbers/letters

Enter the new disk identifier: 0x60123f76 # at your choice

Disk identifier changed from 0x60123f75 to 0x60123f76.

Expert command (m for help): r # enter r to return to main menu

Command (m for help): w # enter w to write change to MBR

The partition table has been altered.

Calling ioctl() to re-read partition table.

Syncing disks.

Now type

sudo ls /dev/disk/by-partuuid

For sure now the PARTUUID are different.

Step 1.5

Open a terminal and type

blkid

the output’:

pi@raspberrypi:~ $ blkid

/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="B05C-D0C4" TYPE="vfat" PARTUUID="2f1ce4b1-01"

/dev/mmcblk0p2: LABEL="rootfs" UUID="075b0d0c-7b1e-4855-9547-125591698723" TYPE="ext4" PARTUUID="2f1ce4b1-02"

Here you find the SD PARTUUID (ex. 2f1ce4b1-02)

Step 1.6

Now type

sudo ls /dev/disk/by-partuuid

the output:

pi@raspberrypi:~ $ Sudo ls /dev/disk/by-partuuid

60123f76-01 60123f76-02 2f1ce4b1-01 2f1ce4b1-02

Here you find the SSD PARTUUID (ex. 60123f76-02), usually /dev/sda2

Now type:

sudo nano /boot/cmdline.txt

Find “root=PARTUUID=2f1ce4b1-02”, replace with “root=PARTUUID=60123f76-02” and save

Type:

sudo reboot

If all is OK Raspberry should now boot from SSD.

Note that all above doesn’t compromise the original SD.

You can at anytime, simply running STEP 1.5 with the original SD’s PARTUUID, revert to SD boot.

Done!

Step 2: RESIZE SSD

Read carefully PiHome page .

It works exactly as stated.

If all is OK Raspberry should now boot from SSD and make a check disk.

Once finished it will stop on a grey screen with trhee white square dots; wait a minute or two to be sure nothing happens further, then power off and on again.

Voilà…

Step 3: Done!