atconsultancy logo
cowloop logo
atcomputing logo




small @ logoFAQ Logo


Frequently Asked Questions

Why is it impossible to use a read-only filesystem like squashfs or iso9660 in a read-write fashion, even when using the cowloop driver?

In order to support any particular type of filesystem, a filesystem-specific module is operational in the filesystem layer in the kernel. This module knows how to mount a filesystem of that type, how to open and access a file in a filesystem of that type, etc. For accesses on the actual filesystem storage, read and write requests are issued from this filesystem-specific module to the actual block driver below. Note that a UNIX block driver has no knowledge of files whatsoever; it just transports blocks from and to the storage medium as commanded by "the higher kernel powers" (i.e. the file-system specific modules).

When a filesystem-specific module in the filesystem layer is designed to access filesystems in a read-only fashion, it will never issue a write request to the block driver below, even if that block driver offers an interface to do so.

read only file system

Thus even with the cowloop driver, it is not possible to write to e.g. a squashfs or iso9660 filesystem.

A possible workaround is to store one large file containing another (writeable) filesystem type in that read-only filesystem. When the read-only filesystem is mounted the ordinary way, the file containing the writable filesystem becomes accessible. That file can then be activated as cowdevice via the cowloop driver, and be mounted as a read-write filesystem (similar to example 2).




spacerLoad & unload



spacerStatus info

spacerExample 1

spacerExample 2

spacerExample 3

spacerCowloop vs.
   device mapper

spacerView as single page

© AT Consultancy bv, Nijmegen, The Netherlands  -
© AT Computing bv, Nijmegen, The Netherlands  - -