2

Similar question was asked here, but the answer is out of date and I don't have enough reputation to ask in a comment. I know it's possible to boot a Raspberry Pi 4 from USB with the latest firmware update, but does it still need to be on an MBR disk?

3 Answers 3

4

Yes, it is possible, I just did it a few hours ago, all with the latest Raspberry Pi OS Lite image.

I just created a GPT on the external disk, a 256MB partition formatted with vfat and labeled boot, and an 64GB one formatted with ext4 and labeled rootfs, just like the SD card. Then I copied all the files from the SD card boot partition into the disk boot partition, and did the same thing with the rootfs partitions. I choose 64GB as a personal choice. I wanted to have a root partition and a data one. You can probably fill the disk with the root partition.

By the way, you will have to update your /boot/cmdline.txt and /etc/fstab files, as your partitions will have different PARTUUID values. Also you have to change the boot order with raspi-config.

I recommend you set up /dev/sdX values in those files and then boot the raspberry and update the values with the right PARTUUID values. I tried to use the PARTUUID values I got when the disk was attached to my laptop, but they are different, for some reason.

2
  • Note you have to use PARTUUID (as opposed to UUID) since stock Raspbian doesn't use an initrd.
    – genpfault
    Commented Feb 28, 2022 at 18:20
  • I can also confirm I am able to boot Raspberry Pi 4 from a USB attached disk that uses GPT partition table
    – ben_wing
    Commented Jan 2, 2023 at 20:13
0

No the Pi will only boot from a FAT partition on a MBR partition table.

I believe it may be possible with a modified image with GPT support in an initramfs.

0

The awnser of @sildur is correct. Here is an a little bit more in detail what I had to do to get debian on a pi cm4 to boot on a fully usable 4TB m.2 ssd.

  1. Have an MBR Drive where the os is flashed and ran at least one time.
  2. Copy all data while preserving attribute to your local machine
    1. cp -rp ...dist/bootfs/* ./bootfs
    2. cp -rp ...dist/rootfs/* ./rootfs
  3. Use GParted to create an gpt partition table.
  4. Use GParted to create 3 partitions:
    1. bootfs (fat32 with 4MiB storage free before that and 512MiB in size)
    2. rootfs (ext4 with all the space that os and programms need)
    3. (optional) nameAsYouWant (ext4 the rest of the space available)
  5. Copy all the data back to the disk
    1. cp -rp ./bootfs/* ...dist/bootfs
    2. cp -rp ./rootfs/* ...dist/rootfs
  6. Change ...dist/rootfs/etc/fstab and ...dist/bootfs/cmdline.txt PARTUUIDs matching to the PARTUUIDs from blkid (Use PARTUUID not UUID!) You should need to adjust 3 variables in total.

Please adjust the mounting points to your needs: ...dist/bootfs and ...dist/rootfs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.