mkfs格式化命令的疑惑

linux_arm
mkfs格式化命令的疑惑

我在网上经常可以看到这样的操作

dd if=/dev/zero of=<filename> count=<blocks>
mkfs.ext2 <filename>
mount -t ext2 -o loop <filename> /mnt

这样就可以访问<filename>文件中的内容了,mkfs.ext2不是用来格式化一个磁盘的吗?比如

mkfs.ext2 /dev/sda2

但是它怎么可以格式化一个文件呢?这个文件所在的磁盘格式会被改变吗?

qqeyes
man mkfs

-l filename
              Read the bad blocks list from filename

linux_arm
还是不明白?可否再解释一下?

qqeyes
从指定的文件中,读取文件系统中损坏区块的信息

linux_arm
但是我看 mkfs.ext2 <filename> 这个操作好像是将 “filename” 文件格式化为ext2格式!

biguy
楼主:“mkfs.ext2 <filename>”命令中,<filename>其实对映的应是/dev/下面的硬盘设备名称,比如。sda,sdb,hdc之类的,这样才能利用mkfs.ext2格式化文件系统,所以说这个命令格式化的不是文件本身,[u]而是该文件设备名称对应的物理硬碟设备[/u]

[[i] 本帖最后由 biguy 于 2008-6-10 11:46 编辑 [/i]]

linux_arm
但是你看第一条命令
dd if=/dev/zero of=<filename> count=<blocks>

它是用dd的方式产生了一个文件啊!

jerrywjl
[quote]
dd if=/dev/zero of=<filename> count=<blocks>
mkfs.ext2 <filename>
mount -t ext2 -o loop <filename> /mnt
[/quote]
第一条命令是建立了一个固定大小的块设备,而第二条命令是给这个块设备建立文件系统。
文件系统建立成功之后就可以挂载。

linux_arm
[quote]原帖由 [i]jerrywjl[/i] 于 2008-6-10 12:17 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6609517&ptid=1010070][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]

第一条命令是建立了一个固定大小的块设备,而第二条命令是给这个块设备建立文件系统。
文件系统建立成功之后就可以挂载。 [/quote]

您这里所说的块设备应该是一个文件块吧?

我的理解是第一个命令建立一个文件,这个文件是一个全0的数据块(不知道和touch建立的文件有何区别?)

第二个命令把这个文件的数据组织结构变换为Ext2形式的

第三条命令是用loop设备把这个文件块当作一个块设备来挂载

不知道理解是否正确?

biguy
楼主为什么要dd呢? 直接mkfs不行么

jerrywjl
可以这么理解,不过你应该读读dd的man手册。
dd是一个逐个数据块读取的工具。更准确的说dd所创建出来的是一个块设备,这就是和touch的不同。

可可火山
大家讨论的东西是 linux 内的一种file system.
loopback filesystem,这是个virtual file system.

check following link for more information:
[url]http://freshmeat.net/articles/view/1387/[/url]

光盘挂载也加 -o loop,所以光盘的文件系统类似?

linux_arm
可可火山指出了问题的本质,谢谢您!:em02:

Magicloud
[quote]原帖由 [i]可可火山[/i] 于 2008-6-10 13:00 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6609569&ptid=1010070][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]
大家讨论的东西是 linux 内的一种file system.
loopback filesystem,这是个virtual file system.

check following link for more information:
[url]http://freshmeat.net/articles/view/1387/[/url]

光盘挂载也加 ... [/quote]
正解,楼上楼下都是典型的回帖不看贴。

[[i] 本帖最后由 Magicloud 于 2008-6-11 11:16 编辑 [/i]]

普金
linux里面的磁盘就是文件,都一样可以格式化

lFANS
-l filename
              Read  the bad blocks list from filename.  Note that the block numbers in the bad block list must be gen-
              erated using the same block size as used by mke2fs.  As a result, the -c option to mke2fs is a much sim-
              pler  and less error-prone method of checking a disk for bad blocks before formatting it, as mke2fs will
              automatically pass the correct parameters to the badblocks program.

李某人
linux下一切都是文件啊,设备当然也是文件了!!!

xhb8413
不明白。。
要生成设备文件的话,也不是用dd啊。。。

火鸡
*NIX下的所有东西都是文件。设备也是文件。

火鸡
dd 生成的是文件,设备是内核认出来,然后挂到一个符号上面,那个符号一般在 /dev/ 下,用mknod生成。