linux 文件系统

来源:百度知道 编辑:UC知道 时间:2024/06/17 23:25:00
我刚接触linux半个月,一直有个疑惑
关于ext2/3文件系统的时候,很好理解,就是硬盘上每个分区(/dev/sda..)常用的,每个分区上会有superblock,inode table....
可是挂载某个目录的时候可以-t下跟很多文件系统,难道文件系统不是针对硬盘分区而言的吗?
那么我对某个目录挂载的时候也用ext3,难道硬盘上该目录下也会分成什么superblock,inode table,log,等“区域”??

看来我对文件系统理解不深,请高手帮助回答我的问题
不要复制粘贴,谢谢

挂载某个目录的时候可以-t下跟很多文件系统?
你这话是什么意思,指的是mount -t vfat /dev/sda1 /mnt/win
这样的挂载方式吗?
这是指将/dev/sda1挂载到/mnt下的win目录。
目录不过是一个我们可以明白的名称,但是真正挂载的,却是前面的/dev/sda1,这才是你真正挂载的东西,所谓的superblock,inode tabel,log等等,都在/dev/sda1上。

或许,你挂载的时候只用mount /mnt/win。那只是因为你在/etc/fstab里面把挂载源和文件类型都写在里面了。

文件系统,就是一个数据结构.挂载过程不会创建,但需要-t告诉下什么结构而已.现在的mount程序都不需要-t,直接可以自动识别的.
另外你可以直接把一个文件挂载成一个虚拟硬盘.
mkfs.ext3 /home/virtualdisk
mount -o loop /home/virtualdisk /mnt

-t是一个option,他的作用就是传递-t后的内容传递给命令内部作为参数执行罢了。它当然针对分区,如果把这个命令写全了,包含你提到的/dev/sdax这些内容,但是linux是可定制的,有些时候这些内容被简化了,如果你把/dev/sdax这些内容写道某些地方(比如默认的/etc/fstab中,那里写好superblock,inode等甚至包括-t参数的内容也可以放到这里,这样就不用你再用-t了),他会自动去搜索,并且把那些内容自动作为参数内容,使得挂载成功,但是总要给一个参数来说挂载什么啊,所以简化到最后就给一个挂载点目录作为参数就够了,剩下的参数去/etc/fstab中找。

确实不了解文件系统的,先看一下《操作系统》中的文件系统一节可能会对你有帮助,也可以先读一下FAT的实现原理,再看一下EXT2的原理。