mirror of
https://github.com/erenfro/gen2stage4.git
synced 2024-11-21 22:25:35 -05:00
-k: separately save current kernel moudules and src (smaller). + -e: an additional excludes directory (one dir one -e).
This commit is contained in:
parent
a026ef0045
commit
bdcafb5b0e
2 changed files with 46 additions and 3 deletions
|
@ -41,12 +41,14 @@ mkstage4 -t /custom/mount/point archive_name
|
|||
Command line arguments:
|
||||
|
||||
```
|
||||
mkstage4 [-q -c -b] [-s || -t <target-mountpoint>] <archive-filename> [custom-tar-options]
|
||||
mkstage4.sh [-q -c -b -l -k] [-s || -t <target-mountpoint>] [-e <additional excludes dir*>] <archive-filename> [custom-tar-options]
|
||||
-q: activates quiet mode (no confirmation).
|
||||
-c: excludes connman network lists.
|
||||
-b: excludes boot directory.
|
||||
-l: excludes lost+found directory.
|
||||
-e: an additional excludes directory (one dir one -e).
|
||||
-s: makes tarball of current system.
|
||||
-k: separately save current kernel moudules and src (smaller).
|
||||
-t: makes tarball of system located at the <target-mountpoint>.
|
||||
-h: displays help message.
|
||||
```
|
||||
|
|
45
mkstage4.sh
45
mkstage4.sh
|
@ -12,18 +12,27 @@ EXCLUDE_BOOT=0
|
|||
EXCLUDE_CONNMAN=0
|
||||
EXCLUDE_LOST=0
|
||||
QUIET=0
|
||||
USER_EXCL=""
|
||||
S_KERNEL=0
|
||||
x86_64=0
|
||||
if [ `getconf LONG_BIT` = "64" ]
|
||||
then
|
||||
x86_64=1
|
||||
fi
|
||||
USAGE="usage:\n\
|
||||
`basename $0` [-q -c -b] [-s || -t <target-mountpoint>] <archive-filename> [custom-tar-options]\n\
|
||||
`basename $0` [-q -c -b -l -k] [-s || -t <target-mountpoint>] [-e <additional excludes dir*>] <archive-filename> [custom-tar-options]\n\
|
||||
-q: activates quiet mode (no confirmation).\n\
|
||||
-c: excludes connman network lists.\n\
|
||||
-b: excludes boot directory.\n\
|
||||
-l: excludes lost+found directory.\n\
|
||||
-e: an additional excludes directory (one dir one -e).\n\
|
||||
-s: makes tarball of current system.\n\
|
||||
-k: separately save current kernel moudules and src (smaller).\n\
|
||||
-t: makes tarball of system located at the <target-mountpoint>.\n\
|
||||
-h: displays help message."
|
||||
|
||||
# reads options:
|
||||
while getopts ':t:sqcblh' flag; do
|
||||
while getopts ':te:skqcblh' flag; do
|
||||
case "${flag}" in
|
||||
t)
|
||||
TARGET="$OPTARG"
|
||||
|
@ -34,6 +43,9 @@ while getopts ':t:sqcblh' flag; do
|
|||
q)
|
||||
QUIET=1
|
||||
;;
|
||||
k)
|
||||
S_KERNEL=1
|
||||
;;
|
||||
c)
|
||||
EXCLUDE_CONNMAN=1
|
||||
;;
|
||||
|
@ -43,6 +55,9 @@ while getopts ':t:sqcblh' flag; do
|
|||
l)
|
||||
EXCLUDE_LOST=1
|
||||
;;
|
||||
e)
|
||||
USER_EXCL+=" --exclude=${OPTARG}"
|
||||
;;
|
||||
h)
|
||||
echo -e "$USAGE"
|
||||
exit 0
|
||||
|
@ -100,10 +115,23 @@ fi
|
|||
#Shifts pointer to read custom tar options
|
||||
shift;OPTIONS="$@"
|
||||
|
||||
if [ ${S_KERNEL} -eq 1 ]
|
||||
then
|
||||
USER_EXCL+=" --exclude=${TARGET}/usr/src/* "
|
||||
if [ ${x86_64} -eq 1 ]
|
||||
then
|
||||
USER_EXCL+=" --exclude=${TARGET}lib64/modules/* "
|
||||
else
|
||||
USER_EXCL+=" --exclude=${TARGET}lib/modules/* "
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# Excludes:
|
||||
EXCLUDES="\
|
||||
--exclude=${TARGET}home/*/.bash_history \
|
||||
--exclude=${TARGET}dev/* \
|
||||
--exclude=${TARGET}var/tmp/* \
|
||||
--exclude=${TARGET}media/* \
|
||||
--exclude=${TARGET}mnt/*/* \
|
||||
--exclude=${TARGET}proc/* \
|
||||
|
@ -115,6 +143,8 @@ EXCLUDES="\
|
|||
--exclude=${TARGET}var/log/* \
|
||||
--exclude=${TARGET}var/run/*"
|
||||
|
||||
EXCLUDES+=$USER_EXCL
|
||||
|
||||
if [ "$TARGET" == "/" ]
|
||||
then
|
||||
EXCLUDES+=" --exclude=${STAGE4_FILENAME#/}"
|
||||
|
@ -161,6 +191,17 @@ fi
|
|||
if [ "$AGREE" == "yes" ]
|
||||
then
|
||||
tar $TAR_OPTIONS $EXCLUDES $OPTIONS -f $STAGE4_FILENAME ${TARGET}*
|
||||
if [ ${S_KERNEL} -eq 1 ]
|
||||
then
|
||||
tar $TAR_OPTIONS $OPTIONS -f ksrc_$STAGE4_FILENAME ${TARGET}usr/src/linux-$(uname -r)*
|
||||
if [ ${x86_64} -eq 1 ]
|
||||
then
|
||||
tar $TAR_OPTIONS $OPTIONS -f kmod_$STAGE4_FILENAME ${TARGET}lib64/modules/$(uname -r)*
|
||||
else
|
||||
tar $TAR_OPTIONS $OPTIONS -f kmod_$STAGE4_FILENAME ${TARGET}lib/modules/$(uname -r)*
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
Loading…
Reference in a new issue