linux文件系统类型及mount

来源:互联网 发布:企业建站cms哪个好 编辑:程序博客网 时间:2024/06/06 08:33
1. 查看系统所支持的文件系统的方法
1.1 通过命令查看
   mount   df   fdisk   file   parted   fstab
1.2 通过系统文件查看 
   cat /proc/filesystems   ls /lib/modules/2.6.x/kernel/fs
      例如,
   # ls /lib/modules/3.2.0-24-generic-pae/kernel/fs/   9p       befs            cachefiles  cramfs  fat       hfs      jfs    nfs_common  ocfs2      reiserfs  udf   adfs     bfs             ceph        dlm     freevxfs  hfsplus  lockd  nfsd        omfs       romfs     ufs   affs     binfmt_aout.ko  cifs        efs     fscache   hpfs     minix  nilfs2      overlayfs  squashfs  xfs   afs      binfmt_misc.ko  coda        exofs   fuse      isofs    ncpfs  nls         qnx4       sysv   autofs4  btrfs           configfs    ext2    gfs2      jffs2    nfs    ntfs        quota      ubifs  
2. 查看当前系统mount支持的文件系统类型
  # cat /proc/filesystems                                                           nodev   sysfs                                                                     nodev   rootfs                                                                    nodev   bdev                                                                      nodev   proc                                                                      nodev   tmpfs                                                                     nodev   sockfs                                                                    nodev   usbfs                                                                     nodev   pipefs                                                                    nodev   devpts                                                                            ext2                                                                              ext3                                                                              ext4                                                                      nodev   ramfs                                                                             vfat                                                                      nodev   fuse                                                                              fuseblk                                                                   nodev   fusectl                                                                   nodev   mtd_inodefs  <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
  从上面可以看出,有些文件系统挂载(原则上,mount的对象是设备)时,是没有办法指定挂载设备的(nodev)。
  因此,系统中(尤其是嵌入式系统)会经常出现一些特殊的挂载,如:
   mount -t proc proc /proc
   (下面是系统为了支持hotplug的所需的挂载操作)
   mount -t tmpfs mdev /dev    mount -t sysfs sysfs /sys   mount -t devpts devpts /dev/pts
  而常规的挂载方式为:
   mount -t ntfs /dev/sdc1 /mnt/usbhd1<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">   </span>
3. 部分特殊文件系统的介绍   
3.1 tmpfs

  转自:http://zhidao.baidu.com/link?url=8Z_3ddhxqE6-CJ6PnW8pU9T4EcirtQfZyzzCIWbjesqF6oo5MLICxQ4wDR0gcGyzsz6eTDezlG45yZ5zKyDSDAfqFyosoqzCgzBbDEB78PK
  tmpfs is a common name for a temporary file storage facility on many Unix-like operating systems. It is intended to appear as a mounted file system, but stored in volatile memory instead of a persistent storage device.
  是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的Ramdisk,也不同于针对物理内存的Ramfs。Tmpfs可以使用物理内存,也可以使用交换分区。
  在Linux内核中,虚拟内存资源由物理内存(RAM)和交换分区组成,这些资源是由内核中的虚拟内存子系统来负责分配和管理。
  Tmpfs向虚拟内存子系统请求页来存储文件,它同Linux的其它请求页的部分一样,不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样,其大小也不是固定的,而是随着所需要的空间而动态的增减。
  使用tmpfs,首先你编译内核时得选择”虚拟内存文件系统支持(Virtual memory filesystem support)”。 
  然后就可以加载tmpfs文件系统了 
  # mkdir -p /mnt/tmpfs 
  # mount tmpfs /mnt/tmpfs -t tmpfs 
  同样可以在加载时指定tmpfs文件系统大小的最大限制  
  # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m   

3.2 sysfs
  转自:http://zhidao.baidu.com/link?url=6pd0ISlzAgRcHvrdsCZJwWom1yAuhdlCdlq3h6-rs1P_BQg8mLJsgepJHrqfykJB-t-F3CjZMBD-08FYwKaC6SdJiCANQ7ZDXzM-a9wxUV7
  Sysfs 是 Linux 2.6 所提供的一种虚拟文件系统。这个文件系统不仅可以把设备(devices)和驱动程序(drivers) 的信息从内核输出到 用户空间,也可以用来对设备和驱动程序做设置。
  Linux内核开发团队在 Linux 2.5 的开发过程中,引入了‘Linux 驱动程序模型’(Linux driver model),以解决 2.4 核心所遭遇的以下问题:
  没有统一的机制表达驱动程序和设备的关系。
  不存在一般的热插拔(hotplug)机制。
  procfs 文件系统过度混乱,包含了许多不是进程(process)的信息。
  sysfs 的目的是把一些原本在 procfs 中的,关于设备的部份,独立出来,以‘设备层次结构架构’(device tree)的形式呈现。这个文件系统由 Patrick Mochel 所写,稍后 Maneesh Soni 撰写 "sysfs backing store path",以降低在大型系统中对存储器的需求量。
  sysfs 一开始以 ramfs 为基础,也是一个只存在于存储器中的文件系统。ramfs 是在 2.4 核心处于稳定阶段时加入的。ramfs 是一个优雅的实做,证明了要在当时仍很新的 VFS (虚拟文件系统)(en:Virtual file system)下写一个简单的文件系统是多么容易的一件事。由于 ramfs 的简洁以及使用了 VFS,稍后的一些存储器形式的文件系统都以它作为开发基础。
  sysfs 刚开始被命名成 ddfs (Device Driver Filesystem),当初只是为了要对新的驱动程序模型除错而开发出来的。它在除错时,会把设备架构(device tree)的信息输出到 procfs 文件系统中。但在 Linus Torvalds 的急切督促下,ddfs 被转型成一个以 ramfs 为基础的文件系统。在新的驱动程序模型被集成进 2.5.1 核心时,ddfs 被改名成 driverfs,以更确切描述它的用途。
  在 2.5 核心开发的次年,新的“驱动程序模型”和 "driverfs" 证明了对核心中的其他子系统也有用处。kobjects 被开发出来,作为核心对象的中央管理机制,而此时 driverfs 也被改名成 sysfs。
  
3.3 devpts  
  一个虚拟的文件系统,一般安装在/dev/pts。为了得到一个虚拟终端,进程打开/dev/ptmx,然后就可使用虚拟终端。
  
3.4 proc
  proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。如果你察看文件 /proc/mounts (和 mount 命令一样列出所有已经加载的文件系统),你会看到其中 一行是这样的:                                                                                                                                                            
  grep proc /proc/mounts
  /proc /proc proc rw 0 0
  /proc 由内核控制,没有承载 /proc 的设备。 
  挂载命令为:mount -t proc proc /proc                                                                                                                                                                                                                                                                                                                                           
0 0
原创粉丝点击