Re: "dd" collapsed the loop device

Andreas Dilger (adilger@turbolabs.com)
Mon, 14 Jan 2002 11:18:43 -0700


On Jan 14, 2002 12:54 -0500, Michael Zhu wrote:
> Hello,everyone,I have a problem when I used the loop
> device. I don't know whether is a loop device bug.

User bug.

> I used the following commands to connect the loop device
> with the floppy disk device.
>
> losetup -e xor /dev/loop0 /dev/fd0
> mke2fs /dev/loop0
> mount /dev/loop0 /floppy
>
> Then I copy something to the floppy and read it back.
> Everything is OK. It works perfectly.

Great.

> The problem was happened when I try to copy something
> directly from the /dev/fd0. I use the following
> demand.
>
> dd if=test.c of=/dev/fd0
>
> The output of the upper command is:
> 50+1 records in
> 50+1 records out
>
> Then I used the "ls /floppy". I found nothing copied
> to the floppy.

Well, this is wrong for several reasons:
1) don't access /dev/fd0 when you use it via loopback, use /dev/loop0
2) don't use "dd" to copy a file, use "cp"
3) don't write into the device, but the filesystem instead:
cp test.c /floppy

> Then I used "umount /floppy" to umount the floppy disk
> device. After that I used the following command to try
> to mount the floppy disk again.
>
> mount /dev/loop0 /floppy
>
> It returned an error. Say:
>
> mount: wrong fs type. bad option. bad superblock on
> /dev/loop0. or too many mounted file systems
>
> It seemed that the "dd if=test.c of=/dev/fd0"
> corrupted the data on the floppy disk. What is wrong?

Because test.c is not a filesystem, and you have overwritten
the filesystem on /dev/fd0 with junk. This is not a bug
in the loop driver.

Cheers, Andreas

--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://www-mddsp.enel.ucalgary.ca/People/adilger/

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/