Forwardporting and extending usage of rsync when booting with toram based on a patch...
authorDaniel Baumann <daniel@debian.org>
Mon, 26 Oct 2009 11:38:22 +0000 (12:38 +0100)
committerDaniel Baumann <daniel@debian.org>
Wed, 9 Mar 2011 16:48:06 +0000 (17:48 +0100)
debian/control
hooks/live
scripts/live

index 77516e2..8d96736 100644 (file)
@@ -13,7 +13,7 @@ Vcs-Git: git://live.debian.net/git/live-initramfs.git
 Package: live-initramfs
 Architecture: all
 Depends: ${misc:Depends}, busybox, file, initramfs-tools, sudo, udev, user-setup
-Recommends: cryptsetup, eject, uuid-runtime, wget
+Recommends: cryptsetup, eject, rsync, uuid-runtime, wget
 Suggests: loop-aes-utils, curlftpfs, genext2fs (>= 1.4.1), httpfs2, squashfs-tools, mtd-tools
 Description: Debian Live initramfs hook
  live-initramfs is a hook for the initramfs-tools, used to generate a initramfs
index d78da1e..a940846 100755 (executable)
@@ -100,6 +100,8 @@ manual_add_modules ext4
 # Filesystem: jffs2
 manual_add_modules jffs2
 
+copy_exec /usr/bin/rsync /bin
+
 # Filesystem: squashfs
 copy_exec /sbin/losetup /sbin
 manual_add_modules loop
index 1902429..0fa3900 100755 (executable)
@@ -673,7 +673,7 @@ copy_live_to ()
 
        # begin copying (or uncompressing)
        mkdir "${copyto}"
-       echo "mount -t ${fstype} ${mount_options} ${dev} ${copyto}"
+       log_begin_msg "mount -t ${fstype} ${mount_options} ${dev} ${copyto}"
        mount -t "${fstype}" ${mount_options} "${dev}" "${copyto}"
 
        if [ "${extension}" = "tgz" ]
@@ -686,10 +686,22 @@ copy_live_to ()
        else
                if [ -n "${MODULETORAMFILE}" ]
                then
-                       cp ${MODULETORAMFILE} ${copyto} # copy only the filesystem module
+                       if [ -x /bin/rsync ]
+                       then
+                               echo " * Copying $MODULETORAMFILE to RAM" 1>/dev/console
+                               rsync -a --progress ${MODULETORAMFILE} ${copyto} 1>/dev/console # copy only the filesystem module
+                       else
+                               cp ${MODULETORAMFILE} ${copyto} # copy only the filesystem module
+                       fi
                else
-                       mkdir -p ${copyto}/${LIVE_MEDIA_PATH}
-                       cp -a ${copyfrom}/${LIVE_MEDIA_PATH}/* ${copyto}/${LIVE_MEDIA_PATH}   # "cp -a" from busybox also copies hidden files
+                       if [ -x /bin/rsync ]
+                       then
+                               echo " * Copying whole medium to RAM" 1>/dev/console
+                               rsync -a --progress ${copyfrom}/* ${copyto} 1>/dev/console  # "cp -a" from busybox also copies hidden files
+                       else
+                               mkdir -p ${copyto}/${LIVE_MEDIA_PATH}
+                               cp -a ${copyfrom}/${LIVE_MEDIA_PATH}/* ${copyto}/${LIVE_MEDIA_PATH}   # "cp -a" from busybox also copies hidden files
+                       fi
                fi
 
                umount ${copyfrom}