Commit bd772534 authored by Franco Fichtner's avatar Franco Fichtner

rc: remove platform awareness from main rc script

Platforms are all the same, except when / is not writable.  That
only ever matters once, when we fake it writeable using unionfs.
parent 01d78e2a
#!/bin/sh
# Copyright (C) 2004-2010 Scott Ullrich, All rights reserved.
# Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
# Copyright (C) 2014-2015 Franco Fichtner <franco@opnsense.org>
# Copyright (c) 2014-2015 Franco Fichtner <franco@opnsense.org>
# Copyright (c) 2004-2010 Scott Ullrich <sullrich@gmail.com>
# Copyright (c) 2003-2004 Manuel Kasper <mk@neon1.net>
# All rights reserved.
stty status '^T' 2> /dev/null
......@@ -17,36 +17,24 @@ HOME=/
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
export HOME PATH
PLATFORM=`/bin/cat /usr/local/etc/platform`
if [ "${PLATFORM}" = "nanobsd" ]; then
kldstat -qm zfs
if [ $? = 0 ]; then
kldunload zfs
fi
fi
# Mount memory file system if it exists
echo "Mounting filesystems..."
kldstat -qm zfs
# Handle ZFS read-only case
if [ "$PLATFORM" = "pfSense" ]; then
kldstat -qm zfs
if [ $? = 0 ]; then
ZFSFSAVAILABLE=$(/sbin/zfs mount 2>/dev/null | wc -l)
if [ $ZFSAVAILABLE -eq 0 ]; then
kldunload zfs
elif [ -f /usr/bin/grep ]; then
ZFSROOT=`/sbin/zfs mount | /usr/bin/grep ' /$' | /usr/bin/cut -d ' ' -f 1`
if [ "$ZFSROOT" != "" ]; then
/sbin/zfs set readonly=off $ZFSROOT
fi
fi
attempts=0
while [ ${attempts} -lt 3 ]; do
if mount -a 2>/dev/null; then
# bail if all is well
break
fi
fi
fsck -y /
attempts=$((attempts+1))
done
if [ "${PLATFORM}" = "cdrom" ]; then
# see if / is writable (aka. non-LiveCD boot)
if _tmpdir=$(mktemp -d -q /.diskless.XXXXXX); then
# only remove the directory
rmdir ${_tmpdir}
else
# create a writable /tmp partition via mfs
/etc/rc.d/tmp start
# fake a writeable environment in some subdirs
......@@ -54,39 +42,15 @@ if [ "${PLATFORM}" = "cdrom" ]; then
/bin/mkdir -p /tmp/.cdrom/${i}
/sbin/mount_unionfs /tmp/.cdrom/${i} /${i}
done
else
# Mount /. If it fails run a fsck.
if [ "$PLATFORM" = "nanobsd" ]; then
export PKG_TMPDIR=/root/
/sbin/mount -uw / 2>/dev/null
mount_rc=$?
attempts=0
while [ ${mount_rc} != 0 -a ${attempts} -lt 3 ]; do
/sbin/fsck -y /
/sbin/mount -uw / 2>/dev/null
mount_rc=$?
attempts=$((attempts+1))
done
else
/sbin/mount -a 2>/dev/null
mount_rc=$?
attempts=0
while [ ${mount_rc} != 0 -a ${attempts} -lt 3 ]; do
/sbin/fsck -y /
/sbin/mount -a 2>/dev/null
mount_rc=$?
attempts=$((attempts+1))
done
fi
fi
# !!! migration code for OPNsense <= 15.1.7, do not remove !!!
if [ -d "/cf/conf" ]; then
/bin/rm -f /conf
/bin/mv /cf/conf /conf
/bin/rm -rf /cf
fi
# !!! migration code for OPNsense <= 15.1.7, do not remove !!!
# !!! migration code for OPNsense <= 15.1.7, do not remove !!!
if [ -d "/cf/conf" ]; then
/bin/rm -f /conf
/bin/mv /cf/conf /conf
/bin/rm -rf /cf
fi
# !!! migration code for OPNsense <= 15.1.7, do not remove !!!
# mount repo if available
if [ -d /root/core ]; then
......@@ -139,61 +103,53 @@ rm -f /etc/spwd.db.tmp
# Enable console output if its muted.
/sbin/conscontrol mute off >/dev/null
if [ "$PLATFORM" != "cdrom" ]; then
USE_MFS_TMPVAR=`/usr/bin/grep -c use_mfs_tmpvar /conf/config.xml`
if [ "$PLATFORM" = "pfSense" ] && [ ${USE_MFS_TMPVAR} -eq 0 ]; then
mdmfs -S -M -s 4m md /var/run
USE_MFS_TMPVAR=`/usr/bin/grep -c use_mfs_tmpvar /conf/config.xml`
if [ ${USE_MFS_TMPVAR} -eq 0 ]; then
mdmfs -S -M -s 4m md /var/run
else
USE_MFS_TMP_SIZE=`/usr/bin/grep use_mfs_tmp_size /conf/config.xml | /usr/bin/cut -f2 -d'>' | /usr/bin/cut -f1 -d'<'`
if [ ! -z ${USE_MFS_TMP_SIZE} ] && [ ${USE_MFS_TMP_SIZE} -gt 0 ]; then
tmpsize="${USE_MFS_TMP_SIZE}m"
else
tmpsize="40m"
fi
if [ "${PLATFORM}" = "nanobsd" ] || [ ${USE_MFS_TMPVAR} -gt 0 ]; then
USE_MFS_TMP_SIZE=`/usr/bin/grep use_mfs_tmp_size /conf/config.xml | /usr/bin/cut -f2 -d'>' | /usr/bin/cut -f1 -d'<'`
if [ ! -z ${USE_MFS_TMP_SIZE} ] && [ ${USE_MFS_TMP_SIZE} -gt 0 ]; then
tmpsize="${USE_MFS_TMP_SIZE}m"
else
tmpsize="40m"
fi
USE_MFS_VAR_SIZE=`/usr/bin/grep use_mfs_var_size /conf/config.xml | /usr/bin/cut -f2 -d'>' | /usr/bin/cut -f1 -d'<'`
if [ ! -z ${USE_MFS_VAR_SIZE} ] && [ ${USE_MFS_VAR_SIZE} -gt 0 ]; then
varsize="${USE_MFS_VAR_SIZE}m"
else
varsize="60m"
fi
USE_MFS_VAR_SIZE=`/usr/bin/grep use_mfs_var_size /conf/config.xml | /usr/bin/cut -f2 -d'>' | /usr/bin/cut -f1 -d'<'`
if [ ! -z ${USE_MFS_VAR_SIZE} ] && [ ${USE_MFS_VAR_SIZE} -gt 0 ]; then
varsize="${USE_MFS_VAR_SIZE}m"
else
varsize="60m"
fi
echo -n "Setting up memory disks..."
echo -n "Setting up memory disks..."
if [ ! -d /root/var/db/pkg ]; then
/bin/mkdir -p /root/var/db
/bin/mv /var/db/pkg /root/var/db/
fi
if [ ! -d /root/var/db/pkg ]; then
/bin/mkdir -p /root/var/db
/bin/mv /var/db/pkg /root/var/db/
fi
mdmfs -S -M -s ${tmpsize} md /tmp
mdmfs -S -M -s ${varsize} md /var
mdmfs -S -M -s ${tmpsize} md /tmp
mdmfs -S -M -s ${varsize} md /var
/bin/mkdir -p /var/db
/bin/ln -s /root/var/db/pkg /var/db/pkg
/bin/mkdir -p /var/db
/bin/ln -s /root/var/db/pkg /var/db/pkg
echo "done."
fi
echo "done."
fi
/sbin/swapon -a
/usr/local/etc/rc.savecore
/sbin/swapon -a
/usr/local/etc/rc.savecore
if [ -d /root/var/db/pkg ]; then
# User must have just disabled RAM disks,
# let's move these back into place.
/bin/mkdir -p /var/db
/bin/mv /root/var/db/pkg /var/db/
fi
if [ -d /root/var/db/pkg ]; then
# User must have just disabled RAM disks,
# let's move these back into place.
/bin/mkdir -p /var/db
/bin/mv /root/var/db/pkg /var/db/
fi
# make some directories in /var
/bin/mkdir -p /var/run /var/log /var/etc /var/db/entropy /var/at/jobs/ /var/empty 2>/dev/null
/bin/rm -rf /var/run/*
if [ "$PLATFORM" != "pfSense" ]; then
/bin/rm /var/log/* 2>/dev/null
fi
# Cleanup configuration files from previous instance
/bin/rm -rf /var/etc/*
......@@ -236,14 +192,6 @@ fi
/bin/rm -rf /tmp/*
/bin/chmod 1777 /tmp
if [ ! "$PLATFORM" = "cdrom" ] ; then
# Malloc debugging check
if [ -L /etc/malloc.conf ]; then
#ln -s aj /etc/malloc.conf
/bin/rm /etc/malloc.conf
fi
fi
if [ ! -L /etc/dhclient.conf ]; then
/bin/rm -rf /etc/dhclient.conf
fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment