mirror of
https://github.com/j-a-n/raspberrymatic-addon-rmupdate.git
synced 2023-10-10 13:37:40 +02:00
tinker
This commit is contained in:
parent
8dd53982ea
commit
27d16d809a
@ -1,7 +1,6 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
LOOP_DEV=7
|
LOOP_DEV=7
|
||||||
PART_START=512
|
|
||||||
BOOT_SIZE=$((250*1024*1024))
|
BOOT_SIZE=$((250*1024*1024))
|
||||||
ROOT_SIZE=$((1000*1024*1024))
|
ROOT_SIZE=$((1000*1024*1024))
|
||||||
USR_LOCAL_SIZE=$((2*1024*1024))
|
USR_LOCAL_SIZE=$((2*1024*1024))
|
||||||
@ -14,13 +13,17 @@ fi
|
|||||||
image_file="$(realpath $1)"
|
image_file="$(realpath $1)"
|
||||||
new_image_file="${image_file/\.img/\.rmupdate\.img}"
|
new_image_file="${image_file/\.img/\.rmupdate\.img}"
|
||||||
|
|
||||||
[ $tinker == 1 ] && PART_START=$((906*512))
|
|
||||||
|
|
||||||
if [[ ! $image_file =~ .*\.img ]]; then
|
if [[ ! $image_file =~ .*\.img ]]; then
|
||||||
echo "Not an image file: ${image_file}." 1>&2
|
echo "Not an image file: ${image_file}." 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
tinker=0
|
||||||
|
[[ $(basename $image_file) =~ .*tinkerboard.* ]] && tinker=1
|
||||||
|
|
||||||
|
part_start=512
|
||||||
|
[ $tinker == 1 ] && part_start=$((906*512))
|
||||||
|
|
||||||
echo "image: ${image_file}"
|
echo "image: ${image_file}"
|
||||||
echo "adjusted image: ${new_image_file}"
|
echo "adjusted image: ${new_image_file}"
|
||||||
|
|
||||||
@ -28,11 +31,11 @@ echo "*** Creating new image file and partitions ***"
|
|||||||
dd if=/dev/zero of=$new_image_file bs=1M count=$((((${BOOT_SIZE}+${ROOT_SIZE}+${ROOT_SIZE}+${USR_LOCAL_SIZE})/1024/1024)+1))
|
dd if=/dev/zero of=$new_image_file bs=1M count=$((((${BOOT_SIZE}+${ROOT_SIZE}+${ROOT_SIZE}+${USR_LOCAL_SIZE})/1024/1024)+1))
|
||||||
parted --script $new_image_file \
|
parted --script $new_image_file \
|
||||||
mklabel msdos \
|
mklabel msdos \
|
||||||
mkpart primary fat32 ${PART_START}B ${BOOT_SIZE}B \
|
mkpart primary fat32 ${part_start}B ${BOOT_SIZE}B \
|
||||||
set 1 boot on \
|
set 1 boot on \
|
||||||
mkpart primary ext4 $((${PART_START}+${BOOT_SIZE}))B $((${BOOT_SIZE}+${ROOT_SIZE}))B \
|
mkpart primary ext4 $((${part_start}+${BOOT_SIZE}))B $((${BOOT_SIZE}+${ROOT_SIZE}))B \
|
||||||
mkpart primary ext4 $((${PART_START}+${BOOT_SIZE}+${ROOT_SIZE}))B $((${BOOT_SIZE}+${ROOT_SIZE}+${ROOT_SIZE}))B \
|
mkpart primary ext4 $((${part_start}+${BOOT_SIZE}+${ROOT_SIZE}))B $((${BOOT_SIZE}+${ROOT_SIZE}+${ROOT_SIZE}))B \
|
||||||
mkpart primary ext4 $((${PART_START}+${BOOT_SIZE}+${ROOT_SIZE}+${ROOT_SIZE}))B 100%
|
mkpart primary ext4 $((${part_start}+${BOOT_SIZE}+${ROOT_SIZE}+${ROOT_SIZE}))B 100%
|
||||||
|
|
||||||
echo "*** Copying original partitons ***"
|
echo "*** Copying original partitons ***"
|
||||||
oIFS="$IFS"
|
oIFS="$IFS"
|
||||||
@ -46,8 +49,8 @@ for line in $(parted $image_file unit B print | grep primary); do
|
|||||||
echo $num - $start - $size
|
echo $num - $start - $size
|
||||||
seek=0
|
seek=0
|
||||||
[ "$num" = "1" ] && seek=$start
|
[ "$num" = "1" ] && seek=$start
|
||||||
[ "$num" = "2" ] && seek=$(((${PART_START}+${BOOT_SIZE})/512))
|
[ "$num" = "2" ] && seek=$(((${part_start}+${BOOT_SIZE})/512))
|
||||||
[ "$num" = "3" ] && seek=$(((${PART_START}+${BOOT_SIZE}+${ROOT_SIZE}+${ROOT_SIZE})/512))
|
[ "$num" = "3" ] && seek=$(((${part_start}+${BOOT_SIZE}+${ROOT_SIZE}+${ROOT_SIZE})/512))
|
||||||
dd if=$image_file of=$new_image_file bs=512 skip=$start count=$size seek=$seek conv=notrunc
|
dd if=$image_file of=$new_image_file bs=512 skip=$start count=$size seek=$seek conv=notrunc
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -89,7 +92,12 @@ mkfs.vfat -F32 -n bootfs /dev/mapper/loop${LOOP_DEV}p1
|
|||||||
sleep 3
|
sleep 3
|
||||||
mount /dev/mapper/loop${LOOP_DEV}p1 /tmp/rmupdate.mnt
|
mount /dev/mapper/loop${LOOP_DEV}p1 /tmp/rmupdate.mnt
|
||||||
(cd /tmp/rmupdate.mnt; tar xf /tmp/rmupdate.boot.tar .)
|
(cd /tmp/rmupdate.mnt; tar xf /tmp/rmupdate.boot.tar .)
|
||||||
sed -i -r s"/root=\S+/root=PARTUUID=${partuuid}/" /tmp/rmupdate.mnt/cmdline.txt
|
|
||||||
|
bootconf=cmdline.txt
|
||||||
|
[ $tinker == 1 ] && bootconf=extlinux/extlinux.conf
|
||||||
|
if [ $tinker == 1 ]; then
|
||||||
|
sed -i -r s"/root=\S+/root=PARTUUID=${partuuid}/" /tmp/rmupdate.mnt/${bootconf}
|
||||||
|
fi
|
||||||
umount /tmp/rmupdate.mnt
|
umount /tmp/rmupdate.mnt
|
||||||
|
|
||||||
rm /tmp/rmupdate.boot.tar
|
rm /tmp/rmupdate.boot.tar
|
||||||
|
Loading…
Reference in New Issue
Block a user