umbrel icon indicating copy to clipboard operation
umbrel copied to clipboard

UmbrelOS silently reverts GPT disk layout to MBR on Raspberry Pi 5

Open apdunham opened this issue 6 months ago • 1 comments
trafficstars

Summary:

When using a 4TB GPT-formatted NVMe SSD with UmbrelOS on a Raspberry Pi 5, the system silently replaces the GPT table with an MBR layout on first boot. This causes:

  • PARTUUIDs to change, breaking boot if cmdline.txt isn't updated post-rewrite
  • The usable storage to be capped at ~2TB due to MBR limitations
  • GPT-based setups (required for disks >2TB) to be overwritten without warning
  • Confusion for users attempting more advanced or scalable configurations

Environment

UmbrelOS Version: 1.4.2 Hardware: Raspberry Pi 5 (EEPROM updated to March 2025) SSD: Samsung 990 EVO Plus 4TB Disk Format: GPT File Systems: ESP + ext4 Boot Partition: FAT32 with boot, esp flags Initial Bootloader Behavior: Works up to ACT steady green LED Expected Behavior: Should retain GPT and boot successfully with correct PARTUUID Actual Behavior: Umbrel auto-rewrites disk to MBR, breaks boot flow

Steps to Reproduce

Format a 4TB SSD with a GPT layout Create standard Umbrel partitions (CONFIG, BOOT-A, MISC, system-a, data) rsync contents from a working UmbrelOS disk Set cmdline.txt to use correct GPT root PARTUUID Boot Raspberry Pi 5 (EEPROM ≥ Oct 2024) with this disk Observe: GPT is silently replaced with MBR by umbrel-disk-layout.service

Impact

Limits adoption of larger SSDs (2TB+) Breaks users upgrading to Raspberry Pi 5 expecting full GPT support No warning or logs to alert users GPT was overwritten Disables ability to scale storage without modifying system services manually

Potential Workaround

Boot from microSD or working install Manually mask umbrel-disk-layout.service Patch /usr/bin/rugpi-ctrl to bypass MBR enforcement Re-copy system files Update cmdline.txt with corrected GPT PARTUUID But I couldn't get it to boot

Feature Request / Fix

Short Term: Detect GPT and skip layout rewrite Long Term: Add native GPT support for >2TB SSDs with Raspberry Pi 5 Provide warning or dmesg output when GPT is about to be overwritten Expose a disable-auto-partitioning toggle in config.txt or similar

apdunham avatar May 24 '25 11:05 apdunham

+1

koch-crsd avatar May 28 '25 22:05 koch-crsd

+1 Trying to set up a new system with 4TB

mertrois avatar Aug 12 '25 23:08 mertrois

+1 with 4TB. I had just bought all the equipment, what a disappointment. Please find us a solution.

Emilien-Lambert avatar Sep 21 '25 09:09 Emilien-Lambert

+1. Disappointed. I bought a 4TB thinking that I want to use it to future proof my storage data especially for Bitcoin Node in UmbrelOS. Please help. Thanks so much.

(Edit: Worked now, following tutorial by Emilien-Lambert.)

Dolaar585 avatar Nov 06 '25 09:11 Dolaar585

Hi, I forgot to share the update here, but I found a solution. I converted the partition from MBR to GPT and it's been working perfectly since my last comment, so around September 2025.

I created a tutorial in a markdown file that I'm sharing here.

Raspberry Pi 5: Converting MBR to GPT for 4TB+ Drives

Leave a star if this was helpful to you! 🙂

Emilien-Lambert avatar Nov 06 '25 11:11 Emilien-Lambert

Thanks very much Emilien-Lambert. Worked great following your tutorial, on my RPi 5 + 4TB nvme on UmbrelOS. Thanks again!

(just had to change "/dev/sda" etc to "/dev/nvme0n1" etc for my drive)

Dolaar585 avatar Nov 06 '25 16:11 Dolaar585