Create Linux Filesystem From An Ordinary File

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.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s