#!/bin/sh -e PREREQS="" prereqs() { echo "$PREREQS"; } case $1 in prereqs) prereqs exit 0 ;; esac logs_inram=false # Extract kernel parameters set -- $(cat /proc/cmdline) for x in "$@"; do case "$x" in varlog_size=*) varlog_size="${x#varlog_size=}" ;; logs_inram=on) logs_inram=true ;; esac done [ -z "$varlog_size" ] && exit 0 # If logs are being stored in memory, then don't bother # creating the log file just to have it deleted afterwards. $logs_inram && exit 0 # exit when the var_log.ext4 exists and the size matches if [ -e "${rootmnt}/host/disk-img/var-log.ext4" ]; then cur_varlog_size=$(ls -l ${rootmnt}/host/disk-img/var-log.ext4 | awk '{print $5}') if [ $cur_varlog_size == $((1024*1024*$varlog_size)) ]; then exit 0 else rm -rf ${rootmnt}/host/disk-img fi fi # create varlog disk case "${ROOT}" in ubi*) # sys_fallocate is NOT supported over UBIFS mkdir -p ${rootmnt}/host/disk-img && ${rootmnt}/usr/bin/truncate -s "$varlog_size"M ${rootmnt}/host/disk-img/var-log.ext4 && mkfs.ext4 -q -F ${rootmnt}/host/disk-img/var-log.ext4 ;; *) mkdir -p ${rootmnt}/host/disk-img && ${rootmnt}/usr/bin/fallocate -l "$varlog_size"M ${rootmnt}/host/disk-img/var-log.ext4 && mkfs.ext4 -q -F ${rootmnt}/host/disk-img/var-log.ext4 ;; esac