Implemented set_device_path function

This commit is contained in:
Kevin Veen-Birkenbach 2020-05-15 12:23:07 +02:00
parent df1fcfff63
commit af6e17b4c5
3 changed files with 34 additions and 27 deletions

View File

@ -17,3 +17,15 @@ echo_partition_name(){
echo "$1$2" echo "$1$2"
fi fi
} }
# Routine to echo the full sd-card-path
set_device_path(){
info "Available devices:"
ls -lasi /dev/ | grep -E "sd|mm"
question "Please type in the name of the device: /dev/" && read -r device
device_path="/dev/$device"
if [ ! -b "$device_path" ]
then
error "$device_path is not valid device."
fi
}

View File

@ -3,14 +3,19 @@
# shellcheck disable=SC2015 # Deactivating bool hint # shellcheck disable=SC2015 # Deactivating bool hint
source "$(dirname "$(readlink -f "${0}")")/base.sh" || (echo "Loading base.sh failed." && exit 1) source "$(dirname "$(readlink -f "${0}")")/base.sh" || (echo "Loading base.sh failed." && exit 1)
info "Starting chroot..."
set_device_path
info "Making mount dir..." && info "Making mount dir..." &&
mkdir -p /mnt/raspbian || mkdir -p /mnt/raspbian ||
error error
root_mount_path="/mnt/raspbian" root_mount_path="/mnt/raspbian"
boot_mount_path="/mnt/raspbian/boot" boot_mount_path="/mnt/raspbian/boot"
root_partition_path=$(echo_partition_name $1 "2") root_partition_path=$(echo_partition_name $device_path "2")
boot_partition_path=$(echo_partition_name $1 "1") boot_partition_path=$(echo_partition_name $device_path "1")
info "Mount partitions..." info "Mount partitions..."
mount -o rw "$boot_partition_path" "$boot_mount_path" || mount -o rw "$boot_partition_path" "$boot_mount_path" ||

View File

@ -5,6 +5,7 @@ source "$(dirname "$(readlink -f "${0}")")/base.sh" || (echo "Loading base.sh fa
info "Setupscript for images started..." info "Setupscript for images started..."
info "Define functions..."
destructor(){ destructor(){
info "Cleaning up..." info "Cleaning up..."
sed -i 's/^#CHROOT //g' "$root_mount_path""etc/ld.so.preload" sed -i 's/^#CHROOT //g' "$root_mount_path""etc/ld.so.preload"
@ -23,16 +24,14 @@ destructor(){
info "Define variables..." info "Define variables..."
working_folder="/tmp/raspberry-pi-tools-$(date +%s)/"; working_folder="/tmp/raspberry-pi-tools-$(date +%s)/";
info "Define functions..."
info "Create temporary working folder in $working_folder";
mkdir -v "$working_folder"
info "Checking if root..." info "Checking if root..."
if [ "$(id -u)" != "0" ];then if [ "$(id -u)" != "0" ];then
error "This script must be executed as root!" error "This script must be executed as root!"
fi fi
info "Create temporary working folder in $working_folder";
mkdir -v "$working_folder"
info "Configure user..." info "Configure user..."
question "Please type in a valid username from which the SSH-Key should be copied:" && read -r origin_username; question "Please type in a valid username from which the SSH-Key should be copied:" && read -r origin_username;
getent passwd "$origin_username" > /dev/null 2 || error "User $origin_username doesn't exist."; getent passwd "$origin_username" > /dev/null 2 || error "User $origin_username doesn't exist.";
@ -46,20 +45,11 @@ if [ ! -d "$image_folder" ]; then
mkdir -v "$image_folder" mkdir -v "$image_folder"
fi fi
info "Selecting sd-card..." set_device_path
info "Show available devices..."
ls -lasi /dev/ | grep -E "sd|mm"
question "Please type in the name of the correct device: /dev/" && read -r device
sd_card_path="/dev/$device"
if [ ! -b "$sd_card_path" ] if mount | grep -q "$device_path"
then then
error "$sd_card_path is not valid device." error "Device $device_path is allready mounted. Umount with \"umount $device_path*\"."
fi
if mount | grep -q "$sd_card_path"
then
error "Device $sd_card_path is allready mounted. Umount with \"umount $sd_card_path*\"."
fi fi
question "Select which Raspberry Pi version should be used:" && read -r version question "Select which Raspberry Pi version should be used:" && read -r version
@ -167,8 +157,8 @@ root_mount_path="$working_folder""root/"
mkdir -v "$boot_mount_path" mkdir -v "$boot_mount_path"
mkdir -v "$root_mount_path" mkdir -v "$root_mount_path"
boot_partition_path=$(echo_partition_name $sd_card_path "1") boot_partition_path=$(echo_partition_name $device_path "1")
root_partition_path=$(echo_partition_name $sd_card_path "2") root_partition_path=$(echo_partition_name $device_path "2")
mount_partitions(){ mount_partitions(){
info "Mount boot and root partition..." info "Mount boot and root partition..."
@ -177,15 +167,15 @@ mount_partitions(){
info "The following mounts refering this setup exist:" && mount | grep "$working_folder" info "The following mounts refering this setup exist:" && mount | grep "$working_folder"
} }
question "Should the image be transfered to $sd_card_path?(y/n)" && read -r transfer_image question "Should the image be transfered to $device_path?(y/n)" && read -r transfer_image
if [ "$transfer_image" = "y" ] if [ "$transfer_image" = "y" ]
then then
question "Should $sd_card_path be overwritten with zeros before copying?(y/n)" && read -r copy_zeros_to_device question "Should $device_path be overwritten with zeros before copying?(y/n)" && read -r copy_zeros_to_device
if [ "$copy_zeros_to_device" = "y" ] if [ "$copy_zeros_to_device" = "y" ]
then then
info "Overwritting..." info "Overwritting..."
dd if=/dev/zero of="$sd_card_path" bs=1M || error "Overwritting $sd_card_path failed." dd if=/dev/zero of="$device_path" bs=1M || error "Overwritting $device_path failed."
else else
info "Skipping Overwritting..." info "Skipping Overwritting..."
fi fi
@ -209,7 +199,7 @@ if [ "$transfer_image" = "y" ]
echo "" #and then press ENTER twice to accept the default first and last sector. echo "" #and then press ENTER twice to accept the default first and last sector.
echo "" echo ""
echo "w" #Write the partition table and exit by typing w. echo "w" #Write the partition table and exit by typing w.
)| fdisk "$sd_card_path" || error "Creating partitions failed. Try to execute this script with the overwritting parameter." )| fdisk "$device_path" || error "Creating partitions failed. Try to execute this script with the overwritting parameter."
info "Format boot partition..." info "Format boot partition..."
mkfs.vfat "$boot_partition_path" || error "Format boot is not possible." mkfs.vfat "$boot_partition_path" || error "Format boot is not possible."
@ -228,11 +218,11 @@ if [ "$transfer_image" = "y" ]
;; ;;
"moode") "moode")
unzip -p "$image_path" | sudo dd of="$sd_card_path" bs=1M conv=fsync || error "DD $image_path to $sd_card_path failed." unzip -p "$image_path" | sudo dd of="$device_path" bs=1M conv=fsync || error "DD $image_path to $device_path failed."
sync sync
;; ;;
"retropie") "retropie")
gunzip -c "$image_path" | sudo dd of="$sd_card_path" bs=1M conv=fsync gunzip -c "$image_path" | sudo dd of="$device_path" bs=1M conv=fsync
sync sync
;; ;;
*) *)