您的位置:首页 > 运维架构 > Linux

Linux 文件系统结构介绍

2015-12-15 11:59 531 查看
Linux 操作系统有一些固定的目录。各种Linux 发行版的目录结构虽然不会一模一样,但是不会有很大差异。知道了这些目录的作用,不仅对你进行磁盘分区规划很有帮助,而且会让你以后的日常维护工作变得轻松。
Ubuntu 文件系统的主要目录如表2.2 所示。
表2.2 Ubuntu Linux 文件系统的主要目录
目   录
英文全名
用   途
/
/
整个目录结构的起始点 ,所有其它文件和目录都在它下面
/bin
Binaries
用来存放最常用的二进制命令
/boot
Boot
包含引导Linux 的主要文件 ,如grub 和内核文件 等
/dev
Devices
所有设备都在该目录下,包括硬盘和显示器等
/etc
etc
系统的所有配置文件都放在它下面
/home
Home
存放各用户的主目录 ($HOME) 及其文件和配置
/lib
Libraries
系统的库文件 ,有点像Windows 的Program Files
/lost+found
lost+found
存放 系统异常时丢失的文件 ( 如突然宕机) ,以利于恢复
/media
Media
加载各种媒体,如光盘、软盘等
/mnt
Mount
加载各种文件系统
/opt
Optionally
用于存放安装的“可选”程序
/proc
Processes
包含进程等信息 ,是内存的映射,不是真实目录
/root
Root
该目录是root 用户的根目录
/sbin
System-only binaries
存放系统专用的二进制命令
/sys
System
存放系统信息
/tmp
Temporary files
存放临时文件
/usr
User
存放 普通用户的应用程序 ,库文件和文档等
/var
Variable files
存放那些在时间、大小、内容上会经常变化的文件
表2.2 中各个目录的用途,你应该很了解才行。只要了解了各个目录的用途,你才能在硬盘分区时不至于犯下大的错误。
“分区”和“挂载点”
平时,我们在讨论Linux 的“分区”时,常常混淆“挂载点”和“分区”的概念。其实只要大家都能明白就可以,不必抠字眼。不过,作为Linux 系统管理员,我们还是应该弄明白这两个概念的差别。
我们平常所说的“/var 分区”,实际上说的是“挂载在/var 上的分区 ”,而“/var ”只是一个挂载点 。那么什么是“分区”呢?
在Linux 中,“分区”是一个一个的设备,放在/dev 目录下 。如果说IDE 硬盘,它们的名字应该是/dev/hda1、/dev/hda2 等;如果说SATA 或者SCSI 硬盘,它们的名字则是/dev/sda1 、/dev/sda2 等。
硬盘分区的表示方法
那么什么是hda 和sda 呢?它们分别是Hard Driver Number A 和SCSI Driver Number A 的简写,也就是说,hd 和sd 指出了硬盘的接口类型,后面的a 则是序号,表示第几块硬盘。第1 块 IDE 硬盘是hda ,第2 块 IDE硬盘是hdb ,依此类推;第1 块SCSI 硬盘用sda 表示,那么第2 块SCSI 就是用sdb 表示了,依此类推,往后则是sdc 、sdd 等。
实际上,sd 表示的不仅仅是SCSI 设备。除了IDE 设备外,SCSI 、SATA 、USB 、Firewire 等接口的存储设备都是以sd 表示的。
现在你应该已经知道,/dev/sdb2 指的是第2 块SCSI 硬盘的第2 个分区 ,而/dev/hda5 指的是第1 块IDE 硬盘的第5 个分区。
表2.3 Linux 硬盘分区表示方法
 
IDE 接口硬盘
SCSI 接口硬盘
 
整个硬盘的表示方法
/dev/hda
/dev/hdb
/dev/hdc
……
/dev/sda
/dev/sdb
/dev/sdc
……
 
