Under Linux, you can create a regular file, format it as an ext2, ext3, or reiser file system, and then mount it just like a physical drive. It’s then possible to read and write files to this newly-mounted device. You can also copy the complete file system, since it is just a file, to another computer.
First, you want to create a 20MB file or any size you want by executing the following command:
$ dd if=/dev/zero of=disk-image count=40960
40960+0 records in
40960+0 records out
Next, to format this as an ext3 filesystem, you just execute the following command:
$ /sbin/mkfs -t ext3 -q disk-image
mke2fs 1.32 (09-Nov-2002)
disk-image is not a block special device.
Proceed anyway? (y,n) y
You are asked whether to proceed because this is a file, and not a block device. That is OK.
Next, you need to create a directory that will serve as a mount point for the loopback device.
$ mkdir fs
You must do the next command as root, or with an account that has superuser privileges.
# mount -o loop=/dev/loop0 disk-image fs
You can now create new files, write to them, read them, and do everything you normally would do on a disk drive. To make normal user to use this filesystem you need to give valid permission to the directory holding this filesystem.