diff options
author | Daniel Baumann <daniel@debian.org> | 2009-02-08 01:03:17 +0100 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2011-03-09 17:48:04 +0100 |
commit | 5311dd3d93b6e721f5f68a012c2e7142fd76aef4 (patch) | |
tree | de8166400f10479da8752a6b61ae01a7bdedbbbb | |
parent | bccf32bcd498d3127837ccaaf1cd3e509188360f (diff) | |
download | live-boot-5311dd3d93b6e721f5f68a012c2e7142fd76aef4.tar.gz live-boot-5311dd3d93b6e721f5f68a012c2e7142fd76aef4.zip |
Adding ext4 support.
-rwxr-xr-x | bin/live-snapshot | 19 | ||||
-rwxr-xr-x | hooks/live | 3 | ||||
-rw-r--r-- | manpages/live-snapshot.en.1.txt | 2 | ||||
-rwxr-xr-x | scripts/live | 18 | ||||
-rw-r--r-- | scripts/live-helpers | 2 |
5 files changed, 28 insertions, 16 deletions
diff --git a/bin/live-snapshot b/bin/live-snapshot index 3d4efad..d942c90 100755 --- a/bin/live-snapshot +++ b/bin/live-snapshot @@ -99,7 +99,7 @@ Help () echo " -o, --output: output image file (default: ${DEST})." echo " -r, --resync-string: internally used to resync previous made snapshots." echo " -f, --refresh: try to sync a running snapshot." - echo " -t, --type: snapshot filesystem type. Options: \"squashfs\", \"ext2\", \"ext3\", \"jffs2\" or \"cpio\".gz archive (default: ${SNAP_TYPE})" + echo " -t, --type: snapshot filesystem type. Options: \"squashfs\", \"ext2\", \"ext3\", \"ext4\", \"jffs2\" or \"cpio\".gz archive (default: ${SNAP_TYPE})" echo echo "Look at live-snapshot(1) man page for more information." @@ -257,6 +257,11 @@ Defaults () ""|*.ext2|*.ext3) SNAP_TYPE="ext2" ;; + + *.ext4) + SNAP_TYPE="ext4" + ;; + *) Error "unrecognized resync string" ;; @@ -276,6 +281,10 @@ Defaults () ext3) DEST="${MOUNTP}/live-sn.ext2" ;; + + ext4) + DEST="${MOUNTP}/live-sn.ext4" + ;; esac else DEST="${SNAP_OUTPUT}" @@ -285,7 +294,7 @@ Defaults () Validate_input () { case "${SNAP_TYPE}" in - cpio|squashfs|jffs2|ext2|ext3) + cpio|squashfs|jffs2|ext2|ext3|ext4) ;; *) @@ -427,9 +436,9 @@ Do_snapshot () cd "${OLDPWD}" ;; - # ext2|ext3 and jffs2 does not easily support an exclude list; files + # ext2|ext3|ext4 and jffs2 does not easily support an exclude list; files # should be copied to another directory in order to filter content - ext2|ext3) + ext2|ext3|ext4) DU_DIM="$(du -ks ${SNAP_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-percentage=0 --root="${SNAP_COW}" "${DEST}" @@ -462,7 +471,7 @@ Warn_user () if [ -z "${SNAP_RESYNC_STRING}" ] then case ${SNAP_TYPE} in - cpio|ext2|ext3) + cpio|ext2|ext3|ext4) echo "Please move ${DEST} (if is not already in it)" > /dev/null 1>&2 echo "in a supported writable partition (e.g ext3, vfat)." > /dev/null 1>&2 ;; @@ -80,8 +80,9 @@ then manual_add_modules cifs fi -# Filesystem: ext3 +# Filesystem: ext3/ext4 manual_add_modules ext3 +manual_add_modules ext4 # Filesystem: jffs2 manual_add_modules jffs2 diff --git a/manpages/live-snapshot.en.1.txt b/manpages/live-snapshot.en.1.txt index e2c6241..4ead532 100644 --- a/manpages/live-snapshot.en.1.txt +++ b/manpages/live-snapshot.en.1.txt @@ -63,7 +63,7 @@ power-off. -t, --type **TYPE**:: -Type could be one of "cpio", "squashfs", "ext2", "ext3" or "jffs2". +Type could be one of "cpio", "squashfs", "ext2", "ext3", "ext4", or "jffs2". -h, --help:: diff --git a/scripts/live b/scripts/live index bf90781..df104ef 100755 --- a/scripts/live +++ b/scripts/live @@ -502,7 +502,7 @@ is_live_path () if [ -d "${DIRECTORY}"/"${LIVE_MEDIA_PATH}" ] then - for FILESYSTEM in squashfs ext2 ext3 xfs dir jffs2 + for FILESYSTEM in squashfs ext2 ext3 ext4 xfs dir jffs2 do if [ "$(echo ${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM})" != "${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM}" ] then @@ -542,7 +542,7 @@ matches_uuid () get_backing_device () { case "${1}" in - *.squashfs|*.ext2|*.ext3|*.jffs2) + *.squashfs|*.ext2|*.ext3|*.ext4|*.jffs2) echo $(setup_loop "${1}" "loop" "/sys/block/loop*" '0' "${LIVE_MEDIA_ENCRYPTION}" "${2}") ;; @@ -579,6 +579,7 @@ mount_images_in_directory () if match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.squashfs" || match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext2" || match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext3" || + match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext4" || match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.jffs2" || match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.dir" then @@ -919,7 +920,7 @@ find_snap () if [ "${PERSISTENT}" != "nofiles" ] then # search for image files - snapdata=$(find_files "${snap_label}.squashfs ${snap_label}.cpio.gz ${snap_label}.ext2 ${snap_label}.ext3 ${snap_label}.jffs2") + snapdata=$(find_files "${snap_label}.squashfs ${snap_label}.cpio.gz ${snap_label}.ext2 ${snap_label}.ext3 ${snal_label}.ext4 ${snap_label}.jffs2") fi if [ -z "${snapdata}" ] @@ -951,9 +952,9 @@ try_snap () break fi - if echo "${snapfile}" | grep -qs '\(squashfs\|ext2\|ext3\|jffs2\)' + if echo "${snapfile}" | grep -qs '\(squashfs\|ext2\|ext3\|ext4\|jffs2\)' then - # squashfs, jffs2 or ext2/ext3 snapshot + # squashfs, jffs2 or ext2/ext3/ext4 snapshot dev=$(get_backing_device "${snapback}/${snapfile}") do_snap_copy "${dev}" "${snap_mount}" "${snap_type}" @@ -1058,7 +1059,7 @@ setup_unionfs () done else # ${MODULE}.module does not exist, create a list of images - for FILESYSTEM in squashfs ext2 ext3 xfs jffs2 dir + for FILESYSTEM in squashfs ext2 ext3 ext4 xfs jffs2 dir do for IMAGE in "${image_directory}"/*."${FILESYSTEM}" do @@ -1071,7 +1072,7 @@ setup_unionfs () if [ -n "${addimage_directory}" ] && [ -d "${addimage_directory}" ] then - for FILESYSTEM in squashfs ext2 ext3 xfs jffs2 dir + for FILESYSTEM in squashfs ext2 ext3 ext4 xfs jffs2 dir do for IMAGE in "${addimage_directory}"/*."${FILESYSTEM}" do @@ -1195,7 +1196,7 @@ setup_unionfs () root_snapdata=$(find_snap "${root_snapshot_label}" "${blacklistdev}") # This second type should be removed when snapshot will get smarter, # hence when "/etc/live-snapshot*list" will be supported also by - # ext2|ext3|jffs2 snapshot types. + # ext2|ext3|ext4|jffs2 snapshot types. home_snapdata=$(find_snap "${home_snapshot_label}" "${blacklistdev}") if [ -b "${cowprobe}" ] @@ -1427,6 +1428,7 @@ find_livefs () elif [ "${fstype}" = "squashfs" -o \ "${fstype}" = "ext2" -o \ "${fstype}" = "ext3" -o \ + "${fstype}" = "ext4" -o \ "${fstype}" = "jffs2" ] then # This is an ugly hack situation, the block device has diff --git a/scripts/live-helpers b/scripts/live-helpers index 8970834..70897d6 100644 --- a/scripts/live-helpers +++ b/scripts/live-helpers @@ -332,7 +332,7 @@ find_cow_device () fi case "$(get_fstype ${devname})" in - vfat|ext2|ext3|jffs2) + vfat|ext2|ext3|ext4|jffs2) mkdir -p "${cow_backing}" if ! try_mount "${devname}" "${cow_backing}" "rw" then |