1 #!/bin/bash 2 # 3 # To call this script, make sure make_f2fs is somewhere in PATH 4 5 function usage() { 6 cat<<EOT 7 Usage: 8 ${0##*/} OUTPUT_FILE SIZE 9 [-C FS_CONFIG] [-f SRC_DIR] [-D PRODUCT_OUT] 10 [-s FILE_CONTEXTS] [-t MOUNT_POINT] [-T TIMESTAMP] 11 [-L LABEL] 12 EOT 13 } 14 15 echo "in mkf2fsuserimg.sh PATH=$PATH" 16 17 MKFS_OPTS="" 18 SLOAD_OPTS="" 19 20 if [ $# -lt 2 ]; then 21 usage 22 exit 1 23 fi 24 25 OUTPUT_FILE=$1 26 SIZE=$2 27 shift; shift 28 29 if [[ "$1" == "-C" ]]; then 30 SLOAD_OPTS+=" -C $2" 31 shift; shift 32 fi 33 if [[ "$1" == "-f" ]]; then 34 SLOAD_OPTS+=" -f $2" 35 shift; shift 36 fi 37 if [[ "$1" == "-D" ]]; then 38 SLOAD_OPTS+=" -p $2" 39 shift; shift 40 fi 41 if [[ "$1" == "-s" ]]; then 42 SLOAD_OPTS+=" -s $2" 43 shift; shift 44 fi 45 if [[ "$1" == "-t" ]]; then 46 MOUNT_POINT=$2 47 shift; shift 48 fi 49 50 if [ -z $MOUNT_POINT ]; then 51 echo "Mount point is required" 52 exit 2 53 fi 54 55 if [[ ${MOUNT_POINT:0:1} != "/" ]]; then 56 MOUNT_POINT="/"$MOUNT_POINT 57 fi 58 59 SLOAD_OPTS+=" -t $MOUNT_POINT" 60 61 if [[ "$1" == "-T" ]]; then 62 SLOAD_OPTS+=" -T $2" 63 shift; shift 64 fi 65 66 if [[ "$1" == "-L" ]]; then 67 MKFS_OPTS+=" -l $2" 68 shift; shift 69 fi 70 71 if [ -z $SIZE ]; then 72 echo "Need size of filesystem" 73 exit 2 74 fi 75 76 MAKE_F2FS_CMD="make_f2fs -S $SIZE -f -O encrypt -O quota -O verity $MKFS_OPTS $OUTPUT_FILE" 77 echo $MAKE_F2FS_CMD 78 $MAKE_F2FS_CMD 79 if [ $? -ne 0 ]; then 80 exit 4 81 fi 82 83 SLOAD_F2FS_CMD="sload_f2fs -S $SLOAD_OPTS $OUTPUT_FILE" 84 echo $SLOAD_F2FS_CMD 85 $SLOAD_F2FS_CMD 86 if [ $? -ne 0 ]; then 87 rm -f $OUTPUT_FILE 88 exit 4 89 fi 90