Flashybrid

Z Wiki UnArt Slavičín
Skočit na navigaciSkočit na vyhledávání

Nainstalujte:

apt-get install flashybrid

Upravte soubor /etc/init.d/flashybrid (zdroj https://dl.dropboxusercontent.com/u/1490505/HP-T5730/etc/init.d/flashybrid):

#!/bin/sh

# Set up/shutdown the flashybrid system, including the ramdisk and partial
# directory bind mounts. This needs to run at the part of system bootup that
# mounts all the disks. It should also run at shutdown right before
# filesystems are unmounted.

# Licensed under the terms of GPL v2
#  Diego Iastrubni <diego.iastrubni@xorcom.com> 2006
#  Joey Hess <joeyh@debian.org> 2002-2006
#  Thibaut VARENE <varenet@debian.org> 2014

# Modified by Darkwing to try get it working under Debian 8 with systemd
# -> All mounts now have an extra option "--make-private"
# -> Date: 14.05.2015

### BEGIN INIT INFO
# Provides:          flashybrid
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Should-Start:      
# Should-Stop:       
# Default-Start:     S
# Default-Stop:      0 1 6
# X-Start-Before:    $network
# X-Stop-Before:     $network
# Short-Description: automates use of a flash disk as the root filesystem
# Description:       Flashybrid is a system to help in setting up and managing hybrid
#                    flash/disk/ram based Debian systems which can run most of the time
#                    using only a small flash disk for their root filesystem and do a useful,
#                    but limited task (such as being a router, or a PDA, or a rescue system
#                    on a USB keydrive). The flash can be as small as 32 mb, though 64 to 256
#                    mb is more comfortable.
### END INIT INFO

. /lib/lsb/init-functions

CONFDIR=/etc/flashybrid
if [ -e $CONFDIR/config ]; then
	. $CONFDIR/config
fi

ENABLED=no
if [ -e /etc/default/flashybrid ]; then
	. /etc/default/flashybrid
fi

if [ -z "$RAMMOUNT" ]; then
	exit 0
fi

is_mounted () {
	grep -q " $1 " /proc/mounts
}

case "$1" in
start)
	if [ "$ENABLED" != yes ]; then
		log_warning_msg "Not setting up flashybrid system: disabled."
		exit
	fi
	
	if [ ! -d "$RAMMOUNT" ] ; then
		log_failure_msg "Error, RAMMOUNT directory is not found ($RAMMOUNT)"
		exit 1
	fi
	
	log_daemon_msg "Setting up flashybrid system for"
		
	EXTRA_PARAMS=""
	
	if [ "xx$FLASH_MAX" != "xx" ]; then
	    EXTRA_PARAMS=" -o size=$FLASH_MAX "
	fi
			
	# Set up ram disk to hold variable data.
	if ! is_mounted $RAMMOUNT; then
		#mount tmpfs -t tmpfs $RAMMOUNT $EXTRA_PARAMS
		mount --make-private tmpfs -t tmpfs $RAMMOUNT $EXTRA_PARAMS
	fi

	# Temporary directories on ram disk.
	cp $CONFDIR/ramtmp $RAMMOUNT/.fh-config-ramtmp
	for dir in $(grep -v '^#' $CONFDIR/ramtmp); do
		if [ -d $dir ]; then
        		mkdir -p -m 1777 $RAMMOUNT/$dir
			if is_mounted $dir; then
				umount $dir
			fi
			#mount --bind $RAMMOUNT/$dir $dir
			mount --bind --make-private $RAMMOUNT/$dir $dir
		fi
	done

	# when syncing we will use this configuration for restoring,
	# as the user may modify the configuration on the disk, and completely
	# mess up the system, eventually making his machine unusable
	cp $CONFDIR/ramstore $RAMMOUNT/.fh-config-ramstore
	
	# Copy data from flash to ram disk for these directories
	for dir in $(grep -v '^#' $CONFDIR/ramstore); do
		# Skip dirs that are not present.
		if [ -d $dir ]; then
			if [ "$VERBOSE" = yes ]; then
			    log_progress_msg "$dir"
			fi
			
			ramdir=$RAMMOUNT$dir
			if is_mounted $dir; then
				umount $dir
			fi
			
			if is_mounted $ramdir.flash; then
				umount $ramdir.flash
			fi
			
			if [ ! -d $ramdir ]; then
				mkdir -p ${ramdir%/*} # dirname
			        cp -a $dir $ramdir
			fi			
			mkdir -p $ramdir.flash
			#mount --bind $dir $ramdir.flash
			#mount --bind $ramdir $dir
			mount --bind --make-private $dir $ramdir.flash
			mount --bind --make-private $ramdir $dir
		fi
	done

	log_end_msg 0
	mountro
	;;

stop)
	if [ "$ENABLED" != yes ]; then
		log_warning_msg "Not shutting down flashybrid system: disabled."
		exit
	fi
	
	fh-sync
	mountrw
	;;

reload)
	echo "This target is available only for compatibility."
	echo "Gracefully exiting"
	;;

restart)
	echo "This target is available only for compatibility, and usually will fail to work"
	echo "If you really want to restart this service please try 'force-reload'."
	echo 
	echo "Gracefully exiting"
	;;

force-reload)
	$0 stop
	$0 start
	;;

*)
	echo "Usage: $0 {start|stop|restart|force-reload}"
	exit 1
;;
esac

Odstraňte špatné soubory z /etc/rc.d*:

rm /etc/rc{0,1,2,3,4,5,6,S}.d/*flashybrid

Obnovte je z naší nové hlavičky:

insserv -v flashybrid