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.

2 Likes

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.