硬盘分区的表示方法
/dev/hda1, /dev/hda2…
/dev/hdb1, /dev/hdb2…
/dev/hdc1, /dev/hdc2…
/dev/sda1, /dev/sda2…
/dev/sdb1, /dev/sdb2…
/dev/sdc1, /dev/sdc2…
旧版本的Linux 内核中,所有IDE 相关的驱动代码,不仅过于复杂,而且问题多多。于是,Linux 内核的开发者们从Kernel 2.6.19 开始,提供了基于libata 的PATA 驱动程序,使得IDE 设备可以像SCSI 设备那样使用。
所以,我们现在所使用的Ubuntu 中,无论你使用的是IDE 硬盘还是SATA 硬盘,你看到的设备都是/dev/sdx而不是/dev/hdx 。从此,/dev/hdx 不复存在。
需要注意的是,在Linux 中,硬盘分区还有另外一种表示方法,这种方法是在grub 中使用的 。grub 起源于Grand
Unified Bootloader ,是一个通用的计算机引导器,支持多种操作系统的多重引导 。在grub 中,不管是什么接口的存储设备,统统用hdx 来表示,其中x 是数字,从0 开始。比如,第1 块硬盘的第1 个分区,表示为(hd0,0) 。
Linux 分区指南
使用任何Linux 系统,都要有至少两个分区:一个是根分区,用“/ ”表示;另一个是swap (交换)分区。所以,最简单的分区方法就是:先创建swap 分区,剩下的所有空间分配给根分区“/ ”。
swap 分区的尺寸,最小应该和内存一样大,最大一般不超过内存的两倍大小 。
swap 分区就像Windows 的虚拟内存交换文件pagefile.sys ,系统在需要时会把它当作虚拟内存来使用。比方说在运行大型程序时、在内存优化时,或者在系统休眠时。系统休眠时,把整个内存的数据写入swap 分区,这就是为什么你的swap 分区的大小至少应该和内存一样大的原因。
此外,最好把/boot 也单独创建在一个分区上 。因为这个目录下的文件比较重要,万一分区损坏,系统可能无法启动。如果单独创建为一个分区,其它分区损坏就不会影响它,从而提高了系统的稳定性。一般情况下,/boot 分区不需要太大,128MB 就足够了。
至于其它分区,就要看你的实际需求了。
比方说,如果你的服务器会有很多用户登录上来放文件,那么/home 最好单独分区 ,并给予足够大的空间。
再比方说,如果你的服务器是要放数据库的,这个数据库可能会变得很大,那么/var 最好单独分区 ,并给予足够大的空间。因为数据库默认是放在/var 下面的 。
Web 服务器也是一样,因为Web 页面默认是放在/var 下面的 。所以,如果你认为会有人上传大量的文件,那么最好也要把/var 单独分区,并给予足够大的空间。
 
提示 :作为服务器,Hiweed 还建议把/tmp 单独作为一个分区 。因为大部分应用程序都会向这个目录写入临时文件,虽然每次Ubuntu 重新启动时这个目录会被清空,但是没有人会动不动重新启动服务器。
Linux 分区案例
Hiweed 在帮朋友的公司做系统架构时,在公司内部做了一台开发服务器,在机房里还有Web 服务器和数据库服务器。
开发服务器是给所以公司开发人员用的,他们要在“家目录”中存储大量的文件。平时,他们的工作站在启动时,是会自动将开发服务器上自己的“家目录”挂载到本地的。所以,这台服务器的/home 是用得最多的,而且需要比较大的空间。
此外,由于是开发服务器,我们还需要一个做版本管理的源代码仓库,这个仓库是放在/var 下面的。虽然源代码的文件尺寸不会特别大,不需要特别大的空间,但是这些代码非常重要,所以我们也要像保护/boot 那样保护它们。
所以,对于这台开发服务器,我们的分区方案(服务器硬盘共有80GB[10 GB] ,内存为1GB[512 MB] ),请见表2.4 。
表2.4 开发服务器分区方案
文件系统
挂 载 点
大   小
分区格式
/dev/sda1
/boot
254 MB[254]
ext2
/dev/sda2
/
10 GB[2]
ext4
/dev/sda5
( 无)
2 GB[768]
swap
/dev/sda6
/var
20.3 GB[2]
ext4
/dev/sda7
/home
46.8 GB[4.3]
ext4
/dev/sda8
/tmp
2 GB[768]
ext4
以上分区方案只是一个参考,实际分区方案应该根据自己的实际情况而定。
/etc/fstab 介绍
Linux 系统中的所有静态文件系统,全部描述在/etc/fstab 这个文件中。fstab 是File System Table 的简写,也就是“文件系统表”。系统启动时,正是通过fstab 中的信息挂载各个分区的。fstab 的文件系统条目有6 个字段,格式如表2.5 所示。
表2.5 fstab 格式
设   备
挂载点
格  式
挂载选项
是否备份
检查顺序
/dev/sdb2
/home
Ext4
Defaults
0
2
 
下面我们来介绍一下每个字段的含义,如表2.6 所示。
表2.6 fstab 各字段含义
字    段
描      述
设备
存储设备( 分区) 的名字或者UUID
挂载点
要挂载到的目的文件夹名称。挂载后,从该文件夹即可访问设备
格式
文件系统的格式,如:ext4
. 挂载选项
挂载的选项。和mount 命令的选项相同,详情可参考man mount
是否备份
启用/ 禁用dump 备份
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux server