Skip to content

Commit e31abaa

Browse files
add overlayfs-tools
1 parent c2296a1 commit e31abaa

File tree

4 files changed

+50
-35
lines changed

4 files changed

+50
-35
lines changed

install.sh

+7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ systemctl -q is-active zram-config && { echo "ERROR: zram-config service is sti
44
[ "$(id -u)" -eq 0 ] || { echo "You need to be ROOT (sudo can be used)"; exit 1; }
55
[ -d /usr/local/bin/zram-config ] && { echo "zram-config is already installed, uninstall first"; exit 1; }
66

7+
git clone https://github.com/kmxz/overlayfs-tools
8+
cd overlayfs-tools
9+
make
10+
cd ..
11+
712

813
# zram-config install
914
install -m 755 zram-config /usr/local/bin/
@@ -13,6 +18,8 @@ mkdir -p /usr/local/share/zram-config
1318
mkdir -p /usr/local/share/zram-config/log
1419
install -m 644 uninstall.sh /usr/local/share/zram-config/uninstall.sh
1520
install -m 644 zram-config.logrotate /etc/logrotate.d/zram-config
21+
mkdir -p /usr/local/lib/zram-config/
22+
install -m 755 overlayfs-tools/overlay /usr/local/lib/zram-config/overlay
1623
systemctl enable zram-config
1724

1825
echo "##### Reboot to activate zram-config #####"

overlayfs-tools

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 0d44989f1ab7f2e0f565e58f9aff7a9cffb32cd7

uninstall.sh

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ then
1111

1212
echo "zram-config is uninstalled, removing the uninstaller in progress"
1313
rm -rf /usr/local/share/zram-config
14+
rm -rf /usr/local/lib/zram-config
1415
echo "##### Reboot isn't needed #####"
1516
else
1617
echo "You need to be ROOT (sudo can be used)"

zram-config

+41-35
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ createZswap () {
2222
else
2323
echo "zram$RAM_DEV no swappiness" >>${ZLOG}
2424
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
2626
}
2727

2828
createZdir () {
@@ -36,11 +36,11 @@ createZdir () {
3636
mount --verbose --make-private ${ZDIR}${BIND_DIR}/ >>${ZLOG} 2>&1 || return 1
3737
createZdevice || return 1
3838
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
4444
else
4545
echo "No mount dir in ztab" >>${ZLOG}
4646
return 1
@@ -97,39 +97,36 @@ createZdevice () {
9797
echo "zram$RAM_DEV created comp_algorithm=$ALG mem_limit=$MEM_SIZE disksize=$DISK_SIZE" >>${ZLOG}
9898
}
9999

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+
118107
}
119108

120109
removeZlog () {
121110
if [ ! -z "$OLDLOG_DIR" ]
122111
then
123112
cp -arvf ${ZSHARE}/logrotate.conf.bak /etc/logrotate.conf >>${ZLOG} 2>&1 || return 1
124113
fi
125-
syncToDisk
114+
echo "$ZRAM_DEV" >>${ZLOG}
115+
#syncToDisk
126116
DEV_NUM=$(echo ${ZRAM_DEV} | tr -dc '0-9')
127117
if [ ! -z "$TARGET_DIR" ]
128118
then
129119
invoke-rc.d rsyslog stop >>${ZLOG} 2>&1 || return 1
130120
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
133130
else
134131
return 1
135132
fi
@@ -144,17 +141,25 @@ removeZlog () {
144141
echo "$DEV_NUM" > /sys/class/zram-control/hot_remove
145142
invoke-rc.d rsyslog restart >>${ZLOG} 2>&1 || return 1
146143
journalctl --flush >>${ZLOG} 2>&1 || return 1
147-
echo "$ZRAM_DEV removed" >>${ZLOG}
144+
echo "/dev$ZRAM_DEV removed" >>${ZLOG}
148145
}
149146

150147
removeZdir () {
151-
syncToDisk
148+
echo "$ZRAM_DEV" >>${ZLOG}
149+
#syncToDisk
152150
DEV_NUM=$(echo "$ZRAM_DEV" | tr -dc '0-9')
153151
if [ ! -z "$TARGET_DIR" ]
154152
then
155153
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
158163
else
159164
return 1
160165
fi
@@ -166,18 +171,19 @@ removeZdir () {
166171
return 1
167172
fi
168173
echo "$DEV_NUM" > /sys/class/zram-control/hot_remove
169-
echo "$ZRAM_DEV removed" >>${ZLOG}
174+
echo "/dev$ZRAM_DEV removed" >>${ZLOG}
170175
}
171176

172177
removeZswap () {
173178
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
175180
echo "$DEV_NUM" > /sys/class/zram-control/hot_remove
176-
echo "$ZRAM_DEV removed" >>${ZLOG}
181+
echo "/dev$ZRAM_DEV removed" >>${ZLOG}
177182
}
183+
178184
ZSHARE=/usr/local/share/zram-config
179185
ZLOG=${ZSHARE}/log/zram-config.log
180-
ZDIR=/opt/zram-conf
186+
ZDIR=/opt/zram
181187

182188
case "$1" in
183189
start)

0 commit comments

Comments
 (0)