Linux根文件系统详解

FHS

FHS,Filesystem Hierarchy Standard(文件系统目录标准),多数Linux版本采用这种文件组织形式。FHS的重点在于规范每个特定的目录下应该要放置什么样的数据。

根目录的意义及内容

根目录是整个系统最重要的一个目录,所有的目录都是由根目录衍生而来,同时根目录也与开机/还原/系统修复的动作有关。由于系统开机时需要特定的开机软件,核心文件,开机所需程序,函数库等等文件数据,若系统出现错误时,根目录也必须含有能够修复文件系统的程序。

因此FHS标准建议:根目录所在的分区槽应该越小越好,如此不但效能较佳,根目录所在的文件系统也不容易发生问题。

综上,FHS建议根目录下必须有这些文件才好,即使没有实体目录,也应该至少有连结档。

FHS建议必须要存在的目录:

/bin:

系统有很多放置执行文件的目录,但/bin比较特殊。/bin放置的是在单人维护模式下还能够被操作的指令。在/bin下的指令可以被root与一般用户所使用,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash。

/boot:

这个目录下主要是放置一些开机时所需要的文件,包括Linux核心文件以及开机选单与开机所需配置文件等。**Linux kernel常用的文档名是:vmlinuz。如果使用的是grub2这个开机程序,还会存在grub目录。

/dev:

在Linux系统中,一切皆文件。任何装置与接口设备都是以文件的形式存在于这个目录当中的。
设备文件可以简单的分为块设备和字符设备两种。

  • 块设备:有缓冲随机存取。如磁盘,硬盘。
  • 字符设备:无缓冲完成线性存取。如鼠标,显示屏。。

我们可以看到第5列,以前我们会认为它是文件所占空间的大小,但对于这些设备文件,这两个数字代表设备号,第一个是主设备号,第二个是次设备号,在此不深究。

在这个目录下比较重要的文件有/dev/null,/dev/zero,/dev/tty,/dev/loop*,/dev/sd*。

/etc:

系统主要的配置文件几乎都放置在这个目录中,例如人员的账号密码文件,各种服务的启始档等。一般这些配置文件普通用户能读但不可修改。**FHS建议这个目录下不要放置可执行文件。

/lib:

系统的函数库非常多,**/lib下放的则是在开机时会用到的函数库,以及在/bin或者/sbin底下的指令会呼叫的函数库而已。

/media:

这个目录下放着可移动装置,软盘,光盘,DVD等一般都挂载于此。

/mnt:

如果要暂时挂载一些额外装置,一般可以挂载到这个目录下。

/opt:

给第三方软件放置的目录。

/run:

早期的FHS规定系统开机后所产生的各项信息应该要放在/var/run/目录下,新版的FHS则规范到/run下。/run可以使用内存来仿真。

/sbin:

管理员用来设定系统的命令,其他用户只能查看。/sbin下的为开机过程中所需要的,里面包括了开机,修复,还原系统所需要的指令。

/srv:

一些网络服务启动之后,这些服务所需要取用的数据目录。常见的服务比如WWW,FTP等。

/tmp:

放置暂时文件的地方,会定时删除。

/usr:

里面放置的数据属于可分享不可变动的。usr(unix software resource),unix操作系统系统软件资源。

  • /usr/bin:所有一般用户能够使用的指令。
  • /usr/sbin:非系统正常运作所需要的系统指令。
  • /usr/lib:与/lib功能相同。
  • /usr/local:第三方软件储存。
  • /usr/share:主要放置只读架构的数据文件,当然也包括共享文件,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据,因为几乎都是文本文件。
/var:

系统运作后慢慢占用磁盘容量,主要针对常态性变动文件,包括快取,日志,以及某些软件运作所产生的文件,包括程序文件,或者例如数据库文件等。

  • /var/cache:应用程序本身运作过程中会产生的一些暂存档。
  • /var/lib:程序本身执行过程中,需要使用到的数据文件放置目录。在此目录下各自的软件应该要有自己的目录。
  • /var/lock:
  • /var/log:日志文件的防止目录。
  • /var/mail:
  • /var/run:某些程序或服务启动后,会将他们的PID放在这里。
  • /var/spool:队列数据。

FHS建议可以存在的目录

/home:

其下存放着普通用户的家目录。

/lib< qual>:

用来存放与/lib不同格式的二进制函数库,例如支持64位的/lib64函数库等。

/root:

系统管理员的家目录。如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区槽中。

其他目录:

/lost+found:

这个目录是使用标准的EXT2/EXT3/EXT4文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置到这个目录下。不过使用的如果是xfs文件系统的话就不会存在这个目录了。

/proc:

这个目录本身就是一个虚拟文件系统,他放置的数据都是在内存当中,例如系统核心,行程信息,周边装置的状态及网络状态等等。因为这个目录下的数据都是在内存当中,所以本身并不占用任何磁盘空间。

/sys:

也是一个虚拟文件系统,主要也是记录核心与系统硬件信息较相关的信息。包括目前已加载的核心模块与核心侦测到的硬件装置信息等。

RHEL7目前的变化

FHS仅仅定义出了/以及/usr,/var的目录应该要放置的文件或者目录数据。下面列出RHEL7在目录的编排上与先前不同的地方:

  • /bin—->/usr/bin
  • /sbin—–>/usr/sbin
  • /lib——>/usr/lib
  • /lib64——>/usr/lib64
  • /var/lock—->/run/lock
  • /var/run—–>/run

感谢阅读,欢迎指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值