1. 程式人生 > >樹莓派映象製作

樹莓派映象製作

還沒做好的指令碼:

#!/bin/bash

#create image
echo "Creating Image ..."
BOOT_DEV='/dev/sdb1'
ROOT_DEV='/dev/sdb2'
TIME=`date "+%Y%m%d%H%M%S"`
FILE=backup_20181219053915.img
#FILE=backup_$TIME.img

BOOT_SIZE=`df -P | grep /dev/sdb1 | awk '{print $3}'`
ROOT_SIZE=`df -P | grep /dev/sdb2 | awk '{print $3}'`
SIZE=`echo $BOOT_SIZE $ROOT_SIZE | awk
'{print int(($1+$2)*1.1/1024)}'` #dd if=/dev/zero of=$FILE bs=1M count=$SIZE echo "Create done." echo #mount source file echo "Mount source boot and root" #mkdir src_boot src_root MY_UID=$(whoami) #sudo mount -t vfat -o uid=$MY_UID,gid=$MY_UID,umask=0000 $BOOT_DEV ./src_boot #sudo mount -t ext4 $ROOT_DEV ./src_root
echo "Mount done." echo #Part Image echo "Part Image ..." BOOT_START=`sudo fdisk -l /dev/sdb|grep /dev/sdb1| awk '{print $2}'` BOOT_END=`sudo fdisk -l /dev/sdb|grep /dev/sdb1| awk '{print $3}'` ROOT_START=`sudo fdisk -l /dev/sdb|grep /dev/sdb2| awk '{print $2}'` #parted $FILE --script -- mklabel msdos #parted $FILE
--script -- mkpart primary fat32 ${BOOT_START}s ${BOOT_END}s #parted $FILE --script -- mkpart primary ext4 ${ROOT_START}s -1 #parted $FILE --script -- quit echo "Part done." echo #mount target file echo "Mount target boot and root" LOOP_DEVICE=`sudo losetup -f --show $FILE` echo "LOOP_DEVICE:"$LOOP_DEVICE MAP_NAME=`sudo kpartx -va $LOOP_DEVICE | sed -E 's/.*(loop[0-99])p.*/\1/g'| head -1` DEVICE="/dev/mapper/${MAP_NAME}" echo "DEVICE:"$DEVICE PART_BOOT="${DEVICE}p1" PART_ROOT="${DEVICE}p2" #sudo mkfs.vfat -n boot $PART_BOOT #sudo mkfs.ext4 $PART_ROOT #mkdir tgt_boot tgt_root IMG_BOOT_OFF=$BOOT_START*512 IMG_ROOT_OFF=$ROOT_START*512 sudo mount -t vfat -o loop,offset=$IMG_BOOT_OFF $FILE ./tgt_boot sudo mount -t ext4 -o loop,offset=$IMG_ROOT_OFF $FILE ./tgt_root