Skip to content

Commit 41b70a4

Browse files
committed
When initializing, put disk id change back after sfdisk, delay after partprobe.
fdisk can complain when changing disk id is before sfdisk. Delay after partprobe, device name changes in /dev can take a moment.
1 parent dd5e4d6 commit 41b70a4

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

rpi-clone

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22

3-
version=2.0.11
3+
version=2.0.12
44

55
# auto run grub-install if grub detected
66
grub_auto=1
@@ -1183,10 +1183,6 @@ Use -U for unattended even if initializing.
11831183
echo ""
11841184
sync
11851185
sleep 1
1186-
new_id=$(od -A n -t x -N 4 /dev/urandom | tr -d " ")
1187-
qprintf "x\ni\n0x$new_id\nr\nw\nq\n" | fdisk /dev/$dst_disk > /dev/null
1188-
sync
1189-
sleep 1
11901186
sfd0=$(sfdisk -d /dev/$src_disk)
11911187
if ((force_2_parts && (n_src_parts > n_image_parts)))
11921188
then
@@ -1217,13 +1213,23 @@ Use -U for unattended even if initializing.
12171213
printf "\n====$PGM\n==orig:\n%s\n\n==edited:\n%s\n" \
12181214
"$sfd0" "$sfd1" >> /tmp/$PGM-fail
12191215
printf "\n Resize failed. See /tmp/$PGM-fail.\n\n"
1216+
1217+
# Don't let dst disk keep source disk ID. Can lead to remounts.
1218+
new_id=$(od -A n -t x -N 4 /dev/urandom | tr -d " ")
1219+
qprintf "x\ni\n0x$new_id\nr\nw\nq\n" | fdisk /dev/$dst_disk > /dev/null
12201220
exit 1
12211221
fi
12221222
done
12231223
printf "\n Resize success.\n\n"
12241224
sync
12251225
sleep 2
1226+
1227+
new_id=$(od -A n -t x -N 4 /dev/urandom | tr -d " ")
1228+
qprintf "x\ni\n0x$new_id\nr\nw\nq\n" | fdisk /dev/$dst_disk > /dev/null
1229+
sync
1230+
sleep 2
12261231
partprobe "/dev/$dst_disk"
1232+
sleep 2
12271233

12281234
for ((p = n_image_parts + 1; p <= n_src_parts; p++))
12291235
do
@@ -1359,7 +1365,9 @@ then
13591365
new_id=$(od -A n -t x -N 4 /dev/urandom | tr -d " ")
13601366
qprintf "x\ni\n0x$new_id\nr\nw\nq\n" | fdisk /dev/$dst_disk | grep changed
13611367
sync
1362-
sleep 1
1368+
sleep 2
1369+
partprobe "/dev/$dst_disk"
1370+
sleep 2
13631371

13641372
line=$(fdisk -l /dev/$dst_disk | grep "Disk identifier:")
13651373
dst_disk_ID=${line#*x}

0 commit comments

Comments
 (0)