@@ -22,7 +22,7 @@ createZswap () {
22
22
else
23
23
echo " zram$RAM_DEV no swappiness" >> ${ZLOG}
24
24
fi
25
- echo " swap /dev/ zram${RAM_DEV} zram-config${RAM_DEV} " >> ${ZSHARE} /zram-device-list
25
+ echo " swap /zram${RAM_DEV} zram-config${RAM_DEV} " >> ${ZSHARE} /zram-device-list
26
26
}
27
27
28
28
createZdir () {
@@ -36,11 +36,11 @@ createZdir () {
36
36
mount --verbose --make-private ${ZDIR}${BIND_DIR} / >> ${ZLOG} 2>&1 || return 1
37
37
createZdevice || return 1
38
38
mke2fs -v -t ext4 /dev/zram${RAM_DEV} >> ${ZLOG} 2>&1 || return 1
39
- mkdir -p ${ZDIR}${TARGET_DIR } >> ${ZLOG} 2>&1 || return 1
40
- mount --verbose --types ext4 -o nosuid,noexec,nodev /dev/zram${RAM_DEV} ${ZDIR}${TARGET_DIR } / >> ${ZLOG} 2>&1 || return 1
41
- mkdir -p ${ZDIR}${TARGET_DIR } /upper ${ZDIR}${TARGET_DIR } /workdir ${TARGET_DIR} >> ${ZLOG} 2>&1 || return 1
42
- mount --verbose --types overlay -o lowerdir=${ZDIR}${BIND_DIR} ,upperdir=${ZDIR}${TARGET_DIR } /upper,workdir=${ZDIR}${TARGET_DIR } /workdir overlay ${TARGET_DIR} >> ${ZLOG} 2>&1 || return 1
43
- echo " ${ZTYPE} /dev/ zram${RAM_DEV} ${TARGET_DIR} ${BIND_DIR} " >> ${ZSHARE} /zram-device-list
39
+ mkdir -p ${ZDIR} /zram ${RAM_DEV } >> ${ZLOG} 2>&1 || return 1
40
+ mount --verbose --types ext4 -o nosuid,noexec,nodev /dev/zram${RAM_DEV} ${ZDIR} /zram ${RAM_DEV } / >> ${ZLOG} 2>&1 || return 1
41
+ mkdir -p ${ZDIR} /zram ${RAM_DEV } /upper ${ZDIR} /zram ${RAM_DEV } /workdir ${TARGET_DIR} >> ${ZLOG} 2>&1 || return 1
42
+ mount --verbose --types overlay -o lowerdir=${ZDIR}${BIND_DIR} ,upperdir=${ZDIR} /zram ${RAM_DEV } /upper,workdir=${ZDIR} /zram ${RAM_DEV } /workdir overlay ${TARGET_DIR} >> ${ZLOG} 2>&1 || return 1
43
+ echo " ${ZTYPE} /zram${RAM_DEV} ${TARGET_DIR} ${BIND_DIR} " >> ${ZSHARE} /zram-device-list
44
44
else
45
45
echo " No mount dir in ztab" >> ${ZLOG}
46
46
return 1
@@ -97,39 +97,36 @@ createZdevice () {
97
97
echo " zram$RAM_DEV created comp_algorithm=$ALG mem_limit=$MEM_SIZE disksize=$DISK_SIZE " >> ${ZLOG}
98
98
}
99
99
100
- syncFromDisk () {
101
- if cp -arvf ${ZDIR}${BIND_DIR} -T ${TARGET_DIR} >> ${ZLOG} 2>&1 || return 1
102
- then
103
- echo " syncFromDisk ${ZDIR} $BIND_DIR to $TARGET_DIR complete" >> ${ZLOG}
104
- else
105
- echo " Error syncFromDisk ${ZDIR}${BIND_DIR} to ${TARGET_DIR} failure" >> ${ZLOG}
106
- return 1
107
- fi
108
- }
109
-
110
- syncToDisk () {
111
- if cp -arvfu ${TARGET_DIR} -T ${ZDIR}${BIND_DIR} >> ${ZLOG} 2>&1 || return 1
112
- then
113
- echo " syncToDisk ${TARGET_DIR} to ${ZDIR}${BIND_DIR} complete" >> ${ZLOG}
114
- else
115
- echo " Error syncFromDisk ${TARGET_DIR} to ${ZDIR}${BIND_DIR} failure" >> ${ZLOG}
116
- return 1
117
- fi
100
+ mergeOverlay () {
101
+ echo " overlay --lowerdir=$ZDIR$BIND_DIR --upperdir=$ZDIR$ZRAM_DEV /upper" >> ${ZLOG}
102
+ cd /usr/local/lib/zram-config/
103
+ ./overlay merge -l " ${ZDIR}${BIND_DIR} " -u " ${ZDIR}${ZRAM_DEV} /upper" >> ${ZLOG} 2>&1 || return 1
104
+ sh * .sh >> ${ZLOG} 2>&1 || return 1
105
+ rm -v * .sh >> ${ZLOG} 2>&1 || return 1
106
+
118
107
}
119
108
120
109
removeZlog () {
121
110
if [ ! -z " $OLDLOG_DIR " ]
122
111
then
123
112
cp -arvf ${ZSHARE} /logrotate.conf.bak /etc/logrotate.conf >> ${ZLOG} 2>&1 || return 1
124
113
fi
125
- syncToDisk
114
+ echo " $ZRAM_DEV " >> ${ZLOG}
115
+ # syncToDisk
126
116
DEV_NUM=$( echo ${ZRAM_DEV} | tr -dc ' 0-9' )
127
117
if [ ! -z " $TARGET_DIR " ]
128
118
then
129
119
invoke-rc.d rsyslog stop >> ${ZLOG} 2>&1 || return 1
130
120
umount --verbose ${TARGET_DIR} / >> ${ZLOG} 2>&1 || return 1
131
- umount --verbose ${ZDIR}${TARGET_DIR} / >> ${ZLOG} 2>&1 || return 1
132
- rm -rv ${ZDIR}${TARGET_DIR} >> ${ZLOG} 2>&1 || return 1
121
+ else
122
+ return 1
123
+ fi
124
+ mergeOverlay >> ${ZLOG} 2>&1 || return 1
125
+ if [ ! -z " $ZRAM_DEV " ]
126
+ then
127
+ # rm -rv ${TARGET_DIR} >>${ZLOG} 2>&1 || return 1
128
+ umount --verbose ${ZDIR}${ZRAM_DEV} / >> ${ZLOG} 2>&1 || return 1
129
+ rm -rv ${ZDIR}${ZRAM_DEV} >> ${ZLOG} 2>&1 || return 1
133
130
else
134
131
return 1
135
132
fi
@@ -144,17 +141,25 @@ removeZlog () {
144
141
echo " $DEV_NUM " > /sys/class/zram-control/hot_remove
145
142
invoke-rc.d rsyslog restart >> ${ZLOG} 2>&1 || return 1
146
143
journalctl --flush >> ${ZLOG} 2>&1 || return 1
147
- echo " $ZRAM_DEV removed" >> ${ZLOG}
144
+ echo " /dev $ZRAM_DEV removed" >> ${ZLOG}
148
145
}
149
146
150
147
removeZdir () {
151
- syncToDisk
148
+ echo " $ZRAM_DEV " >> ${ZLOG}
149
+ # syncToDisk
152
150
DEV_NUM=$( echo " $ZRAM_DEV " | tr -dc ' 0-9' )
153
151
if [ ! -z " $TARGET_DIR " ]
154
152
then
155
153
umount --verbose ${TARGET_DIR} / >> ${ZLOG} 2>&1 || return 1
156
- umount --verbose ${ZDIR}${TARGET_DIR} / >> ${ZLOG} 2>&1 || return 1
157
- rm -rv ${ZDIR}${TARGET_DIR} >> ${ZLOG} 2>&1 || return 1
154
+ else
155
+ return 1
156
+ fi
157
+ mergeOverlay >> ${ZLOG} 2>&1 || return 1
158
+ if [ ! -z " $ZRAM_DEV " ]
159
+ then
160
+ # rm -rv ${TARGET_DIR} >>${ZLOG} 2>&1 || return 1
161
+ umount --verbose ${ZDIR}${ZRAM_DEV} / >> ${ZLOG} 2>&1 || return 1
162
+ rm -rv ${ZDIR}${ZRAM_DEV} >> ${ZLOG} 2>&1 || return 1
158
163
else
159
164
return 1
160
165
fi
@@ -166,18 +171,19 @@ removeZdir () {
166
171
return 1
167
172
fi
168
173
echo " $DEV_NUM " > /sys/class/zram-control/hot_remove
169
- echo " $ZRAM_DEV removed" >> ${ZLOG}
174
+ echo " /dev $ZRAM_DEV removed" >> ${ZLOG}
170
175
}
171
176
172
177
removeZswap () {
173
178
DEV_NUM=$( echo " $ZRAM_DEV " | tr -dc ' 0-9' )
174
- swapoff $ZRAM_DEV >> ${ZLOG} 2>&1 || return 1
179
+ swapoff /dev $ZRAM_DEV >> ${ZLOG} 2>&1 || return 1
175
180
echo " $DEV_NUM " > /sys/class/zram-control/hot_remove
176
- echo " $ZRAM_DEV removed" >> ${ZLOG}
181
+ echo " /dev $ZRAM_DEV removed" >> ${ZLOG}
177
182
}
183
+
178
184
ZSHARE=/usr/local/share/zram-config
179
185
ZLOG=${ZSHARE} /log/zram-config.log
180
- ZDIR=/opt/zram-conf
186
+ ZDIR=/opt/zram
181
187
182
188
case " $1 " in
183
189
start)
0 commit comments