Skip to content

Commit 39411c8

Browse files
committed
Fix installing VM and RPi images to physical disks
1 parent 11b61bd commit 39411c8

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

grml-debootstrap

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,6 +1359,8 @@ mkfs() {
13591359
# will fail to detect the uuid in the chroot
13601360
if [ -n "$VIRTUAL" ] ; then
13611361
einfo "Virtual environment doesn't require blockdev --rereadpt, skipping therefore"
1362+
elif [ -n "$RPI" ] ; then
1363+
einfo "Raspberry Pi image build doesn't require blockdev --rereadpt, skipping therefore"
13621364
elif echo "$TARGET" | grep -q "/dev/md" ; then
13631365
blockdev --rereadpt "${TARGET}"
13641366
else
@@ -1547,19 +1549,29 @@ prepare_image() {
15471549

15481550
# hopefully this always works as expected
15491551
LOOP_PART="${DEVINFO##add map }" # 'loop0p1 (254:5): 0 20477 linear 7:0 3'
1552+
1553+
case "${LOOP_PART}" in
1554+
sd*|vd*|xvd*) part_prefix="" ;;
1555+
*) part_prefix="p" ;;
1556+
esac
1557+
15501558
LOOP_PART="${LOOP_PART// */}" # 'loop0p1'
15511559
if [ -n "$VMEFI" ]; then
15521560
EFI_TARGET="/dev/mapper/$LOOP_PART" # '/dev/mapper/loop0p1'
15531561
if [ "$ARCH" = 'arm64' ]; then
1554-
LOOP_PART="${LOOP_PART%p1}p2"
1562+
LOOP_PART="${LOOP_PART%${part_prefix}1}${part_prefix}2"
15551563
else
1556-
LOOP_PART="${LOOP_PART%p1}p3"
1564+
LOOP_PART="${LOOP_PART%${part_prefix}1}${part_prefix}3"
15571565
fi
15581566
elif [ -n "$RPI" ]; then
15591567
RPIFIRM_TARGET="/dev/mapper/$LOOP_PART" # '/dev/mapper/loop0p1'
1560-
LOOP_PART="${LOOP_PART%p1}p2"
1568+
LOOP_PART="${LOOP_PART%${part_prefix}1}${part_prefix}2"
1569+
fi
1570+
if [ -n "${part_prefix}" ]; then
1571+
LOOP_DISK="${LOOP_PART%${part_prefix}*}" # 'loop0'
1572+
else
1573+
LOOP_DISK="${LOOP_PART%%[0-9]*}" # 'sda'
15611574
fi
1562-
LOOP_DISK="${LOOP_PART%p*}" # 'loop0'
15631575
export TARGET="/dev/mapper/$LOOP_PART" # '/dev/mapper/loop0p1'
15641576

15651577
if [ -z "$TARGET" ] ; then
@@ -1568,7 +1580,7 @@ prepare_image() {
15681580
fi
15691581

15701582
if [ -z "$GRUB" ]; then
1571-
GRUB="/dev/$LOOP_DISK" # '/dev/mapper/loop0'
1583+
GRUB="/dev/$LOOP_DISK" # '/dev/loop0' or '/dev/sda'
15721584
fi
15731585
if [ -z "$EFI" ] && [ "$VMEFI" = '1' ]; then
15741586
EFI="${EFI_TARGET}"

0 commit comments

Comments
 (0)