Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
LoopDevice
Edit
PageHistory
Diff
Info
LikePages
Under some OperatingSystem~s (especially [Unix]-like ones), you can mount(8) a single file onto your VirtualFileSystem. There are several reasons why you might want to do this: * You have a cdrom [ISO] or other disk image, and want to access it * You want to have access to a particular filesystem type * You want to simulate a filesystem condition, such as low disk space, to test your software !!!Example under Linux This is what I did to make sure to test that my software failed gracefully when disk space ran out. ! 1. Create a file containing a filesystem <pre> ''create a 2 MB file with an ext2 filesystem'' $ dd if=/dev/zero of=/tmp/loop.fs bs=1M count=2 $ mke2fs -F /tmp/loop.fs </pre> ! 2. mount it as a loop back device (must be done as root) <pre> ''load the loop.ko kernel module if support is not compiled into the kernel'' # modprobe loop ''where I want it to be mounted'' # mount /tmp/loop.fs /mnt/directory -o loop </pre> Now /mnt/directory will only allow around 2MB (minus filesystem overhead) of data to be written to it, and then the device will be out of space. ! 3. Determining Partition Offsets If you're trying to mount a partition of a disk image that has been created via dd(1) or similar you will likely need to specify an offset to where the partition starts in the disk image. This offset can then be passed as an option to the mount command. The offset can be determined by using fdisk to find out which sector the partition starts on and then multiplying that number by the sector size (which is also helpfully printed by fdisk). See the example below: <verbatim> matt@argon:~/crcnet/ecn$ fdisk -u -l ecn-base.img You must set cylinders. You can do this from the extra functions menu. Disk ecn-base.img: 0 MB, 0 bytes 4 heads, 62 sectors/track, 0 cylinders, total 0 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System ecn-base.img1 62 250727 125333 83 Linux </verbatim> There is one partition, starting at sector 62 which equates to offset (62*512 = 31774) which can then be mounted like so: <verbatim> matt@argon:~/crcnet/ecn$ sudo mount -o loop,offset=31744 -t ext2 ecn-base.img img/ matt@argon:~/crcnet/ecn$ cd img/ matt@argon:~/crcnet/ecn/img$ ls bin dev lib packages root tmp var boot etc lost+found proc sbin usr var.tgz </verbatim> ---- CategoryDiskNotes
One page links to
LoopDevice
:
VirtualFileSystem