post-build.sh: Fixup fstab error
Ignore tmpfs when trying to remove old fstab entries. Change-Id: I87f894eaa1ae83b8cfce906a0fb8a68354f00093 Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
This commit is contained in:
@ -3,6 +3,9 @@
|
||||
TARGET_DIR=$1
|
||||
shift
|
||||
|
||||
FSTAB="${TARGET_DIR}/etc/fstab"
|
||||
OS_RELEASE="${TARGET_DIR}/etc/os-release"
|
||||
|
||||
RK_LEGACY_PARTITIONS=" \
|
||||
${RK_OEM_FS_TYPE:+oem:/oem:${RK_OEM_FS_TYPE}}
|
||||
${RK_USERDATA_FS_TYPE:+userdata:/userdata:${RK_USERDATA_FS_TYPE}}
|
||||
@ -19,21 +22,42 @@ function fixup_root()
|
||||
echo "Fixing up rootfs type: $1"
|
||||
|
||||
FS_TYPE=$1
|
||||
sed -i "s#\([[:space:]]/[[:space:]]\+\)\w\+#\1${FS_TYPE}#" \
|
||||
${TARGET_DIR}/etc/fstab
|
||||
sed -i "s#\([[:space:]]/[[:space:]]\+\)\w\+#\1${FS_TYPE}#" "$FSTAB"
|
||||
}
|
||||
|
||||
function fixup_basic()
|
||||
function fixup_part()
|
||||
{
|
||||
echo "Fixing up partition: ${@//: }"
|
||||
|
||||
SRC="$1"
|
||||
MOUNT="$2"
|
||||
FS_TYPE="$3"
|
||||
MOUNT_OPTS="$4"
|
||||
PASS="$5"
|
||||
|
||||
# Remove old entries with same mountpoint
|
||||
sed -i "/[[:space:]]${MOUNT//\//\\\/}[[:space:]]/d" "$FSTAB"
|
||||
|
||||
if [ "$SRC" != tmpfs ]; then
|
||||
# Remove old entries with same source
|
||||
sed -i "/^${SRC//\//\\\/}[[:space:]]/d" "$FSTAB"
|
||||
fi
|
||||
|
||||
# Append new entry
|
||||
echo -e "${SRC}\t${MOUNT}\t${FS_TYPE}\t${MOUNT_OPTS}\t0 $PASS" >> "$FSTAB"
|
||||
|
||||
mkdir -p "${TARGET_DIR}/${MOUNT}"
|
||||
}
|
||||
|
||||
function fixup_basic_part()
|
||||
{
|
||||
echo "Fixing up basic partition: $@"
|
||||
|
||||
FS_TYPE="$1"
|
||||
MOUNT_POINT="$2"
|
||||
MOUNT="$2"
|
||||
MOUNT_OPTS="${3:-defaults}"
|
||||
|
||||
sed -i "/[[:space:]]$FS_TYPE[[:space:]]/d" ${TARGET_DIR}/etc/fstab
|
||||
echo -e "${FS_TYPE}\t${MOUNT_POINT}\t${FS_TYPE}\t${MOUNT_OPTS}\t0 0" >> \
|
||||
${TARGET_DIR}/etc/fstab
|
||||
fixup_part "$FS_TYPE" "$MOUNT" "$FS_TYPE" "$MOUNT_OPTS" 0
|
||||
}
|
||||
|
||||
function partition_arg() {
|
||||
@ -45,9 +69,9 @@ function partition_arg() {
|
||||
echo ${ARG:-$DEFAULT}
|
||||
}
|
||||
|
||||
function fixup_part()
|
||||
function fixup_device_part()
|
||||
{
|
||||
echo "Fixing up partition: ${@//: }"
|
||||
echo "Fixing up device partition: ${@//: }"
|
||||
|
||||
DEV="$(partition_arg "$*" 1)"
|
||||
|
||||
@ -59,13 +83,7 @@ function fixup_part()
|
||||
FS_TYPE="$(partition_arg "$*" 3 ext2)"
|
||||
MOUNT_OPTS="$(partition_arg "$*" 4 defaults)"
|
||||
|
||||
sed -i "/[[:space:]]${MOUNT//\//\\\/}[[:space:]]/d" ${TARGET_DIR}/etc/fstab
|
||||
sed -i "/^${DEV//\//\\\/}[[:space:]]/d" ${TARGET_DIR}/etc/fstab
|
||||
|
||||
echo -e "${DEV}\t${MOUNT}\t${FS_TYPE}\t${MOUNT_OPTS}\t0 2" >> \
|
||||
${TARGET_DIR}/etc/fstab
|
||||
|
||||
mkdir -p ${TARGET_DIR}/${MOUNT}
|
||||
fixup_part "$DEV" "$MOUNT" "$FS_TYPE" "$MOUNT_OPTS" 2
|
||||
}
|
||||
|
||||
function fixup_fstab()
|
||||
@ -81,39 +99,38 @@ function fixup_fstab()
|
||||
;;
|
||||
esac
|
||||
|
||||
fixup_basic proc /proc
|
||||
fixup_basic devtmpfs /dev
|
||||
fixup_basic devpts /dev/pts mode=0620,ptmxmode=0666,gid=5
|
||||
fixup_basic tmpfs /dev/shm nosuid,nodev,noexec
|
||||
fixup_basic sysfs /sys
|
||||
fixup_basic debugfs /sys/kernel/debug
|
||||
fixup_basic pstore /sys/fs/pstore
|
||||
fixup_basic_part proc /proc
|
||||
fixup_basic_part devtmpfs /dev
|
||||
fixup_basic_part devpts /dev/pts mode=0620,ptmxmode=0666,gid=5
|
||||
fixup_basic_part tmpfs /dev/shm nosuid,nodev,noexec
|
||||
fixup_basic_part sysfs /sys
|
||||
fixup_basic_part debugfs /sys/kernel/debug
|
||||
fixup_basic_part pstore /sys/fs/pstore
|
||||
|
||||
if echo $TARGET_DIR | grep -qE "_recovery/target/*$"; then
|
||||
fixup_part "/dev/sda1:/mnt/udisk:auto:defaults::"
|
||||
fixup_part "/dev/mmcblk1p1:/mnt/sdcard:auto:defaults::"
|
||||
fixup_device_part "/dev/sda1:/mnt/udisk:auto:defaults::"
|
||||
fixup_device_part "/dev/mmcblk1p1:/mnt/sdcard:auto:defaults::"
|
||||
fi
|
||||
|
||||
for part in ${RK_EXTRA_PARTITIONS//@/ }; do
|
||||
fixup_part $part
|
||||
fixup_device_part $part
|
||||
done
|
||||
}
|
||||
|
||||
function add_build_info()
|
||||
{
|
||||
[ -f ${TARGET_DIR}/etc/os-release ] && \
|
||||
sed -i "/^BUILD_ID=/d" ${TARGET_DIR}/etc/os-release
|
||||
[ -f "$OS_RELEASE" ] && sed -i "/^BUILD_ID=/d" "$OS_RELEASE"
|
||||
|
||||
echo "Adding build-info to /etc/os-release..."
|
||||
echo "BUILD_INFO=\"$(whoami)@$(hostname) $(date)${@:+ - $@}\"" >> \
|
||||
${TARGET_DIR}/etc/os-release
|
||||
"$OS_RELEASE"
|
||||
}
|
||||
|
||||
function add_dirs_and_links()
|
||||
{
|
||||
echo "Adding dirs and links..."
|
||||
|
||||
cd ${TARGET_DIR}
|
||||
cd "$TARGET_DIR"
|
||||
|
||||
rm -rf mnt/* udisk sdcard data
|
||||
mkdir -p mnt/sdcard mnt/udisk
|
||||
@ -127,7 +144,7 @@ function add_dirs_and_links()
|
||||
echo "Executing $(basename $0)..."
|
||||
|
||||
add_build_info $@
|
||||
[ -f ${TARGET_DIR}/etc/fstab ] && fixup_fstab
|
||||
[ -f "$FSTAB" ] && fixup_fstab
|
||||
add_dirs_and_links
|
||||
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user