Hi all,
I am working on a configuration system that uses "diff" for saving the differences in configuration files. Essentially, you start a script, make your modifications to knoppix files as you want, you re-run the script, and the differences are saved to diff files.
Upon boot, the diffs are applied to the corresponding (configuration) files.
Currently, I have it working well but only when burned to CD-ROM or used from HD with "poor man's install".
The script is as follows. It works for my purposes but is far from perfect. (Where are the script wizzzards?)
Code:#!/bin/sh # folderconfigurator 1.0 # Creates a folderconfig directory # by probono # GPL ############################################ # currently /cdrom hardcoded -> how to change? ############################################ # # define some variables # # temporary folderconfig directory export FOLDERCONFIG="/tmp/folderconfig/" # where the knoppix.sh script is created export TMPKNOPPIXSH="/tmp/knoppix.sh" # # if there is no folderconfig directory yet # # create one if [ ! -e $FOLDERCONFIG ] then kdialog --msgbox "Please start changing your configuration now. \n Only (diffs of) configuration files that are changed between now and the time when you will re-run this script will be saved in the $FOLDERCONFIG directory. Please re-run this script as soon as you are done with configuring the system." && mkdir $FOLDERCONFIG exit 0 # # if there is alredy a folderconfig directory # else kdialog --yesnocancel "Now copying the (diffs of) files that were changed since the creation of $FOLDERCONFIG to that directory." || exit 0 ################################################################## # # create the folderconfig knoppix.sh script # cat > $TMPKNOPPIXSH << \EOF #!/bin/sh # folderconfig 1.0 # Copies the contents of a folderconfig directory into the running system # by probono # GPL [ "`id -u`" = "0" ] || { echo "You need root privileges to apply folderconfig settings!" >&2 ; exit 1; } echo " [1mApplying folderconfig settings... [0m" # copy normal files, follow symlinks in target cp -rfH $1/folderconfig/* / # fix bug(?) that I cannot create a folder named X11 (it always gets x11) if [ -e "/etc/x11/" ]; then cp -rfH /etc/x11/* /etc/X11 fi # patch file if there is a .diff for the file find /cdrom/knoppix/folderconfig/* -type f -name "*.diff" | while read i; do target="${i#/cdrom/knoppix/folderconfig}"; target="${target%.diff}"; patch $target $i; done # set access rights of home directory chown -R $USER.$USER $HOME EOF ################################################################## # find files and symlinks that have been changed after the folderconfig folder was created # ignore these self-changing files FILES=`find /etc /home /root -follow \ ! -path *ld.so.cache \ ! -path *pnm2ppa.conf* \ ! -path *gnome-desktop* \ ! -path *ld.so.cache* \ ! -path *.xsession-errors* \ ! -path *.fonts-cache-1* \ -newer $FOLDERCONFIG -type f \ 2> /dev/null` # if there are no files that have changed if [ "$FILES" = "" ] then kdialog --msgbox "No files found that have changed." exit 1 fi # # create parent folders # #for FILE in $FILES; do echo $FILE; done; echo "\n\n" for FILE in $FILES; do DIR=`find $FILE -printf "%h\n"`; mkdir -p $FOLDERCONFIG$DIR; done # # make a diff (for the changed files) or copy the file (for new files) # # works # for FILE in $FILES; do diff -u /KNOPPIX$FILE $FILE > $FOLDERCONFIG$FILE.diff ; done for FILE in $FILES do if [ -e /KNOPPIX$FILE ]; then diff -u /KNOPPIX$FILE $FILE > $FOLDERCONFIG$FILE.diff else cp $FILE $FOLDERCONFIG$FILE fi done # make it executable chmod 777 $TMPKNOPPIXSH kdialog --msgbox "The (diffs of) files that have changed since the initial creation of $FOLDERCONFIG have now been saved to $FOLDERCONFIG. \n You can use the script $TMPKNOPPIXSH to copy them to your Live-CD system automatically at each start of the system. Please refer to the Knoppix documentation on how to use a knoppix.sh script. Essentially, you must copy $TMPKNOPPIXSH and $FOLDERCONFIG to a floppy and use floppyconfig or burn them to the knoppix/ directory on your CD-ROM." # all is ok exit 0 fi

OWC Mercury Elite Pro 2 Bay RAID Enclosure with USB 3.2 for Dual 3.5 inch HDDs
$87.99
EMC KTN-SL3 15-Bay Disk Array Enclosure w/2x 303-108-000E Cards, Dual PSU,No HDD
$239.99
G-Technology G-SPEED Studio XL 48TB Thunderbolt 2 Storage - Housing Only
$200.00
Broadcom MegaRAID 9480-8e Fujitsu PRAID EP540e SAS RAID Card (Replac 9380-8e) 8i
$228.00
Dell PowerEdge HBA330 LP PCI-E 12GBs RAID SAS Controller Adapter J7TNV
$18.95
Broadcom LSI 9305-16i 12Gbps SAS-3 PCIe x8 HBA 16-Ports Raid Controller
$64.99
LSI 9305-16i SATA SAS 12Gbs Controller card PCIe 3.0 IT-Mode w/SAS SATA cable US
$125.98
MegaRAID 9580-8i8e 16-port 12G SAS/SATA/NVMe 8GB PCIe RAID - 05-50076-00
$1619.26
Areca ARC-1882IX-24 (16i4e)24-Port RAID Controller Card w/BBU /HDD Monitor Board
$300.00
Intel VROC Premium RAID Controller Card PCIe Add-On Module VROCPREMMOD
$265.00