Umbrel migration case: Fixing boot errors after moving from 1TB HDD to 2TB SSD

Umbrel migration case: Fixing boot errors after moving from 1TB HDD to 2TB SSD

Introduction

I recently migrated my Umbrel node from a 1TB HDD to a 2TB SSD to improve performance and storage capacity. While cloning the disk, I ran into boot errors caused by partition mismatches and PARTUUID conflicts that prevented Umbrel from booting properly.

After troubleshooting, I found a reliable step-by-step method to migrate Umbrel without breaking the boot sequence or Docker environment. I’m sharing this to help anyone facing similar cloning issues.


The Problem

Cloning from a smaller HDD to a larger SSD isn’t always straightforward. After cloning, I encountered:

  • Boot failures with the error:

bash

Gave up waiting for root file system device. Common problems:

Boot args (cat /proc/cmdline)
Check rootdelay= (did the system wait long enough?)
Missing modules (cat /proc/modules; ls /dev)
ALERT! PARTUUID=d2a8e92e-02 does not exist. Dropping to shell!
  • Partition layout and UUID mismatches
  • Unused space not recognized or usable

The Solution (Step-by-step)

Step 1: Clone the original 1TB HDD to the 2TB SSD

Use a cloning tool like dd, (I used “MiniTool Partition Wizard Free” for windows):

bash

sudo dd if=/dev/sdX of=/dev/sdY bs=64K status=progress
  • Replace sdX with the source HDD
  • Replace sdY with the target SSD

This clones all partitions, the partition table, and the bootloader. However, leftover layout gaps and old UUID references will need fixing.


Step 2: Resize partitions on the SSD with GParted

  1. Boot into a GParted Live USB with the 2TB SSD connected.
  2. Use GParted to:
  • Shrink any leftover/unallocated space that came to SSD from the old HDD layout to zero
  • Expand the last partition to fill the rest of the SSD
  1. Apply changes and shut down.

Step 3: Fix PARTUUID mismatch error

Umbrel on x86 uses GRUB as the bootloader instead of a cmdline.txt file.

Step 3.1 — Mount the boot partition
  1. Boot into a live Linux session (Ubuntu Live or GParted Live or any Linux).
  2. Plug in the 2TB SSD and open a terminal.
  3. Create a mount point and mount the boot partition (usually /dev/sdX1):

bash

sudo mkdir /mnt/boot
sudo mount /dev/sdX1 /mnt/boot

Replace sdX1 with your actual partition from lsblk.

Step 3.2 — Edit the GRUB configuration
  1. Navigate to the GRUB folder:

bash

cd /mnt/boot/grub
  1. Edit the GRUB config file (grub.cfg or similar):

bash

sudo nano grub.cfg
  1. Find all occurrences of PARTUUID=... in the boot parameters.
  2. Replace the old PARTUUID values with the new ones you find by running:

bash

lsblk -o NAME,FSTYPE,FSVER,LABEL,UUID,PARTUUID,FSAVAIL,FSUSE%,MOUNTPOINTS

This command lists the new PARTUUIDs for all partitions.

  1. Save and exit the editor (Ctrl+O, Enter, Ctrl+X).
  2. Unmount the boot partition:

bash

sudo umount /mnt/boot

Step 4: Correct all /etc/fstab files with the new PARTUUIDs

Some Umbrel partitions have an fstab file referencing old PARTUUIDs. All must be updated.

Step 4.1 — Identify partitions and UUIDs
  1. Run:

bash

lsblk -o NAME,FSTYPE,FSVER,LABEL,UUID,PARTUUID,FSAVAIL,FSUSE%,MOUNTPOINTS
  1. Note the new PARTUUIDs for each partition.
Step 4.2 — Find and edit all fstab files
  1. Mount each partition that contains an fstab file, for example:

bash

sudo mkdir /mnt/part2
sudo mount /dev/sdX2 /mnt/part2
sudo nano /mnt/part2/etc/fstab
  1. Replace all old PARTUUID references with the new ones.
  2. Save and unmount:

bash

sudo umount /mnt/part2
  1. Repeat for all partitions containing fstab files.

Final Step: Reboot and verify

  • Power off the live USB environment.
  • Boot from the 2TB SSD.
  • Umbrel should boot normally without PARTUUID errors.
  • Verify that all apps (Bitcoin Core, LND, etc.) are running as expected.

Conclusion

Migrating Umbrel from a smaller HDD to a larger SSD requires careful handling of partitions and UUIDs. Cloning alone isn’t enough; you must update bootloader configs and fstab files to reflect new UUIDs.

I hope this helps others avoid the frustration I faced! Feel free to ask questions or share alternative solutions.

I would have used clonezilla in basic mode and clone the drive using its partition, then use gparted from an Ubuntu usb boot stick to expand the partition.

Many users do it this way, but there are now plenty of tutorials on the topic. If I had to do it again, I would definitely use Clonezilla in basic mode.