I cloned my SSD to my USB using dd, but the USB won't boot...

Here's the story: I just got a 275 GB SSD to replace my 128 GB SSD, which is running low on space, but I want to continue using my Ubuntu 16.04 OS exactly as I have set it up. Based on tutorials I've read, the method to do this seems to be:

  1. Copy the 128 GB SSD to to the 256 GB USB.
  2. Install the 275 GB SSD.
  3. Boot from the 256 GB USB
  4. Copy the 256 GB USB to the 275 GB SSD

So, I cloned my SSD (128 GB) to my USB (256 GB) using the following command learned from here:

sudo dd if=/dev/sda | sudo dd of=/dev/sdb bs=32M status=progress

The process completed a few hours later without error.

Before installing the new 275 SSD, I decided to test the USB and see if it would load. So, I restarted my computer, went into BIOS to change the primary boot device to the USB, restarted again. The computer seems to have skipped booting from the USB, because it booted from the SSD.

When the 128 GB SSD loaded, I entered sudo fdisk -l, which output the following:

Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt

Disk identifier: 77422302-BE7A-49CA-ABA7-DAF209D9121A

Device Start End Sectors Size Type /dev/sda1 34 1050815 1050782 513.1M EFI System

/dev/sda2 1050816 241919956 240869141 114.9G Linux filesystem

/dev/sda3 241919957 250069630 8149674 3.9G Linux swap

GPT PMBR size mismatch (250069679 != 483471359) will be corrected by w(rite).

Disk /dev/sdb: 230.6 GiB, 247537336320 bytes, 483471360 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: gpt

Disk identifier: 77422302-BE7A-49CA-ABA7-DAF209D9121A

According to the emboldened portion, there is a GPT PMBR size mismatch that can be corrected by w(rite). In several other postings related to cloning using dd, I did not notice anyone who was giving direction state that the GPT PMBR size mismatch might occur. Most often, the caution was to make sure the drive being cloned to is larger than the drive being cloned from.

Anyway, I read the fdisk man page and there's no w(rite) or w or rite, so I don't know what the emboldened portion is telling me to do.

So, I searched the internet and followed the instructions on this page, using gdisk, which did not seem to do anything because fdisk -l continues to show GPT PMBR size mismatch

So, I searched the internet and found this page, which describes a similar situation, and I followed the instructions therein by entering the following:

sudo dd if=/dev/sda of=/tmp/mbrsda.bak bs=446 count=1

sudo dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1

Then I rebooted and, still, the USB won't boot.

How do I get my USB to boot so I can dd it to my 275 GB SSD?

  • Because they're not the same size. So the partition table on the target is considered to be invalid, so UEFI refuse to boot from the target. – 炸鱼薯条德里克 Sep 14 '19 at 4:59
  • 1
    You shouldn't use dd for cloning filesystems unless the underlying disks have exactly the same specifications. And by specifications, I mean size and sector sizes. Use some tool like gparted that help you cloning. I personally wouldn't clone, but would install the system from scratch and just transfer the user data. In this way you keep the filesystems fresh and TRIM still works properly without any impact on performance. – Martin Sugioarto Jan 25 at 10:43

It seems the problem was with the GPT PMBR size mismatch. Here was my setup: The 128 GB SSD and 256 GB USB are plugged into the computer, the 275 GB SSD is not.

(1) Reboot or power on the computer.

(2) Access the GRUB menu: When the BIOS or firmware startup screen first appears, press and hold the [Shift] key.How Linux Works: What Every Superuser Should Know by Brian Ward (ISBN: 978-1-59327-567-9)

(3) View the boot loader configuration commands for the default boot option: Press [E].

(4) Access the GRUB command line: Press [C] at the boot menu or configuration editor. The GRUB prompt diplays grub>

(5) While in the GRUB command line I entered commands that only displayed stuff (e.g., ls, echo $root, set), I don't think I changed anything here. Then I exited GRUB and I think the fsck command was automatically executed (I didn't do it), because I was prompted to fix specific problems with the blocks of the filesystem. I entered [Y] to fix those problems and the computer rebooted into the cloned 256 GB USB. So, I think fsck is the command that solved my problem.

(6) Install the 275 GB SSD.

(7) Boot using the cloned 256 GB USB.

(8) Clone the 256 GB USB onto the 275 SSD.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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