In Windows terms, you didn't just copy the c:
drive, you also copied all kinds of files that are not disk files but instead hardware devices, and you copied some files many times. Probably including the whole disk contents and a dump of the RAM several times over.
On Linux and other unix-like systems, almost everything is a file. In addition to regular files and directories, there are symbolic links (pointers to other files) and device files which represent hardware devices (disks, partitions, the RAM, serial ports, etc.). There are also special filesystems which are not stored on a disk, but let applications access data about the system: /proc
(procfs) and /sys
(sysfs).
Among the devices in /dev
, there are even infinite files — files that you can keep reading forever. There's /dev/zero
, which contains as many null bytes as you care to read from it. There's also /dev/urandom
, which contains as many random bytes as you care to read from it — so to get n random bytes, you read n bytes from /dev/urandom
.
If you used an FTP program to transfer the whole filesystem tree, it copied everything and was probably either copying the large amount of things that can be obtained from /proc
, or more likely the infinite amount of data from /dev
.
Further reading:
If you have some way to connect to the box other than FTP, for example an SSH command line, use that instead of FTP, which doesn't know about special files. Run the command df
to see what filesystems are present. You can make a backup of the root filesystem with the command
rsync -a -x root@settopbox:/ settopbox.backup
(Note the -x
option to tell the rsync program not to cross filesystems.)
The root filesystem might not be the interesting one to back up, some devices are set up with a read-only root filesystem and a different read-write filesystem containing settings. Post the output of the commands df
and mount
if you need help figuring out which one(s) to back up.
Alternatively, back up the flash memory itself. You'll have to find what the device name is. Try the following commands to look for block devices, i.e. devices that correspond to a disk or disk partition or other similar device:
find /dev -type b
ls -l /dev /dev/* | grep '^b'
If you aren't sure what the devices mean, post the output of these commands.
/dev/zero
for example by blindly reading from it will certainly be a problem! I should have included those in my three possible explanations! – Celada Sep 23 '12 at 20:38