# Pi4: HD Clone von SSD und nun?

**URL:** <https://community.symcon.de/t/pi4-hd-clone-von-ssd-und-nun/128697>\
**Category:** Mikrocontroller\
**Created:** [12. April 2022 um 04:40 UTC](https://community.symcon.de/t/pi4-hd-clone-von-ssd-und-nun/128697 "2022-04-12T04:40:14Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![cbeham](https://community.symcon.de/letter_avatar_proxy/v4/letter/c/5daacb/32.png) [@cbeham](https://community.symcon.de/u/cbeham)\
**Post date:** [12. April 2022 um 04:40 UTC](https://community.symcon.de/t/pi4-hd-clone-von-ssd-und-nun/128697/1 "2022-04-12T04:40:14Z")

</div>

Guten Morgen liebe Community,

brauche wieder euer fundiertes Wissen!

Ich habe zur Sicherheit 2 (fast) gleiche Pi´s.  
2 Pi4B mit SSD Shield (Geekworm) und jeweils einer 120GB SSD (einmal NVMe und einmal SATA)

Nun habe ich die SSD vom laufenden Pi ausgebaut und via Windows 11 auf ein Image und von dort auf die 2. SSD geklont.  
Das scheint problemlos funktioniert zu haben.

ABER:  
Der Backup Pi läuft nicht hoch!  
_Anscheinend muss noch irgendetwas manuell geändert werden, die PARTUID? Richtig?_  
Aber da trau ich mich nicht drüber:

```auto
set-partuuid displays or changes the ROOT partition PARTUUID on a device.

Usage syntax is:

set-partuuid device [hhhhhhhh-02 | hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhh | random]

device may be /dev/sdX2 or /dev/mmcblk0p2

If no partuuid is specified, the current ROOT partition PARTUUID will be displayed.

```

```auto
Or manually run nano on /boot/cmdline.txt and /etc/fstab and change the PARTUUID's.

```

Das ist jetzt alles was ich zusammengetragen habe.

Könnt Ihr mir da bitte detaillierter Anweisungen oder eine Bestätigung geben?

Danke und lg  
Christian

---

<div class="post-metadata">

**Author:** ![cbeham](https://community.symcon.de/letter_avatar_proxy/v4/letter/c/5daacb/32.png) [@cbeham](https://community.symcon.de/u/cbeham)\
**Post date:** [12. April 2022 um 05:55 UTC](https://community.symcon.de/t/pi4-hd-clone-von-ssd-und-nun/128697/2 "2022-04-12T05:55:47Z")

</div>

Hier habe ich noch etwas gefunden:

```auto
Change PARTUUID
We need to change the PARTUUID of our SSD’s partitions so the Pi doesn’t get confused about what device to boot from. Right now the partitions on both the SD card and the SSD are an exact match and we need them to be different so we can tell the Pi to boot specifically from our SSD’s partition.

We are going to use fdisk to change the SSD’s PARTUUID to the hexadecimal d34db33f to make our SSD easy to identify. Use the following:

$ sudo fdisk /dev/sda

 Welcome to fdisk (util-linux 2.33.1).
 Changes will remain in memory only, until you decide to write them.
 Be careful before using the write command.
 Command (m for help): p
 Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors
 Disk model: ASM105x
 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: dos
 Disk identifier: 0x6c586e13
 Device Boot Start End Sectors Size Id Type
 /dev/sda1 8192 532479 524288 256M c W95 FAT32 (LBA)
 /dev/sda2 532480 500118191 499585712 238.2G 83 Linux
 Command (m for help): x
 Expert command (m for help): i
 Enter the new disk identifier: 0xd34db33f
 Disk identifier changed from 0x6c586e13 to 0xd34db33f.
 Expert command (m for help): r
 Command (m for help): w
 The partition table has been altered.
 Syncing disks.
That’s it. Let’s verify our change using blkid:

$ sudo blkid

/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="5203-DB74" TYPE="vfat" PARTUUID="6c586e13-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="2ab3f8e1-7dc6-43f5-b0db-dd5759d51d4e" TYPE="ext4" PARTUUID="6c586e13-02"
/dev/sda1: LABEL_FATBOOT="boot" LABEL="boot" UUID="5203-DB74" TYPE="vfat" PARTUUID="d34db33f-01"
/dev/sda2: LABEL="rootfs" UUID="2ab3f8e1-7dc6-43f5-b0db-dd5759d51d4e" TYPE="ext4" PARTUUID="d34db33f-02"
Your /dev/mmcblk0 and /dev/sda devices should now be different from each other. The SD card’s ID is 6c586e13 and the SSD’s PARTUUID is now

Update /boot/cmdline.txt
We are going to change cmdline.txt to point to the SSD for booting instead of the SD card. First make a backup of your existing cmdline.txt file with the following command:

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak
We’ve now created a backup you can restore if something goes wrong. If you need to restore your backup plug the SD card into a computer/device and replace cmdline.txt with cmdline.txt.bak that we made above. Now your Pi should boot normally again.

Open up /boot/cmdline.txt using nano or your favorite text editor:

sudo nano /boot/cmdline.txt
The existing file will look like this:

console=serial0,115200 console=tty1 root=PARTUUID=6c586e13-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh
We are going to change the root=PARTUUID section to point to our new d34db33f PARTUUID like the following:

console=serial0,115200 console=tty1 root=PARTUUID=d34db33f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh
Make the change and double check the line is what it should be,then press Ctrl+X to save our changes.

Note: cmdline.txt should be one long solid line with no breaks — don’t add any line breaks or the system won’t boot and you’ll need to restore the backup we made earlier!

```

```auto
Update /etc/fstab
We are now ready to edit the /etc/fstab file to point to our updated drive. To edit the file type:

sudo nano /etc/fstab
Your current file will look like this:

$ cat /etc/fstab
proc /proc proc defaults 0 0
PARTUUID=6c586e13-01 /boot vfat defaults 0 2
PARTUUID=6c586e13-02 / ext4 defaults,noatime 0 1
sudo nano /etc/fstab
Your current file will look similar to this (PARTUUID varies based on your Raspbian image version):

cat /etc/fstab
proc /proc proc defaults 0 0
PARTUUID=6c586e13-01 /boot vfat defaults 0 2
PARTUUID=6c586e13-02 / ext4 defaults,noatime 0 1
We want to change the root ( / ) partition (PARTUUID ending with -02) to load our SSD’s PARTUUID instead of the SD card. Replace the 2nd partition’s PARTUUID field on the last line in the file with the d34db33f label we applied earlier with fdisk. After making the change my /etc/fstab file looks like this:

proc /proc proc defaults 0 0
PARTUUID=6c586e13-01 /boot vfat defaults 0 2
PARTUUID=d34db33f-02 / ext4 defaults,noatime 0 1
Press Ctrl+X to tell nano to save our changes. Now type sudo reboot to restart the Pi.

Note: We want to leave the first partition (/boot) on the SD card. If you change this to the SSD then apt will update your SSD instead of the SD card so they won’t be used during boot! Remember that we are using the SD card as a bootloader and that is why the firmware updates (such as start.elf, etc) should go there instead of the SSD’s boot partition (which is never used).

```

```auto
Resizing Filesystem
By default the partition on the SSD / Flash drive will only be 1.8G. The Pi expands this automatically on micro SD drives but we will need to do it ourselves for a SSD / Flash drive. To do this we need to expand the partition and then resize the file system.

First let’s open fdisk and print the partitions:

pi@raspberrypi:~ $ sudo fdisk /dev/sda
 Welcome to fdisk (util-linux 2.33.1).
 Changes will remain in memory only, until you decide to write them.
 Be careful before using the write command.
 Command (m for help): p
 Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors
 Disk model: ASM105x
 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: dos
 Disk identifier: 0xd34db33f
 Device Boot Start End Sectors Size Id Type
 /dev/sda1 8192 532479 524288 256M c W95 FAT32 (LBA)
 /dev/sda2 532480 4390911 3858432 1.9G 83 Linux
There is the line we need. Our start value for /dev/sda2 (rootfs) is 532480. Next we need to remove and recreate the partition as a larger size.

If you make any mistakes during this command just close fdisk by pressing q. The changes won’t be written to disk. If you mess up any of the commands the drive will no longer boot and you’ll have to start over again so be careful!

Command (m for help): d
 Partition number (1,2, default 2): 2
 Partition 2 has been deleted.
 Command (m for help): n
 Partition type
    p primary (1 primary, 0 extended, 3 free)
    e extended (container for logical partitions)
 Select (default p): p
 Partition number (2-4, default 2): 2
 First sector (2048-500118191, default 2048): 532480
 Last sector, +/-sectors or +/-size{K,M,G,T,P} (532480-500118191, default 500118191): 500118191 
 Created a new partition 2 of type 'Linux' and of size 238.2 GiB.
 Partition #2 contains a ext4 signature.
 Do you want to remove the signature? [Y]es/[N]o: N
 Command (m for help): w
 The partition table has been altered.
 Syncing disks.
If everything went well then type “w” and press enter. Otherwise press “q” to quit and try again. Once you enter “w” the changes will be permanently written to disk!

Now reboot the system. Type “df -h” to view the current disk:

pi@raspberrypi:~ $ df -h
 Filesystem Size Used Avail Use% Mounted on
 /dev/root 1.8G 1.3G 415M 76% /
 devtmpfs 1.8G 0 1.8G 0% /dev
 tmpfs 2.0G 0 2.0G 0% /dev/shm
 tmpfs 2.0G 8.5M 1.9G 1% /run
 tmpfs 5.0M 4.0K 5.0M 1% /run/lock
 tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
 /dev/mmcblk0p1 253M 52M 201M 21% /boot
 tmpfs 391M 0 391M 0% /run/user/1000
We can see our disk is still 1.8G even after resizing the partition. That’s because we still have one more step! We need to resize the filesystem to fill our new partition space. For this we will use “sudo resize2fs /dev/sda2”:

sudo resize2fs /dev/sda2
 resize2fs 1.44.5 (15-Dec-2018)
 Filesystem at /dev/sda2 is mounted on /; on-line resizing required
 old_desc_blocks = 1, new_desc_blocks = 15
 The filesystem on /dev/sda2 is now 62448214 (4k) blocks long.
Now let’s check df -h again:

pi@raspberrypi:~ $ df -h
 Filesystem Size Used Avail Use% Mounted on
 /dev/root 235G 1.3G 224G 1% /
 devtmpfs 1.8G 0 1.8G 0% /dev
 tmpfs 2.0G 0 2.0G 0% /dev/shm
 tmpfs 2.0G 8.5M 1.9G 1% /run
 tmpfs 5.0M 4.0K 5.0M 1% /run/lock
 tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
 /dev/mmcblk0p1 253M 52M 201M 21% /boot
 tmpfs 391M 0 391M 0% /run/user/1000
And that’s it! You will now be using all of your space on your drive.

```

---

<div class="post-metadata">

**Author:** ![tommi](https://community.symcon.de/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@tommi](https://community.symcon.de/u/tommi)\
**Post date:** [15. April 2022 um 14:23 UTC](https://community.symcon.de/t/pi4-hd-clone-von-ssd-und-nun/128697/3 "2022-04-15T14:23:21Z")

</div>

Eigentlich funktioniert es wie [hier](https://tutorials-raspberrypi.de/raspberry-pi-usb-boot-per-stick-ssd-einrichten/) beschrieben. Bei älternen RPis bzw. OS unbedingt die rpi-update Schritte vorher ausführen und in der cmdline.txt die richtige PartUUID bei root= eintragen

---

<div class="post-metadata">

**Author:** ![Helmut](https://community.symcon.de/user_avatar/community.symcon.de/helmut/32/54_2.png) [@Helmut](https://community.symcon.de/u/Helmut)\
**Post date:** [16. April 2022 um 08:52 UTC](https://community.symcon.de/t/pi4-hd-clone-von-ssd-und-nun/128697/4 "2022-04-16T08:52:08Z")

</div>

Ich habe es mit einem USB to M2. Adapter bei einem Raspi4 und mit einem CM4 I/O Board, dass auch M.2 Steckplatz hatte, gemacht. Ist schon etwas her, kann Dir den Ablauf nicht beschreiben.  
War alles im Netz zu finden, einzig beim CM4 Board habe ich noch etwas zu regeln, er macht reboot nicht vom M.2, nur bei Stromlos bootet er von M.2.  
Schau mal [hier](https://www.youtube.com/watch?v=WolddCfWP5I) und [hier](https://forums.balena.io/t/boot-from-nvme-on-custom-cm4-carrier/350855)

---

<div class="post-metadata">

**Author:** ![cbeham](https://community.symcon.de/letter_avatar_proxy/v4/letter/c/5daacb/32.png) [@cbeham](https://community.symcon.de/u/cbeham)\
**Post date:** [2. November 2022 um 06:02 UTC](https://community.symcon.de/t/pi4-hd-clone-von-ssd-und-nun/128697/5 "2022-11-02T06:02:10Z")

</div>

Hallo Helmut, der erste Link ist " 22kWh LiFePo4 Akku für 3000€" 🙂
