#!/bin/bash # # Initial script for Live operating system # This script are launching before starting init from linux-live script. # Current dir allways must be set to root (/) # All system path must be relative, except initrd dirs ENABLED=yes [ "$ENABLED" != "yes" ] && exit 0 DEBUGMODE=no PATH=.:/:/usr/bin:/usr/local/bin:/usr/local/sbin unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 debug_mode "$0" "$@" SYSCONF="${ROOTFS}/${SYSCONF}" SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null #PATHLIVEDATA=$(find /memory/layer-base/*/* -maxdepth 0 -type f -iname "ublinux-data*.sgn" -exec dirname {} \;) PATHLIVEDATA=$(find /memory/data/from/*/* -maxdepth 0 -type d -iname "ublinux-data" -exec dirname {} \;) [[ -d ${PATHLIVEDATA} ]] && [[ ! -d ${ROOTFS}/mnt/livedata ]] && ln -sf ${PATHLIVEDATA} ${ROOTFS}/mnt/livedata ps | grep ntfsmount | awk '{ print $1 }' >> ${ROOTFS}/var/run/sendsigs.omit #Setting up local time zone [[ -f ${SYSCONF}/clock ]] && . ${SYSCONF}/clock [[ -f ${ROOTFS}/usr/share/zoneinfo/${ZONE} ]] && ln -sf "/usr/share/zoneinfo/${ZONE}" ${ROOTFS}/etc/localtime #Setting machine-id if [[ ! -f ${ROOTFS}/etc/machine-id ]]; then echo "${MACHINEID}" | grep -qi ^random$ && MACHINEID=$(dd if=/dev/urandom count=1 bs=512 2>/dev/null | cat - /sys/class/net/*/address 2>/dev/null | md5sum | awk '{ print $1}') [[ -z "${MACHINEID}" ]] && MACHINEID=$(lspci -nmm | grep ^00 | md5sum | awk '{ print $1}') echo "${MACHINEID}" > ${ROOTFS}/etc/machine-id fi #Setting UDEV FILE_UDEV_99="/usr/lib/ublinux/udev/99-hide-partition-ubconfig.rules" FILE_UDEV_70="/usr/lib/ublinux/udev/70-setup-prn-ubconfig.rules" mkdir -p ${ROOTFS}/etc/udev/rules.d ln -sf ${FILE_UDEV_99} ${ROOTFS}/etc/udev/rules.d/ if [[ ${PRINTERADD} = "auto" ]] ;then ln -sf ${FILE_UDEV_70} ${ROOTFS}/etc/udev/rules.d/ else rm -f "${ROOTFS}/etc/udev/rules.d/${FILE_UDEV_70##*/}" fi ## Setting state mode STATE_MODE="$(cmdline_value ub.mode)" STATE_HOME="$(cmdline_value ub.home)" ## Полное сохранение ub.mode=changes if [[ ${STATE_MODE} =~ ^"changes"$ ]]; then echo "SYSTEMBOOT_STATEMODE=changes" >> ${SYSCONF}/config ## Сохранение в модуль ub.mode=toxzm ub.mode=machines elif [[ ${STATE_MODE} =~ ^("toxzm"|"machines")$ ]]; then echo "SYSTEMBOOT_STATEMODE=module" >> ${SYSCONF}/config ## Полная песочница RAM ub.mode= ; ub.home= elif [[ ${STATE_MODE} == "" && ${STATE_HOME} == "" ]]; then echo "SYSTEMBOOT_STATEMODE=sandbox" >> ${SYSCONF}/config ## Песочница с сохранением профиля пользователя ub.mode= ; ub.home=/ublinux-data/homes elif [[ ${STATE_MODE} == "" && ${STATE_HOME} =~ ^"/" ]]; then echo "SYSTEMBOOT_STATEMODE=sandbox_ram_home" >> ${SYSCONF}/config ## Полная песочница HDD ub.mode=clear ; ub.home= elif [[ ${STATE_MODE} == "clear" && ${STATE_HOME} == "" ]]; then echo "SYSTEMBOOT_STATEMODE=sandbox_hdd" >> ${SYSCONF}/config ## Полная песочница HDD с сохранением профиля пользователя ub.mode=clear ; ub.home= elif [[ ${STATE_MODE} == "clear" && ${STATE_HOME} =~ ^"/" ]]; then echo "SYSTEMBOOT_STATEMODE=sandbox_hdd_home" >> ${SYSCONF}/config fi