There are still ways of working round that sort of problem. For
example, you can copy an entire device using dd to capture boot
segments and partition layout, inspect and recreate the filesystems
using mkfs, then use [something] to copy files one at a time into the
new filesystems taking care that some bootloaders need a wakeup call
when a file moves.
As far as "something" is concerned:
dd: Sector-by-sector copy between devices and files.
tar: Good ol' archiver, with directory-exclude etc. options.
netpipes: Do a tar or dd over the LAN.
rsync: File-by-file copy over LAN.
rdist: Ditto, less well-known but with some good points.