Add files via upload

pull/78/head
Léo DONATH-ILIC 2023-05-24 11:02:55 +02:00 committed by GitHub
parent 8e004f3b23
commit 955c8b57c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 38 additions and 10 deletions

View File

@ -1,9 +1,14 @@
#!/bin/bash
# Last update 16/05/2023 (dd/mm/yyyy) by Léo DONATH-ILIC
# This script will mount a given image in loop mode.
# Make sure to change the path and offsets for the image you use. You can get
# the correct offsets using `file $PATH_TO_IMAGE` or fdisk.
# To make debugging easier
echo "KittenGroomer: in mount_image.sh" 1>&2
@ -13,29 +18,49 @@ if [ "$(id -u)" != "0" ]; then
fi
set -e
set -x
#set -x
# Double check the path and offsets as noted above!
# Path to the image
IMAGE='2019-09-26-raspbian-buster-lite.img'
IMAGE='/home/leo/Downloads/2023-05-03-raspios-bullseye-arm64-lite.img'
######################### NEW #########################
# Start sector of boot (first) partition
BOOT_START=`sfdisk -J ${IMAGE} | grep img1 | sed -n 's/.*"start":*\([[:digit:]]*\).*/\1/p'`
BOOT_START=`sfdisk -J ${IMAGE} | grep -m 1 start | sed 's/"start":\|"\|,//g'`
# Amount of sectors of boot (first) partition
BOOT_SIZE=`sfdisk -J ${IMAGE} | grep img1 | sed -n 's/.*"size":*\([[:digit:]]*\).*/\1/p'`
BOOT_SIZE=`sfdisk -J ${IMAGE} | grep -m 2 size | tail -n +2 | sed 's/"size":\|"\|,//g'`
# Start sector of root (second) partition
ROOT_START=`sfdisk -J ${IMAGE} | grep img2 | sed -n 's/.*"start":*\([[:digit:]]*\).*/\1/p'`
ROOT_START=`sfdisk -J ${IMAGE} | grep -m 2 start | tail -n +2 | sed 's/"start":\|"\|,//g'`
# Amount of sectors of root (second) partition
ROOT_SIZE=`sfdisk -J ${IMAGE} | grep img2 | sed -n 's/.*"size":*\([[:digit:]]*\).*/\1/p'`
ROOT_SIZE=`sfdisk -J ${IMAGE} | grep -m 3 size | tail -n +3 | sed 's/"size":\|"\|,//g'`
######################### OLD #########################
# Start sector of boot (first) partition
#BOOT_START=`sfdisk -J ${IMAGE} | grep img1 | sed -n 's/.*"start":*\([[:digit:]]*\).*/\1/p'`
# Amount of sectors of boot (first) partition
#BOOT_SIZE=`sfdisk -J ${IMAGE} | grep img1 | sed -n 's/.*"size":*\([[:digit:]]*\).*/\1/p'`
# Start sector of root (second) partition
#ROOT_START=`sfdisk -J ${IMAGE} | grep img2 | sed -n 's/.*"start":*\([[:digit:]]*\).*/\1/p'`
# Amount of sectors of root (second) partition
#ROOT_SIZE=`sfdisk -J ${IMAGE} | grep img2 | sed -n 's/.*"size":*\([[:digit:]]*\).*/\1/p'`
# Locations you'd like the partitions mounted
BOOT_PATH='/mnt/rpi-boot'
ROOTFS_PATH='/mnt/rpi-root'
# Calculate offsets for each partition
offset_boot=$((${BOOT_START} * 512))
sizelimit_boot=$((${BOOT_SIZE} * 512))
offset_rootfs=$((${ROOT_START} * 512))
sizelimit_rootfs=$((${ROOT_SIZE} * 512))
############# OLD #############
#offset_boot=$((${BOOT_START} * 512))
#sizelimit_boot=$((${BOOT_SIZE} * 512))
#offset_rootfs=$((${ROOT_START} * 512))
#sizelimit_rootfs=$((${ROOT_SIZE} * 512))
############# NEW #############
offset_boot=$[BOOT_START * 512]
sizelimit_boot=$[BOOT_SIZE * 512]
offset_rootfs=$[ROOT_START * 512]
sizelimit_rootfs=$[ROOT_SIZE * 512]
# TODO: add logic for creating directories if they aren't already there
mkdir -p ${BOOT_PATH}
mkdir -p ${ROOTFS_PATH}
@ -43,4 +68,7 @@ mkdir -p ${ROOTFS_PATH}
mount -o loop,offset=${offset_boot},sizelimit=${sizelimit_boot} ${IMAGE} ${BOOT_PATH}
mount -o loop,offset=${offset_rootfs},sizelimit=${sizelimit_rootfs} ${IMAGE} ${ROOTFS_PATH}
echo "Image mounted" 1>&2