luckfox-pico-sdk/sysdrv/tools/pc/e2fsprogs/mkfs_ext4.sh
2023-08-08 20:36:47 +08:00

55 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
err_handler() {
ret=$?
[ "$ret" -eq 0 ] && return
msg_error "Running ${FUNCNAME[1]} failed!"
msg_error "exit code $ret from line ${BASH_LINENO[0]}:"
msg_info " $BASH_COMMAND"
exit $ret
}
trap 'err_handler' ERR
# source files
src=$1
# generate image
dst=$2
if [ -z "$3" -o -z "$dst" -o ! -d "$src" ]; then
echo "command format: $(basename $0) <source> <dest image> <partition size>"
exit 0
fi
# the size of generate image, get info from parameter.txt
# eg. 0x00040000@0x00016000(rootfs)
# calculate size fo rootfs partition: 0x00040000 * 512 = 128*0x100000 (Bytes)
dst_size="$(( $3 / 1024 / 1024 ))M"
cwd=$(dirname $(readlink -f $0))
export PATH=$cwd:$PATH
rm -f $dst
bin_dir=./
if [ -f $cwd/bin/mkfs.ext4 ];then
bin_dir=bin
fi
mkdir -p $(dirname $dst)
echo mkfs.ext4 -d $src -r 1 -N 0 -m 5 -L \"\" -O ^64bit,^huge_file $dst \"$dst_size\"
mkfs.ext4 -d $src -r 1 -N 0 -m 5 -L "" -O ^64bit,^huge_file $dst "$dst_size"
if [ $? != 0 ]; then
echo "*** Maybe you need to increase the filesystem size "
exit 1
fi
echo "resize2fs -M $dst"
resize2fs -M $dst
echo "e2fsck -fy $dst"
e2fsck -fy $dst
echo "tune2fs -m 5 $dst"
tune2fs -m 5 $dst
echo "resize2fs -M $dst"
resize2fs -M $dst