How can I extract the contents of a CRAMFS image file?
Extracting the contents of a CRAMFS image
To mount a CRAMFS image on a Linux workstation, you will need kernel support for the CRAMFS filesystem (CONFIG_CRAMFS; File systems -> Compressed ROM file system support) and loopback block devices (CONFIG_BLK_DEVICE_LOOP; Block devices -> loopback device support). The kernels for ADS embedded systems have CRAMFS support built-in; if you wish to avoid compiling a kernel, you can perform this process on your ADS board instead of a Linux PC.
To mount a CRAMFS image, use the command:
mount -o loop -t cramfs image_file /mount/point
Use 'tar' to copy the CRAMFS filesystem to a temporary directory:
cd /mount/point
tar -cf - . | tar -C /temporary/dir -xpf -
You will need to be 'root' to copy the files without losing the proper permissions.
Creating a new CRAMFS image
To create a CRAMFS image, you will need the 'mkcramfs' utility. Under Debian, you can install this program by running:
apt-get install mkcramfs
To create a CRAMFS image from a directory, run:
mkcramfs /temporary/dir new_image_file