树莓派镜像制作

还没做好的脚本:

#!/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

猜你喜欢

转载自www.cnblogs.com/ch122633/p/10146837.html