emulate an end-of-media

Martin Laabs martin.laabs at mailbox.tu-dresden.de
Mon Feb 25 12:36:25 UTC 2008


Hi,

I'll write a script that back up my data on dvd-r and dvd-rams.
(And some incremental backups also at some internet storage
services.)
Therefore I'd like to use dump. It is not too  hard to create
dump-volumes with fixed size through the -B option. But now
I'd like to use some sort of compression. (bzip2 seems far to be
to slow. Maybe I'll use gzip or compress)
However - with compression I can't use the -B switch of dump
because I can't be sure about the compression ratio. This means
I have to use the '-a' switch. With that switch enabled, dump
starts a new volume after it detects an EOM signal.

Because dump itself does not support compression I have to
build a pipe like that:
dump -aL0 -f - /MYFILESYSTEM|compress -c|aespipe ...|cdrecord dev=... -

This obvisouly does not work. I tried to wrote a script that
close the pipe after the amount of compressed data reached
4.6GB. But if I close the pipe in that script dump aborts
(because of the broken pipe) at all instead of just starting
a new volume.

What I'd need is a magaic pipe device that converts a ordenary
close at the one side to an EOM at the other.
Then I could do something like this:

dump -aL0 -f /dev/MyMagicDevice &
dd if=/dev/MyMagicDevice bs=1M count=4600|./compress -c|cdrecord dev=... -

Before I try to write a kernel module that will do the
job (I never wrote a freebsd kernel module before but
I think it is some fun to learn that.) I want to ask if
anyone see another solution for that problem. (Maybe
patching dump - but I don't want to fudge in the CORE
source.)

Thank you in advance,
  Martin L.

PS: Splitting up the huge (maybe compressed) dump file (also in
stream operation) is not a good idea beacause I'd need to insert
all the media - even if I resore only a single file.


More information about the freebsd-hackers mailing list