# live-snapshot - utility to manage Debian Live systems snapshots
#
# This program mount a device (fallback to /tmpfs under /mnt/snapshot
-# and save the /cow (or a different dir) filesystem in it for reusing
+# and save the /live/cow (or a different dir) filesystem in it for reusing
# in another live-initramfs session. Look at manpage for more info.
#
# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com>
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# On Debian systems, the complete text of the GNU General Public License
-# can be found in /usr/share/common-licenses/GPL file.
+# can be found in /usr/share/common-licenses/GPL-2 file.
PROGRAM="`basename $0`"
VERSION=0.0.1
Header
echo
echo "Options:"
- echo " -c, --cow: specifies the copy on write directory (default: /cow)."
+ echo " -c, --cow: specifies the copy on write directory (default: /live/cow)."
echo " -d, --device: specifies the output snapshot device (default: none)."
echo " -o, --output: specifies the output image file (default: $type dependent)."
echo " -r, --resync-string: internally used to resync previous made snapshots."
- echo " -t, --type: specifies the snapshot type between \"squashfs\", \"ext2\" or \"cpio\".gz archive (default: cpio)"
+ echo " -t, --type: specifies the snapshot type between \"squashfs\", \"ext2\", \"ext3\" or \"cpio\".gz archive (default: cpio)"
echo -e "\nLook at live-snapshot(1) man page for more information."
exit 0
}
echo "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA"
echo
echo "On Debian systems, the complete text of the GNU General Public License"
- echo "can be found in /usr/share/common-licenses/GPL file."
+ echo "can be found in /usr/share/common-licenses/GPL-2 file."
echo
echo "Homepage: <http://debian-live.alioth.debian.org/>"
exit 0
cpio)
( cd "${COW}" && find . -path '*.wh.*' -prune -o -print0 | cpio --quiet -o0 -H newc | gzip -9c > "${DEST}" ) || exit 1
;;
- ext2)
+ ext2|ext3)
DU_DIM="`du -ks ${COW} | cut -f1`"
REAL_DIM="`expr ${DU_DIM} + ${DU_DIM} / 20`" # Just 5% more to be sure, need something more sophistcated here...
genext2fs --size-in-blocks=${REAL_DIM} --reserved-blocks=0 --root="${COW}" "${DEST}" || exit 1
{
dir1="`Base_path $1`"
dir2="`Base_path $2`"
- if [ "${dir1}" == "${dir2}" ]; then
+ if [ "${dir1}" = "${dir2}" ]; then
return 0
else
return 1
Defaults ()
{
MOUNTP="/mnt/live-snapshot"
- COW="/cow"
+ COW="/live/cow"
DEV=""
DEST="${MOUNTP}/live-sn.cpio.gz"
TYPE="cpio"
TYPE="squashfs" ;;
"")
TYPE="ext2" ;;
- *.ext2)
+ *.ext2|*.ext3)
TYPE="ext2" ;;
*)
Usage "Unregognized String" ;;
esac
else
- DEF_COW="/cow"
+ DEF_COW="/live/cow"
# Bad options handling
if [ -z "${SNAP_COW}" ]; then
COW="${DEF_COW}"
fi
case "${SNAP_TYPE}" in
- "cpio"|"squashfs"|"ext2")
+ "cpio"|"squashfs"|"ext2"|"ext3")
TYPE="${SNAP_TYPE}"
;;
"")