From e02b94e3bac5da53e4043350572a1e1d3fcb9586 Mon Sep 17 00:00:00 2001 From: Aslak Vaa Date: Tue, 18 Feb 2025 15:23:28 +0100 Subject: [PATCH 1/4] Added handling of labels for btrfs --- rpi-clone | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/rpi-clone b/rpi-clone index 6bd7045..75730b6 100755 --- a/rpi-clone +++ b/rpi-clone @@ -602,7 +602,7 @@ mkfs_label() vfat|msdos|exfat|fat16|fat32) label_flag=-n ;; - ext2|ext3|ext4|ntfs|xfs) + ext2|ext3|ext4|ntfs|xfs|btrfs) label_flag=-L ;; hfs|hfsplus) @@ -630,14 +630,31 @@ change_label() dev=$3 dst_part_label "$pnum" "$fs_type" label - if [ "$label" != "" ] && [[ "$fs_type" == *"ext"* ]] - then - echo " e2label $dev $label" - e2label $dev $label - elif [ "$label" != "" ] && [[ "$fs_type" == *"fat"* ]] - then - echo " fatlabel $dev $label" - fatlabel $dev $label + if [ "$label" != "" ] + then + case "$fs_type" in + vfat|msdos|exfat|fat16|fat32) + echo " fatlabel $dev $label" + fatlabel $dev $label + ;; + ext2|ext3|ext4|ntfs|xfs) + echo " e2label $dev $label" + e2label $dev $label + ;; + hfs|hfsplus) + echo " Unhandled label for $dev $label" + ;; + reiserfs) + echo " Unhandled label for $dev $label" + ;; + btrfs) + echo " btrfs filesystem label $dev $label" + btrfs filesystem label $dev $label + ;; + *) + echo " Unhandled label for $dev $label" + ;; + esac fi } From 90fcae8a606a3c8d90822945bdfe82f42ed2ebe9 Mon Sep 17 00:00:00 2001 From: Aslak Vaa Date: Wed, 19 Feb 2025 06:55:59 +0100 Subject: [PATCH 2/4] Added "no label" information to reporting (diff from original master) --- rpi-clone | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rpi-clone b/rpi-clone index 75730b6..66af931 100755 --- a/rpi-clone +++ b/rpi-clone @@ -1853,6 +1853,11 @@ rm -f $clone/etc/udev/rules.d/70-persistent-net.rules dst_root_vol_name=${dst_label[$root_part_num]} +if [ "$dst_root_vol_name" = "" ] +then + dst_root_vol_name="no label" +fi + if ((have_grub)) then qecho "grub-install --root-directory=$clone /dev/$dst_disk" From e9eb0653f91fb8794d9bda9c2787716e300f9d30 Mon Sep 17 00:00:00 2001 From: Aslak Vaa Date: Thu, 20 Feb 2025 15:29:44 +0100 Subject: [PATCH 3/4] Forcibly overwrite the block devices when an existing filesystem is detected when creating btrfs --- rpi-clone | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/rpi-clone b/rpi-clone index 66af931..0263f2a 100755 --- a/rpi-clone +++ b/rpi-clone @@ -1596,15 +1596,20 @@ Use -U for unattended even if initializing. continue fi - if [ "$fs_type" == "fat16" ] - then - mkfs_type="vfat" - elif [ "$fs_type" == "fat32" ] - then - mkfs_type="vfat -F 32" - else - mkfs_type=$fs_type - fi + case "$fs_type" in + fat16) + mkfs_type="vfat" + ;; + fat32) + mkfs_type="vfat -F 32" + ;; + btrfs) + mkfs_type="btrfs -f" + ;; + *) + mkfs_type=$fs_type + ;; + esac if [ "${src_mounted_dir[p]}" == "/boot" ] && ((p == 1)) then From 1b7b9fa19e8d24581568bfa1d14f7df6a1df0caa Mon Sep 17 00:00:00 2001 From: Aslak Vaa Date: Mon, 24 Feb 2025 22:28:26 +0100 Subject: [PATCH 4/4] Revert "Added "no label" information to reporting (diff from original master)" This reverts commit 90fcae8a606a3c8d90822945bdfe82f42ed2ebe9. --- rpi-clone | 5 ----- 1 file changed, 5 deletions(-) diff --git a/rpi-clone b/rpi-clone index 0263f2a..5c28731 100755 --- a/rpi-clone +++ b/rpi-clone @@ -1858,11 +1858,6 @@ rm -f $clone/etc/udev/rules.d/70-persistent-net.rules dst_root_vol_name=${dst_label[$root_part_num]} -if [ "$dst_root_vol_name" = "" ] -then - dst_root_vol_name="no label" -fi - if ((have_grub)) then qecho "grub-install --root-directory=$clone /dev/$dst_disk"