/etc/fstab文件小解

在《关于磁盘分区的小脚本 》中提到了fstab文件,当时,仅仅分析了添加的内容(如下),今天需要进行仔细的分析一下该文件内容。

/dev/sda2   swap    swap    defaults  0 0
 /dev/sda3   /data   ext4    defaults  0 0

第一列: 为需要挂载的文件系统或存储设备

第二列: 挂载点

第三列:文件系统 或分区类型

第四列:挂载选项  

                      auto: 系统自动挂载,fstab默认就是这个选项
                      ro: read-only
                      rw: read-write
                      defaults: rw, suid, dev, exec, auto, nouser, and async

第五列:为dump选项,是否让dump备份文件系统   0:忽略 1:备份

第六列:为fsck选项,告诉fsck程序已什么顺序检查文件系统,0:忽略


fstab文件的全部内容如下:

linux系统启动的时候通过fstab中信息挂载各个分区,

在该文件中每一列的意义相同,但是为啥第一列为UUID呢,其实每个分区都有一个唯一的ID 即UUID,为了安全最后使用UUID进行挂载,而不是使用第二行中/dev/sda5分区进行挂载,因为在 添加一块硬盘后,可能,分区名和真正的分区对应不上,这可能会数据的覆盖,导致数据丢失,而使用UUID将避免了该类问题。

那么如何获取到分区的UUID呢?

 1.  ls -l /dev/disk/by-uuid/


 2.  blkid /dev/sda3





 在fstab中存在着多个文件系统,下面就简单的了解一下吧,省得以后见了面不认识。


tmpfs

         tmpfs是基于内存的文件系统,美名其曰虚拟内存文件系统,即存储于VM中。

        VM = RM + SWAP   tmpfs默认大小为 RM的一半, 为动态分配的,如:若/dev/shm下没有文件,则大小为0 ,若有100M的文件,剩余空间还是可以被VM 分配给其他应用程序使用的。

         tmpfs的用途:为了进行告诉的操作,linux将程序的临时文件放置到tmpfs中,利用其高速性来提高性能。

         修改tmpfs大小的方法

            一: 修改/etc/fstab文件,如:

               tmpfs /dev/shm tmpfs defaults,size=600M 0 0

             二:临时修改,

                 mount -t tmpfs -o size= 600M tmpfs  /dev/shm

         tmpfs的优势总结为:1.动态文件系统大小   2.速度快  3. 重启后不会保留


sysfs

          sysfs基于内存的文件系统, 作用:将内核信息以文件的方式提供给用户程序使用。该文件系统的目录层次结构严格按照内核的数据结构组织。除了二进制文件外(只有特殊场合才使用),sysfs文件内容均以ASCII格式保存,且一个文件只保存一个数据,另外,一个文件不可大于一个内存页(通常为4096字节)。


待学习。。。

       

proc文件系统

         /proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。

           基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点。例如,其中有些文件虽然使用查看命令查看时会返回大量信息,但文件本身的大小却会显示为0字节。此外,这些特殊文件中大多数文件的时间及日期属性通常为当前系统时间和日期,这跟它们随时会被刷新(存储于RAM中)有关。

           为了查看及使用上的方便,这些文件通常会按照相关性进行分类存储于不同的目录甚至子目录中,如/proc/scsi目录中存储的就是当前系统上所有SCSI设备的相关信息,/proc/N中存储的则是系统当前正在运行的进程的相关信息,其中N为正在运行的进程(可以想象得到,在某进程结束后其相关目录则会消失)。


devpts系统

       为伪终端设备提供了接口。何为伪终端??

      伪终端(Pseudo Terminal)是成对的逻辑终端设备,例如/dev/ptyp3和/dev/ttyp3(或着在设备文件系统中分别是/dev/pty/m3和/dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ttyp3看作是一个串行端口设备,则它对该端口的读/写操作会反映在该逻辑终端设备对的另一个上面(ttyp3)。而ttyp3则是另一个程序用于读写操作的逻辑设备。这样,两个程序就可以通过这种逻辑设备进行互相交流,而其中一个使用ttyp3的程序则认为自己正在与一个串行端口进行通信。这很象是逻辑设备对之间的管道操作。对于ttyp3(s3),任何设计成使用一个串行端口设备的程序都可以使用该逻辑设备。但对于使用ptyp3的程序,则需要专门设计来使用ptyp3(m3)逻辑设备。例如,如果某人在网上使用telnet程序连接到你的计算机上,则telnet程序就可能会开始连接到设备ptyp2(m2)上(一个伪终端端口上)。此时一个getty程序就应该运行在对应的ttyp2(s2)端口上。当telnet从远端获取了一个字符时,该字符就会通过m2、s2传递给getty程序,而getty程序就会通过s2、m2和telnet程序往网络上返回”login:”字符串信息。这样,登录程序与telnet程序就通过“伪终端”进行通信。通过使用适当的软件,就可以把两个甚至多个伪终端设备连接到同一个物理串行端口上。在使用设备文件系统(device filesystem)之前,为了得到大量的伪终端设备特殊文件,HP-UX AIX等使用了比较复杂的文件名命名方式。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章