On Mon, Jul 10, 2017 at 01:30:36PM -0500, Tim Chase wrote:
> On 2017-07-05 21:38, Jason wrote:
> > > - create a file such as "mail.img" on your FAT partition, format
> > > it as something smarter (e.g. ext{2,3,4}, UFS or ZFS), and mount
> > > it as a loop-back/memory-disk, to which you can then use rsync to
> > > that loopback device. This allows for actual sym-links and
> > > hard-links which rsync can use for deduplication (using the
> > > --link-dest option[1])
> >
> > An interesting suggestion but a little above my head, I fear.
>
> The specifics would be OS-dependent, but the general gist would be
> something like the following:
>
> 1) make a DOS-friendly-named "mail.img" file to act as a virtual disk.
> I'm specifying 100MB here, but choose a value appropriate for you
>
> $ MAILIMG=/mnt/fatusb/mail.img
> $ MOUNTPOINT=/mnt/mailbackup/
> $ mkdir -p ${MOUNTPOINT}
> $ truncate -s 100MB ${MAILIMG}
>
> 2) make a filesystem on it and get the system to recognize it as a
> device. On Linux, that might looks something like:
>
> $ /sbin/mkfs.ext4 ${MAILIMG}
> # DEVICE=/dev/loop0
> # losetup ${DEVICE} disk.img
>
> On FreeBSD for UFS, you'd create a memory disk and format it:
>
> $ su -
> # MD_IDX=0
> # mdconfig -f ${MAILIMG} -u ${MD_IDX} # create md${MD_IDX}
> # gpart create -s gpt md${MD_IDX} # set up GPT partitioning
> # gpart add -t freebsd-ufs md${MD_IDX} # create a partition in that
> # DEVICE=/dev/md${MD_IDX}p1
> # newfs ${DEVICE} # format it with UFS
>
> 3) mount the loopback/memory-disk device someplace:
>
> # mount ${DEVICE} ${MOUNTPOINT}
>
> 4) use the device mount-point for your backup, such as
>
> $ rsync -avr ~/Mail/ ${MOUNTPOINT}
>
> 5) unmount it:
>
> # umount ${DEVICE}
>
> 6) destroy the loopback device:
>
> On Linux:
> # losetup -d ${DEVICE}
>
> On FreeBSD:
> # mdconfig -d -u ${MD_IDX}
>
>
> Once you have the disk-image file, you can skip the
> partitioning/formatting commands (gpart/mkfs.ext4/newfs) and just
> create the device (losetup/mdconfig), mount, use, unmount, and
> destroy the device. Linux's mount(1) even knows about loop-back
> devices so you can just create/mount in one step, and
> unmount/destroy in one step:
>
> # mount -o loop ${MAILIMG} ${MOUNTPOINT}
> use the disk
> # umount ${MOUNTPOINT}
Intriguing, I might need to try this sometime. Nice to know of this
option; it might come in useful someday.
>
> There may be a simpler way of doing it on FreeBSD, but I just use the
> mdconfig/mount/use/umount/mdconfig-d sequence and it Works For Me(tm)
>
> You might also be able to use some nice ZFS functionality if it was
> available, but that is a little more convoluted (importing/exporting
> pools in particular).
>
> Sorry if that's more complicated/convoluted than you want, but it
> does give you "full Unix-like filesystem functionality on a
> DOS-formatted USB drive".
>
> -tkc
>
>
Thanks!
--
Jason