File-copied partitions/SD cards don't work 😒

Issue:
You are experimenting with various hardware and/or software configurations so you copy something, (like the contents of the /boot partition) to something else - maybe another SD card.

Because all the specifications for the Pi tell us that the system attempts to read certain named files in partition 1 - which must be FAT-32 - it doesn’t matter what or where the partition is. . .  It’s not a special “boot” partition, there’s no special “boot-loader” code hidden in sector 1 of the device - it’s just a bunch of text files.  Copying them around should be a no-brainer, right?

Not so fast, my friend!

Every time I’ve done this, I end up with a system that gets all the way to a step like “system-kill-something-or-other” - and dies.  (It turns out there is a system service, “kill”, that gets started then, and has nothing to do with the problem - but it is  an interesting coincidence!)

What’s happening is that, not long after that, there is something that needs a file from the boot partition - and it calls it by UUID.

Ahh!  Our good friend, the UUID again.

One of the “best practices” that people have been clamoring about for a while now is avoiding references to disks or partitions by device ID, (/dev/sda1, etc.), and - instead of this - identify devices by UUID; because no matter where the device is located - if the port changes, or you move your hard drive to a different SATA connector - the system will still boot because the UUID never changes.

The problem is that the Raspberry Pi isn’t  a beast gaming machine with twenty 256bit processor cores, it’s not  the main load-balancing server for Digital River, it’s a teeny-tiny experimental  system that you should  be able to play with, tweak, fudge, bend, or fling across the room to your heart’s content.  You want to experiment with different versions of [whatever] on a variety of SD cards?  This should not be a problem. . .

But it is.

And the reason is that the Raspbian O/S, (or, at least the version of Buster that Dexter uses?), references everything by UUID and not device ID.

There are two ways to solve this problem:

  1. Find the UUID of the original device, and copy it onto the new one.  (See my article on exactly that subject HERE)
  2. Change everything in cmdline.txt and /etc/fstab to use device ID’s.

Errrrr!  :unamused:  :roll_eyes: