I had come up with this "cursed technique" a while back at work, when I needed to transfer a ~1GB file onto a quite old Linux machine that, for "security reasons" had USB mass storage access as well as the UDF kernel drivers disabled (and I was unable to access it over the network).

I've adapted the exact command to be more suitable for general use:

sudo chgrp -v "$(id -g)" /dev/sr0 # or whatever
tar c\
  -ML716800\
  --format=posix\
  -f "${f=$(mktemp -t tar-XXXXXXX.iso)}"\
  -F 'cdrecord -eject "$TAR_ARCHIVE" && read -p "Insert CD #${TAR_VOLUME}, CLOSE THE TRAY, then press Enter:"'\
  $files
# Don't forget to run this afterwards
# to avoid leaving an 0.68G junk file laying around:
rm -v "$f" ; unset f

This will simply burn a tape-archive-formatted sequence of CD-Rs that can be extracted back onto most Unix systems with tar x -Mf "/dev/sr0". The files inside this archive may be a gigabyte or larger; it'll cause no problems. When extracting, tar will automatically prompt you to load the next "tape" when it reaches the end of a volume.

The flag -L716800 simply caps the archives at 716800KiB = 734003200 bytes = 700MiB (734MB)—the standard bare minimum that even the cheapest mass-market bulk vendor won't undershoot.

Leave a Reply

Your email address will not be published. Required fields are marked *

Warning: This site uses Akismet to filter spam. Until or unless I can find a suitable replacement anti-spam solution, this means that (per their indemnification document) all commenters' IP addresses will be sent to Automattic, Inc., who may choose to share such with 3rd parties.
If this is unacceptable to you, I highly recommend using an anonymous proxy or public Wi-Fi connection when commenting.