Changeset 510
- Timestamp:
- 07/28/09 18:23:40 (3 years ago)
- Location:
- main/linuxmuster-linbo/branches/testing
- Files:
-
- 2 added
- 7 edited
-
conf/initramfs.conf (modified) (4 diffs)
-
debian/changelog (modified) (1 diff)
-
debian/control (modified) (1 diff)
-
debian/md5sums.src (modified) (1 diff)
-
debian/rules (modified) (1 diff)
-
linbo/linbo_cmd.sh (modified) (16 diffs)
-
linbo/patch_registry.sh (modified) (7 diffs)
-
patches/rsync (added)
-
patches/rsync/3.0.6-xattrs-system.diff (added)
Legend:
- Unmodified
- Added
- Removed
-
main/linuxmuster-linbo/branches/testing/conf/initramfs.conf
r509 r510 33 33 file /lib/libgcc_s.so.1 /lib/libgcc_s.so.1 755 0 0 34 34 file /lib/ld-linux.so.2 /lib/ld-linux.so.2 755 0 0 35 file /lib/libncurses.so.5 /lib/libncurses.so.5 755 0 0 35 36 file /lib/libnsl.so.1 /lib/libnsl.so.1 755 0 0 36 37 file /lib/libnss_compat.so.2 /lib/libnss_compat.so.2 755 0 0 … … 105 106 106 107 # ntfs-3g 107 #file /bin/ntfs-3g ../../src/ntfs-3g/ntfs-3g 755 0 0108 #file /bin/ntfs-3g ../../src/ntfs-3g/src/ntfs-3g 755 0 0109 108 file /bin/ntfs-3g ../../src/ntfs-3g/src/.libs/ntfs-3g 755 0 0 110 file /bin/secaudit ../../src/ntfs-3g/src/.libs/secaudit 755 0 0109 #file /bin/secaudit ../../src/ntfs-3g/src/.libs/secaudit 755 0 0 111 110 file /lib/libntfs-3g.so.4915 ../../src/ntfs-3g/libntfs-3g/.libs/libntfs-3g.so.4915 755 0 0 112 111 # ntfs-3g 1.2920 MUST have this. … … 116 115 117 116 # attr 118 #file /bin/getfattr /usr/bin/getfattr 755 0 0117 file /bin/getfattr /usr/bin/getfattr 755 0 0 119 118 file /bin/setfattr /usr/bin/setfattr 755 0 0 120 119 … … 146 145 file /usr/lib/grub/i386-pc/xfs_stage1_5 ../../src/grub4dos/stage2/xfs_stage1_5 755 0 0 147 146 file /usr/lib/grub/i386-pc/stage2_eltorito ../../src/grub4dos/stage2/stage2_eltorito 755 0 0 148 file /lib/libncurses.so.5 /lib/libncurses.so.5 755 0 0149 147 150 148 # grub4dos -
main/linuxmuster-linbo/branches/testing/debian/changelog
r509 r510 1 1 linuxmuster-linbo (1.99.2-0) unstable; urgency=low 2 2 3 * kernel: new version 2.6.30.2 3 * kernel: 4 - new version 2.6.30.2 5 - setting default nls back to iso8859-1 4 6 * linbofs: 5 7 - moved from self compiled mkntfs to Ubuntu's mkntfs 8 - patch_registry: 9 o some code cleanup 10 o improved test_key function 11 o added test_value function to patch only values which have changed 6 12 - linbo_cmd: 7 o added option --fake-super to rsync command 8 o mounting linux partitions with acls and xattrs enabled 9 o added code to save and restore extended ntfs attributes 10 with setfattr, getfattr and secaudit (disabled for now to test rsync --fake-super) 13 o added acl and xattr rsync and mount options 14 o changed option name "incremental" to "differential" 15 o minor modifications to differential ntfs image support 16 o added code to save and restore ntfs extended attributes with 17 get- and setfattr as a workaround 11 18 - ntfs-3g: 12 19 o new version 2009.4.4AC.15 13 o added secaudit binary14 20 - busybox: 15 21 o new version 1.14.2 16 22 o removed few unneeded applets 23 - rsync: added Knopper's xattr patch 17 24 18 -- Thomas Schmitt <schmitt@lmz-bw.de> Sat, 25 Jul 2009 15:24:11 +020025 -- Thomas Schmitt <schmitt@lmz-bw.de> Tue, 27 Jul 2009 17:06:11 +0200 19 26 20 27 linuxmuster-linbo (1.99.1-0) unstable; urgency=low -
main/linuxmuster-linbo/branches/testing/debian/control
r509 r510 4 4 Maintainer: Thomas Schmitt <schmitt@lmz-bw.de> 5 5 Build-Depends: debhelper (>=7.0.17ubuntu4), build-essential (>=11.4), fakeroot, wget, udev (>=141-1.1), udev-extras, 6 nasm, syslinux, ncurses-base, coreutils, sysvinit-utils, util-linux, attr, ntfsprogs, 6 nasm, syslinux, ncurses-base, coreutils, sysvinit-utils, util-linux, attr, ntfsprogs, registry-tools, 7 7 tetex-base, libstdc++6, reiserfsprogs, e2fsprogs, dosfstools, unzip, tar, gzip, gettext, zlib1g-dev, 8 8 libncurses5-dev, tetex-bin, tetex-extra, udpcast, perl, libpopt-dev, libacl1-dev, libattr1-dev, -
main/linuxmuster-linbo/branches/testing/debian/md5sums.src
r509 r510 9 9 e649dc2587954e1a55c4acf6667a96fc qt-embedded-free-3.3.7.tar.bz2 10 10 e9865d093a18e4668b9d31b635dc8e99 rsync-3.0.6.tar.gz 11 e3735e51dfa47ac36ca8a872a5a4705f rsync-patches-3.0.6.tar.gz12 11 257ac04e62ab7e3616e220333a1140cb ssmtp_2.62.orig.tar.gz 13 12 c9f4e73e385c86b3a8faf9b615a04836 syslinux-3.82.tar.bz2 -
main/linuxmuster-linbo/branches/testing/debian/rules
r509 r510 170 170 echo "[1mUnpacking $(RSYNC_ARCHIVE)...[0m" ; \ 171 171 tar xf cache/$(RSYNC_ARCHIVE) -C src; \ 172 echo "[1mPatching rsync sources...[0m" ; \ 173 ( cd $(RSYNC_DIR) && for i in ../../patches/rsync/*; do patch -p1 <$$i; done ); \ 172 174 ln -sf ../$(RSYNC_DIR) src/rsync; \ 173 175 fi -
main/linuxmuster-linbo/branches/testing/linbo/linbo_cmd.sh
r509 r510 200 200 .cloop - full block device (partition) image, cloop-compressed 201 201 accompanied by a .list file for quicksync 202 .rsync - incremental rsync batch, cloop-compressed202 .rsync - differential rsync batch, cloop-compressed 203 203 " 1>&2 204 204 } … … 702 702 # saves advanced ntfs attributes of partition mounted in /mnt 703 703 save_ntfs_attr(){ 704 # disabled 705 return 0 706 # echo -n "Sichere erweiterte NTFS Attribute ..." 707 echo "Sichere erweiterte NTFS Attribute ..." 704 echo -n "Sichere erweiterte NTFS Attribute ..." 708 705 local rootdev="$1" 709 # local i="" 710 # for i in acl attrib reparse_data; do 711 # echo -n " ${i} ..." 712 # (cd /mnt && getfattr -R -h -e hex -d -n "system.ntfs_${i}" * 2>/dev/null | gzip -c > ".${i}.gz") 713 # set_ntfs_admin_attr "/mnt/.${i}.gz" 714 # done 715 # security attributes 716 if umount /mnt; then 717 secaudit -b "$rootdev" 2>/dev/null | gzip -c > /tmp/.sec.gz 718 else 719 echo "Kann Partition $rootdev nicht aushängen!" 720 return 1 721 fi 722 if mountpart "$rootdev" /mnt -w ; then 723 mv /tmp/.sec.gz /mnt 724 set_ntfs_admin_attr "/mnt/.sec.gz" 725 else 726 echo "Kann Partition $rootdev nicht einhängen!" 727 return 1 728 fi 729 echo 706 local i="" 707 for i in acl attrib reparse_data; do 708 (cd /mnt && getfattr -R -h -e hex -d -n "system.ntfs_${i}" * 2>>/tmp/image.log | gzip -c > ".${i}.gz") 709 set_ntfs_admin_attr "/mnt/.${i}.gz" 710 done 711 echo " fertig." 730 712 } 731 713 … … 742 724 echo "Bereite Partition $2 (Größe=${size}K) für Komprimierung vor..." | tee -a /tmp/image.log 743 725 cleanup_fs /mnt 744 [ "$(fstype "$2")" = "ntfs" ] && save_ntfs_attr "$2" 726 # save extended ntfs attributes 727 [ "$(fstype "$2")" = "ntfs" ] && save_ntfs_attr 745 728 echo "Leeren Platz auffüllen mit 0en..." | tee -a /tmp/image.log 746 729 # Create nulled files of size 1GB, should work on any FS. … … 776 759 fi 777 760 ;; 778 incremental)761 differential) 779 762 if mountpart "$2" /mnt -w ; then 780 763 rmmod cloop >/dev/null 2>&1 … … 784 767 if mountpart /dev/cloop /cloop -r ; then 785 768 cleanup_fs /mnt 786 [ "$(fstype "$2")" = "ntfs" ] && save_ntfs_attr "$2" 769 # save extended ntfs attributes 770 [ "$(fstype "$2")" = "ntfs" ] && save_ntfs_attr 787 771 echo "Starte Kompression von $2 -> $3 (differentiell)." | tee -a /tmp/image.log 788 772 mkexclude … … 794 778 #rm -f "$TMP" 795 779 #interruptible rsync "$ROPTS" --exclude="/.linbo" --exclude-from="/tmp/rsync.exclude" --delete --delete-excluded --partial --only-write-batch="$3" /mnt/ /cloop 796 interruptible rsync "$ROPTS" --fake-super --exclude="/.linbo" --exclude-from="/tmp/rsync.exclude" --delete --delete-excluded --partial --log-file=/tmp/image.log --log-file-format="" --only-write-batch="$3" /mnt/ /cloop 2>&1 >>/tmp/image.log 780 #interruptible rsync "$ROPTS" --fake-super --exclude="/.linbo" --exclude-from="/tmp/rsync.exclude" --delete --delete-excluded --partial --log-file=/tmp/image.log --log-file-format="" --only-write-batch="$3" /mnt/ /cloop 2>&1 >>/tmp/image.log 781 interruptible rsync "$ROPTS" --exclude="/.linbo" --exclude-from="/tmp/rsync.exclude" --delete --delete-excluded --partial --log-file=/tmp/image.log --log-file-format="" --only-write-batch="$3" /mnt/ /cloop 2>&1 >>/tmp/image.log 797 782 RC="$?" 798 783 umount /cloop … … 909 894 910 895 911 # INCREMENTAL/Synced896 # differential/Synced 912 897 # sync_cloop imagefile targetdev 913 898 sync_cloop(){ … … 916 901 local RC=1 917 902 local ROPTS="-HaAX" 903 #local ROPTS="-a" 918 904 [ "$(fstype "$2")" = "vfat" ] && ROPTS="-rt" 919 905 if mountpart "$2" /mnt -w ; then … … 922 908 rm -f "$TMP" 923 909 # tschmitt: added logging parameter 924 interruptible rsync "$ROPTS" --fake-super --compress --partial --delete --log-file=/tmp/image.log --log-file-format="" --read-batch="$1" /mnt >"$TMP" 2>&1 ; RC="$?" 910 #interruptible rsync "$ROPTS" --fake-super --compress --partial --delete --log-file=/tmp/image.log --log-file-format="" --read-batch="$1" /mnt >"$TMP" 2>&1 ; RC="$?" 911 interruptible rsync "$ROPTS" --compress --partial --delete --log-file=/tmp/image.log --log-file-format="" --read-batch="$1" /mnt >"$TMP" 2>&1 ; RC="$?" 925 912 if [ "$RC" != "0" ]; then 926 913 cat "$TMP" >&2 | tee -a /tmp/image.log … … 944 931 #[ "$(fstype "$2")" = "vfat" ] && ROPTS="$ROPTS --inplace" 945 932 # tschmitt: added logging parameter 946 interruptible rsync "$ROPTS" --fake-super --partial --exclude="/.linbo" --exclude-from="/tmp/rsync.exclude" --delete --delete-excluded --log-file=/tmp/image.log --log-file-format="" /cloop/ /mnt >"$TMP" 2>&1 ; RC="$?" 933 #interruptible rsync "$ROPTS" --fake-super --partial --exclude="/.linbo" --exclude-from="/tmp/rsync.exclude" --delete --delete-excluded --log-file=/tmp/image.log --log-file-format="" /cloop/ /mnt >"$TMP" 2>&1 ; RC="$?" 934 interruptible rsync "$ROPTS" --partial --exclude="/.linbo" --exclude-from="/tmp/rsync.exclude" --delete --delete-excluded --log-file=/tmp/image.log --log-file-format="" /cloop/ /mnt >"$TMP" 2>&1 ; RC="$?" 947 935 umount /cloop 948 936 if [ "$RC" != "0" ]; then … … 1080 1068 # restore NTFS attributes: rootdev 1081 1069 restore_ntfs_attr(){ 1082 # disabled1083 return 01084 local rootdev="$1"1085 1070 # don't restore attributes if a complete cloop restore without rsync afterwards was done 1086 1071 if [ -e /tmp/.cloop ]; then … … 1088 1073 return 0 1089 1074 fi 1090 # echo -n "Restauriere erweiterte NTFS Attribute ..." 1091 # local i="" 1092 # for i in acl attrib reparse_data; do 1093 # [ -f "/mnt/.${i}.gz" ] || continue 1094 # echo -n " $i ..." 1095 # (cd /mnt && zcat ".${i}.gz" | setfattr --restore=- 2>> /tmp/image.log) 1096 # set_ntfs_admin_attr "/mnt/.${i}.gz" 1097 # done 1098 # restore security attributes 1099 if [ -f "/mnt/.sec.gz" ]; then 1100 echo "Restauriere erweiterte NTFS Attribute ..." 1101 cp /mnt/.sec.gz /tmp || return 1 1102 if umount /mnt; then 1103 zcat /tmp/.sec.gz | secaudit -s "$rootdev" 2&1>> /tmp/image.log 1104 mountpart "$rootdev" /mnt -w 1105 rm -f /tmp/.sec.gz 1106 set_ntfs_admin_attr "/mnt/.sec.gz" 1107 else 1108 echo "Kann Partition $rootdev nicht aushängen!" 1109 return 1 1110 fi 1111 fi 1112 sync 1113 # echo 1075 echo -n "Restauriere erweiterte NTFS Attribute ..." 1076 local i="" 1077 for i in acl attrib reparse_data; do 1078 [ -f "/mnt/.${i}.gz" ] || continue 1079 (cd /mnt && zcat ".${i}.gz" | setfattr --restore=- 2>> /tmp/image.log) 1080 set_ntfs_admin_attr "/mnt/.${i}.gz" 1081 done 1082 echo " Fertig." 1114 1083 } 1115 1084 … … 1159 1128 if [ -e /mnt/[Nn][Tt][Ll][Dd][Rr] -o -e /mnt/[Bb][Oo][Oo][Tt][Mm][Gg][Rr] ]; then 1160 1129 # tschmitt: logging 1161 echo "Patche System mit $patchfile" >/tmp/patch.log1130 echo -n "Patche System mit $patchfile ... " >/tmp/patch.log 1162 1131 cat "$TMP" >>/tmp/patch.log 1163 1132 patch_registry "$TMP" /mnt 2>&1 >>/tmp/patch.log 1164 1133 [ -e /tmp/output ] && cat /tmp/output >>/tmp/patch.log 1134 echo "Fertig." 1165 1135 [ "$(fstype "$5")" = "vfat" ] && ms-sys -2 "$5" 1166 1136 elif [ -e /mnt/[Ii][Oo].[Ss][Yy][Ss] ]; then … … 1171 1141 rm -f "$TMP" 1172 1142 fi 1173 # restore NTFS attributes1174 [ "$(fstype "$rootdev")" = "ntfs" ] && restore_ntfs_attr "$rootdev"1175 1143 # patching for linux systems 1176 1144 # hostname … … 1183 1151 # fstab 1184 1152 [ -f /mnt/etc/fstab ] && patch_fstab "$rootdev" 1153 # restore extended ntfs attributes 1154 [ "$(fstype "$5")" = "ntfs" ] && restore_ntfs_attr 1185 1155 sync; sync; sleep 1 1186 1156 umount /mnt || umount -l /mnt … … 1218 1188 # RC=1 1219 1189 # else 1220 mk_cloop incremental "$5" "$2" "$3" ; RC="$?"1190 mk_cloop differential "$5" "$2" "$3" ; RC="$?" 1221 1191 # fi 1222 1192 ;; -
main/linuxmuster-linbo/branches/testing/linbo/patch_registry.sh
r509 r510 20 20 # this generates a LOT of debugging messages 21 21 DEBUG="-v" 22 file="" 23 tmplog="/tmp/output" 24 tmpctrls="/tmp/controlsets" 25 tmptest="/tmp/keytest" 22 hive="" 23 logfile="/tmp/output" 26 24 27 25 leftchop(){ … … 45 43 } 46 44 47 do_reg() {45 exec_command() { 48 46 local cmd="$1" 49 local logfile="$2" 50 [ -z "$logfile" ] && logfile="$tmplog" 51 chntpw $DEBUG -e "$file" >> $logfile <<. 47 chntpw $DEBUG -e "$hive" >> $logfile <<. 52 48 $(echo -e "$cmd") 53 49 . … … 55 51 56 52 test_key() { 57 local path="$1" 58 local key="$2" 59 local RC=0 60 local cmd="ls ${path}\nq\ny\n" 61 [ -e "$tmptest" ] && rm $tmptest 62 do_reg "$cmd" "$tmptest" 63 grep -q "<${key}>" $tmptest || RC=1 53 local key="$1" 54 local RC=1 55 echo -e "cd $key\nq\ny\n" | chntpw -e "$hive" | grep -q "not found\!" || RC="0" 64 56 return $RC 65 57 } 66 58 67 59 create_key() { 68 local path="$1" 69 local key="$2" 70 local cmd="cd ${path}\nnk ${key}\nq\ny\n" 71 do_reg "$cmd" 72 } 73 74 create_cmd() { 60 local fpath="$1" 61 local tpath="" 62 local bpath="" 63 local cmd="" 64 local i="" 65 local OIFS="$IFS" 66 IFS="\\" 67 for i in $fpath; do 68 bpath="$tpath" 69 if [ -n "$tpath" ]; then tpath="${tpath}\\${i}"; else tpath="$i"; fi 70 if ! test_key "$tpath"; then 71 if [ "$bpath" = "" ]; then 72 cmd="nk ${i}\nq\ny\n" 73 else 74 cmd="cd ${bpath}\nnk ${i}\nq\ny\n" 75 fi 76 exec_command "$cmd" 77 fi 78 done 79 IFS="$OIFS" 80 } 81 82 create_keypath() { 75 83 local key="$1" 76 84 local ctrlset="$2" … … 80 88 ##### 81 89 82 [ -n "$DEBUG" ] && echo " 5 key=$key" | tee -a $tmplog90 [ -n "$DEBUG" ] && echo " 5 key=$key" | tee -a $logfile 83 91 # remove right end and replace it with a backslash 84 92 key=`rightchopend "$key"` 85 93 fullpath="$key" 86 key="$key\\" 87 88 [ -n "$DEBUG" ] && echo "6 fullpath=$fullpath" | tee -a $tmplog 89 90 currentkey=`leftget "$key"` 91 [ -n "$DEBUG" ] && echo "7 currentkey=$currentkey" | tee -a $tmplog 92 93 key=`leftchop "$key"` 94 [ -n "$DEBUG" ] && echo "8 key=$key" | tee -a $tmplog 95 96 base_path="" 97 while [ "$currentkey" != "" ]; do 98 99 [ -z "$base_path" ] && base_path="." 100 101 [ -n "$DEBUG" ] && echo "9 base_path=$base_path" | tee -a $tmplog 94 95 [ -n "$DEBUG" ] && echo " 6 fullpath=$fullpath" | tee -a $logfile 102 96 103 97 # tschmitt: check if currentkey exists in registry, if not create it 104 if ! test_key "$ base_path" "$currentkey"; then105 if [ -n "$ctrlset" ]; then106 # don't create new keys in supplemental controlsets107 [ -n "$DEBUG" ] && echo "### Skipping creation of $currentkey in $ctrlset!" | tee -a $tmplog108 return 1109 fi110 [ -n "$DEBUG" ] && echo "### Creating key $ currentkey" | tee -a $tmplog111 create_key "$ base_path" "$currentkey"98 if ! test_key "$fullpath"; then 99 if [ -n "$ctrlset" ]; then 100 # don't create new keys in supplemental controlsets 101 [ -n "$DEBUG" ] && echo "### Skipping $fullpath" | tee -a $logfile 102 return 1 103 fi 104 [ -n "$DEBUG" ] && echo "### Creating key $fullpath" | tee -a $logfile 105 create_key "$fullpath" 112 106 fi 113 114 if [ "$base_path" = "." ]; then 115 base_path="${currentkey}" 116 else 117 base_path="${base_path}\\${currentkey}" 118 fi 119 120 currentkey=`leftget "$key"` 121 [ -n "$DEBUG" ] && echo "10 currentkey=$currentkey" | tee -a $tmplog 122 123 key=`leftchop "$key"` 124 [ -n "$DEBUG" ] && echo "11 key=$key" | tee -a $tmplog 125 126 done 127 128 base_command="cd ${fullpath}\n" 129 } 130 131 create_val() { 107 } 108 109 # returns success if old value is equal to new value 110 test_value(){ 111 local fpath="$1" 112 local newval="$2" 113 local curval="$(echo -e "cat ${fpath}\nq\ny\n" | chntpw -e "$hive" | grep -Fi "$newval")" 114 if [ -n "$curval" ]; then 115 [ -n "$DEBUG" ] && echo "### $parameter is already set to $curval. Skipping." | tee -a $logfile 116 return 0 117 else 118 [ -n "$DEBUG" ] && echo "### $parameter is not equal to $newval. Patching." | tee -a $logfile 119 return 1 120 fi 121 } 122 123 create_command() { 132 124 #### 133 125 # parse value changes 134 126 #### 135 [ -n "$DEBUG" ] && echo " 12 change=$change" | tee -a $tmplog127 [ -n "$DEBUG" ] && echo " 7 change=$change" | tee -a $logfile 136 128 137 129 if [ "$change" = "" ]; then … … 139 131 fi 140 132 141 command=" ${base_command}"142 [ -n "$DEBUG" ] && echo " 13 command=$command" | tee -a $tmplog133 command="cd ${fullpath}\n" 134 [ -n "$DEBUG" ] && echo " 8 command=$command" | tee -a $logfile 143 135 144 136 parameter=`leftgetvalue "$change"` 145 [ -n "$DEBUG" ] && echo " 14 parameter=$parameter" | tee -a $tmplog137 [ -n "$DEBUG" ] && echo " 9 parameter=$parameter" | tee -a $logfile 146 138 147 139 parameter="$(echo "$parameter" | sed 's,\",,g')" 148 [ -n "$DEBUG" ] && echo "1 5 parameter=$parameter" | tee -a $tmplog140 [ -n "$DEBUG" ] && echo "10 parameter=$parameter" | tee -a $logfile 149 141 150 142 value=`rightgetvalue "$change"` 151 [ -n "$DEBUG" ] && echo "1 6 value=$value" | tee -a $tmplog143 [ -n "$DEBUG" ] && echo "11 value=$value" | tee -a $logfile 152 144 153 145 value="$(echo "$value" | sed 's,\",,g')" 154 [ -n "$DEBUG" ] && echo "1 7 value=$value" | tee -a $tmplog155 146 [ -n "$DEBUG" ] && echo "12 value=$value" | tee -a $logfile 147 156 148 value="$(echo "$value" | sed 's,$,,g')" 157 [ -n "$DEBUG" ] && echo "1 8 value=$value" | tee -a $tmplog149 [ -n "$DEBUG" ] && echo "13 value=$value" | tee -a $logfile 158 150 159 151 # our standard type for strings is REG_SZ … … 166 158 esac 167 159 if [ -n "$DEBUG" ]; then 168 echo "19 type=$type" | tee -a $tmplog 169 echo "20 value=$value" | tee -a $tmplog 160 echo "14 type=$type" | tee -a $logfile 161 echo "15 value=$value" | tee -a $logfile 162 fi 163 164 # return if value is already set -> nothing to do 165 if [ -n "$value" ]; then 166 test_value "${fullpath}\\${parameter}" "$value" && return 1 170 167 fi 171 168 172 169 command="${command}dv ${parameter}\n" 170 [ -n "$DEBUG" ] && echo "16 command=$command" | tee -a $logfile 171 173 172 command="${command}nv ${type} ${parameter}\n" 174 [ -n "$DEBUG" ] && echo " 21 command=$command" | tee -a $tmplog173 [ -n "$DEBUG" ] && echo "17 command=$command" | tee -a $logfile 175 174 176 175 command="${command}ed ${parameter}\n" 177 [ -n "$DEBUG" ] && echo "22 command=$command" | tee -a $tmplog 178 176 [ -n "$DEBUG" ] && echo "18 command=$command" | tee -a $logfile 177 178 # out final command 179 179 command="${command}$value\nq\ny\n" 180 [ -n "$DEBUG" ] && echo "23 command=$command" | tee -a $tmplog 181 182 # out final command 183 [ -n "$DEBUG" ] && echo "24 final command=$command" | tee -a $tmplog 180 [ -n "$DEBUG" ] && echo "19 final command=$command" | tee -a $logfile 184 181 } 185 182 186 183 while read -r key; do 187 [ -n "$DEBUG" ] && echo "$key $((count++))" | tee -a $ tmplog188 189 # select file for patching184 [ -n "$DEBUG" ] && echo "$key $((count++))" | tee -a $logfile 185 186 # select hive for patching 190 187 case "$key" in 191 188 \[HKEY_LOCAL_MACHINE*) 192 189 key="$(leftchop "$key")" 193 [ -n "$DEBUG" ] && echo " 1 key=$key" | tee -a $tmplog190 [ -n "$DEBUG" ] && echo " 1 key=$key" | tee -a $logfile 194 191 195 192 case `leftget "$key"` in 196 193 [Ss][Yy][Ss][Tt][Ee][Mm]*) 197 file="$(ls -1d $2/[Ww][Ii][Nn][Dd][Oo][Ww][Ss]/[Ss][Yy][Ss][Tt][Ee][Mm]32/[Cc][Oo][Nn][Ff][Ii][Gg]/[Ss][Yy][Ss][Tt][Ee][Mm] 2>/dev/null | tail -1)"198 [ -z "$ file" ] && file="$(ls -1d $2/[Ww][Ii][Nn][Nn][Tt]/[Ss][Yy][Ss][Tt][Ee][Mm]32/[Cc][Oo][Nn][Ff][Ii][Gg]/[Ss][Yy][Ss][Tt][Ee][Mm] 2>/dev/null | tail -1)"199 # strip file194 hive="$(ls -1d $2/[Ww][Ii][Nn][Dd][Oo][Ww][Ss]/[Ss][Yy][Ss][Tt][Ee][Mm]32/[Cc][Oo][Nn][Ff][Ii][Gg]/[Ss][Yy][Ss][Tt][Ee][Mm] 2>/dev/null | tail -1)" 195 [ -z "$hive" ] && hive="$(ls -1d $2/[Ww][Ii][Nn][Nn][Tt]/[Ss][Yy][Ss][Tt][Ee][Mm]32/[Cc][Oo][Nn][Ff][Ii][Gg]/[Ss][Yy][Ss][Tt][Ee][Mm] 2>/dev/null | tail -1)" 196 # strip hive 200 197 key=`leftchop "$key"` 201 [ -n "$DEBUG" ] && echo " 2 key=$key" | tee -a $tmplog198 [ -n "$DEBUG" ] && echo " 2 key=$key" | tee -a $logfile 202 199 203 200 # change "CurrentControlSet" to "ControlSet001" 204 201 key="$(echo "$key" | sed 's,CurrentControlSet,ControlSet001,')" 205 [ -n "$DEBUG" ] && echo " 3 key=$key" | tee -a $tmplog202 [ -n "$DEBUG" ] && echo " 3 key=$key" | tee -a $logfile 206 203 ;; 207 204 [Ss][Oo][Ff][Tt][Ww][Aa][Rr][Ee]*) 208 file="$(ls -1d $2/[Ww][Ii][Nn][Dd][Oo][Ww][Ss]/[Ss][Yy][Ss][Tt][Ee][Mm]32/[Cc][Oo][Nn][Ff][Ii][Gg]/[Ss][Oo][Ff][Tt][Ww][Aa][Rr][Ee] 2>/dev/null | tail -1)"209 [ -z "$ file" ] && file="$(ls -1d $2/[Ww][Ii][Nn][Nn][Tt]/[Ss][Yy][Ss][Tt][Ee][Mm]32/[Cc][Oo][Nn][Ff][Ii][Gg]/[Ss][Oo][Ff][Tt][Ww][Aa][Rr][Ee] 2>/dev/null | tail -1)"210 # strip file205 hive="$(ls -1d $2/[Ww][Ii][Nn][Dd][Oo][Ww][Ss]/[Ss][Yy][Ss][Tt][Ee][Mm]32/[Cc][Oo][Nn][Ff][Ii][Gg]/[Ss][Oo][Ff][Tt][Ww][Aa][Rr][Ee] 2>/dev/null | tail -1)" 206 [ -z "$hive" ] && hive="$(ls -1d $2/[Ww][Ii][Nn][Nn][Tt]/[Ss][Yy][Ss][Tt][Ee][Mm]32/[Cc][Oo][Nn][Ff][Ii][Gg]/[Ss][Oo][Ff][Tt][Ww][Aa][Rr][Ee] 2>/dev/null | tail -1)" 207 # strip hive 211 208 key=`leftchop "$key"` 212 [ -n "$DEBUG" ] && echo " 4 key=$key" | tee -a $tmplog209 [ -n "$DEBUG" ] && echo " 4 key=$key" | tee -a $logfile 213 210 ;; 214 211 esac 215 212 216 create_ cmd"$key"213 create_keypath "$key" 217 214 218 215 while read -r change; do 219 216 220 create_val || break 221 222 do_reg "$command" 223 224 # tschmitt: patch other controlsets up to 9 217 create_command || break 218 exec_command "$command" 219 220 # tschmitt: patch other controlsets up to 3 225 221 case "$command" in 226 222 *ControlSet001*) 227 if [ ! -s "$tmpctrls" ]; then 228 [ -n "$DEBUG" ] && echo "### Writing $tmpctrls ..." | tee -a $tmplog 229 controlcheck="ls\nq\ny\n" 230 do_reg "$controlcheck" "$tmpctrls" 231 fi 232 n=2 233 while [ $n -lt 10 ]; do 234 ctrlset="ControlSet00$n" 235 [ -n "$DEBUG" ] && echo "### Checking $ctrlset ..." | tee -a $tmplog 236 if grep -q "<$ctrlset>" $tmpctrls; then 237 key_new="$(echo "$key" | sed "s,ControlSet001,$ctrlset,")" 238 [ -n "$DEBUG" ] && echo "### Patching $ctrlset with new key: $key_new" | tee -a $tmplog 239 if create_cmd "$key_new" "$ctrlset"; then 240 create_val && do_reg "$command" 241 fi 242 fi 243 let n+=1 244 done 245 ;; 223 n=2 224 while [ $n -lt 4 ]; do 225 ctrlset="ControlSet00$n" 226 [ -n "$DEBUG" ] && echo "### Checking $ctrlset ..." | tee -a $logfile 227 if test_key "$ctrlset"; then 228 key_new="$(echo "$key" | sed "s,ControlSet001,$ctrlset,")" 229 [ -n "$DEBUG" ] && echo "### Patching $ctrlset with new key: $key_new" | tee -a $logfile 230 if create_keypath "$key_new" "$ctrlset"; then 231 create_command && exec_command "$command" 232 fi 233 fi 234 let n+=1 235 done 236 ;; 246 237 esac 247 238 … … 252 243 done < "$1" # while read -r key 253 244 254 # merge logfiles255 cat $tmplog >> $tmpctrls256 mv $tmpctrls $tmplog257
Note: See TracChangeset
for help on using the changeset viewer.
