Create Linux Loopback File System On Disk File
Can you create a Linux file system without using partition DIRECTLY – sort of file system within file system management?The answer is certainly YES!
With a loopback device in Linux (a feature that’s not natively available in Windows Vista and its predecessors) one can easily create a Linux loopback file system on a regular disk file, and not directly using a disk partition!
To complete this Linux tricks, you need to login with a root user ID for all the steps given below
- Type
dd if=/dev/zero of=/virtualfs bs=1024 count=30720to create a 30MB disk file (zero-filled) called virtualfs in the root (/) directory
- Type
losetup /dev/loop0to confirm that the current system is not using any loopback devices. Replace /dev/loop0 with /dev/loop1, /dev/loop2, etc, until a free Linux loopback device is found. In this case, let’s assume that /dev/loop0 is free for usage
- Tpye
losetup /dev/loop0 /virtualfsto attach the first Linux loopback device (/dev/loop0) with regular disk file (/virtualfs) created in step 1
- Type
echo $?to confirm the previous step is completed successfully without error – a zero will be returned to indicate success. Alternative, typelosetup /dev/loop0to confirm
- Type
mkfs -t ext3 -m 1 -v /dev/loop0to create a Linux EXT3 file system with 1% reserved block count on the loopback device that’s currently associated with a regular disk file. Hence, we are creating a file system within file system, or creating a file system (mkfs) without using a disk partition directly
- Type
mkdir /mnt/vfsto create a directory (as mount point) in /mnt
- Type
mount -t ext3 /dev/loop0 /mnt/vfsto mount the loopback device (regular disk file) to /mnt/vfs as a “regular” Linux EXT3 file system! Now, all the Linux file system-related commands can be act on this unusual Linux file system. For example, you can typedf -hto confirm its “disk usage”, typetune2fs -l /dev/loop0to print its file system settings, create / remove files or directories, etc.
- To un-mount the loopback file system, type
umount /mnt/vfsfollow withlosetup -d /dev/loop0to effectively remove the loopback file system and release loopback device subsequently.
Custom Search







2010 •
That’s a good tip !
It is really helpful but I notice that there is a fastest way to find the first unused Linux loopback device :
losetup -f
Hi Guillaume, thank you for reminding me this command option.
Good work!
[...] useful; some readers also really kind to share more info on the topic that I’ve made – e.g. Guillaume, Johnny, Brian, CityShaman, Mroids…(Thank you!) However, the no-so-good WalkerNews.net [...]
[...] build in loopback device that allows user to easily mount and access CD image files. No complicated installation or [...]
Is it possible to do the same in Windows XP or Vista ? and how ?
Anyone know why sometimes, even after a umount of the mounted file, losetup -d /dev/loop returns “LOOP_CLR_FD: Device or resource busy” ?
Just to avoid any confusion, my loop device is 2, I just typo’d above. /dev/loop2.
how can i retain the data in my loopback files even after reboot?
I don’t think the data in loopback file will lost after reboot, unless you’ve recreated the loopback file (especial step 1 to step 6) after a reboot.
where is the data of loopback files stored after reboot..??
is it in some image file?
All that losetup junk is wholly unnecessary.
Just do:
mount -o loop myimage.img /mnt/whateverThe loopback device is automagically handled.
how do you create a disk file.
Actually i found the losetup junk very useful :)
I didn’t go too much into the file systems specifics however I needed to mount an ext4 partition clone (created with partclone) and if the partition was being restored as a plain image file on hdd the automagic of the loopback device wouldn’t work on that file.
However, if I would restore the partition clone on a loopback device created as shown above by Walker, I could then mount it and restore access to my precious files :)
Thank you, Walker! This was a really useful tip for me
This is awesome! Thanks!
I have trouble visualizing what a loopback actually is and why it’s called that. I’m very new to linux and have trouble picturing this idea in my mind.
In electronics, the term loopback is generally used to describe methods of routing electronic signals or digital data streams, from their originating device quickly back to the same source without processing or modification.
In Unix-like operating systems, a loop device, is a pseudo-device that makes a file accessible as a block device. Block devices correspond to devices through which the system moves data in the form of blocks. These device nodes often represent addressable devices such as CD-ROM drives.
The two concepts are similar, so it was not a big stretch of the imagination for Linux to also use the term loopback originally used in electronics.
That’s a great explanation, toro -
In order to picture it in your mind, paul, the situation is fairly analogous to owning a large, old house.
You decide that the entire house is too large and, considering modern lifestyles, you can reduce the amount of house needed to make a home. (Or for whatever reason.)
You begin segregating one side of the house from the other (closing off doors, rerouting HVAC and electrical, water, sewer, etc.) until you have created a duplex. Each side of the house has its own utilities, entrances, parking, etc. allowing the former entire house to now function as two complete houses.
Using a loopback filesystem, you segregate off a portion of your original filesystem so that you wind up with two (or more) filesystems available on your one physical hard drive. No extra room is created – the original hard drive still has the same overall capacity – but the essential functionality of a file storage system is now doubled.
I hope this helps!
/David C.
Scooter wrote:
“Anyone know why sometimes, even after a umount of the mounted file, losetup -d /dev/loop returns “LOOP_CLR_FD: Device or resource busy” ?”
Someone or some process has a file open on the device . . .
Mastaus wrote:
“Is it possible to do the same in Windows XP or Vista ? and how ?”
Yes it is possible. Right-click your My Computer (or simply Computer in Vista/W7) icon and choose Manage from the pop-up menu.
Go to Storage -> Disk Management where you can do all kinds of scary things to your disks, including creating a new partition. Right-click the (C:) portion of Disk 0 and choose to Shrink Volume. Once that process has completed (first you have to make some decisions, etc.), right-click the newly vacated space and choose to create a new partition. The system will assign a drive letter and you can now use it by accessing that drive letter in Windows Explorer. Otherwise, it’s just like using a loop-back file system on Linux.
I hope this helps -
/David C.