Linux文件系统
首先来看一下linux系统的硬盘分区管理相关概念:
对于Linux的分区通常可以使用fdisk命令工具和parted工具
对于分区表通常有MBR分区表和GPT分区表
对于磁盘大小小于2T的磁盘,我们可以使用fdisk和parted命令工具进行分区
对于MBR分区表的特点(通常使用fdisk命令进行分区)
所支持的最大磁盘大小:2T
最多支持4个主分区或者是3个主分区加上一个扩展分区
对于GPT分区表的特点(使用parted命令进行分区)
支持最大卷:18EB(1EB=1024TB)
最多支持128个主分区,所以对于GPT的分区表来说,基本就没有什么主分区和逻辑分区的区别了。
1、可以分为主分区、扩展分区、逻辑分区
2、硬盘采用hdX格式表示,X代表a.b.c.d
3、系统最多只有4个IDE设备,其中第一个IDE设备名称为hda,第4个为hdd
补充:
IDE: 一种较老的接口技术,价格低廉,兼容性强,传输速度可达133MB/s
SCSI: 主要应用于中、高端服务器中,支持热拔插,价格较高,其中UltraSCSI可达320MB/S,UltraSCSI640可达640MB/S
SATA: 主要用于PC上,串口硬盘,可达6gbps
SAS: 是一种串行链接的SCSI接口技术,向下兼容SATA,速度快
USB: 一种便携的存储设备,USB3.0理论最大传输速度可达500MB/s,现在最新的USB3.1Gen 2最高可达10Gbps
并口:同一线缆可以接多块设备,IDE和SCSI为并口硬盘;
串口:同一线缆只可以接一个设备,SATA、SAS和USB为串口,抗干扰能力强。
主分区:一个硬盘最多只能有4个主分区,主分区采用hdXN的格式,hdX为硬盘,N是1-4的数字,分别表示4个主分区,第一个硬盘的第一个主分区,表示为hda1,以此类推
扩展分区:扩展分区作为特殊的主分区需要占用硬盘分区表中4个分区记录中的1个记录
逻辑分区:逻辑分区只能建立在扩展分区中,可以建立文件系统。逻辑分区同样采用了hdXN 的格式,区别在于,逻辑分区的N是从5开始算的,第一个硬盘的第2个逻辑分区就为hda6
注意:IDE设备: hda2, hdb3等等
SCSI设备/SATA设备: sda2, sdb3等等
文件系统:EXT2和EXT3都是Linux操作系统默认使用的文件系统,EXT3属于日志文件系统,比较出色。swap文件系统在Linux系统的交换分区中使用,也是Linux系统默认支持的,一般设置为主机系统内存的2倍大小。其他的文件系统包裹 xfs、jfs 等,这些大多使用与商业的UNIX系统。FAT文件系统Linux可以读写,NTFS中能读,不能写
最经典的分配方案:
/boot:启动分区
swap:交换分区
/ :根分区
Linux操作系统和windows操作系统使用的文件系统是不一样的。
CentOS是EXT4格式 // 查询方式:cat /etc/fstab
Windows一般是NTFS
Linux根据文件形式主要将文件分为目录和普通文件,如下图:
Directory表示目录
Ordinary File表示普通文件
如果像上图一样把Linux的文件系统看做是一棵树,那么:
- 所有的Ordinary File都是叶子节点
- 含有子节点的节点都一定是目录,因为只有目录下才有子目录或者普通文件,普通文件下是没有子级目录的,还是很好理解吧
目录或者文件的名称长度不超过255个字符,文件或者目录是由以下字符构成:
- Uppercase letters (A-Z)
- Lowercase letters (a-z)
- Numbers (0-9)
- Underscore (_)
- Period(.)
- Comma(,)
注意:文件和目录是区分大小写的
文件扩展名
Linux对文件的扩展名是没有强制要求的,甚至可以说没有扩展名之类的概念。但是通常我们创建文件或者保存文件的时候都还是最好给弄一个文件扩展名,这样非常有利于理解文件的内容,方便管理
下面是CentOS的目录结构:
以下是对根目录下每个目录的简单解释:
/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中 |
/bin:/usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等 |
/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可 |
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt |
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/gateways、/etc/resolv.conf、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。注:/etc/X11存放与x windows有关的设置 |
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据 |
/lib:/lib64:/usr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules |
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found |
/mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载 |
/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE桌面软件,可以将该软件安装在该目录下。以前的Linux系统中,习惯放置在 /usr/local目录下option |
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等process |
/root:系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下 |
/sbin:/usr/sbin:/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。 |
/selinux:selinux软件目录,用于保证系统安全 |
/srv:服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内service |
/sys:类似于/proc的特殊文件系统,存放内核数据信息 |
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下 |
/usr:应用程序存放目录, /usr/bin 存放应用程序 /usr/share 存放共享数据 /usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件 /usr/local:存放软件升级包 /usr/share/doc: 系统说明文件存放目录 /usr/share/man: 程序说明文件存放目录,使用man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间 usr:user share resources/unix share resouces |
/var:放置系统执行过程中经常变化的文件,如: /var/log:随时更改的日志文件 /var/log/message:所有的登录文件存放目录 /var/spool/mail:邮件存放的目录 /var/run:程序或服务启动 |
使用建议:
- 用户应该将文件存储在自己的主目录及其子目录下
- 系统绝大多数设置都在/etc目录下
- 不要修改/或者/usr目录下的任何内容,除非你真的清楚你在做什么,也就是说/目录最好和安装好系统之初保持一致
- 大多数工具和应用软件程序都安装在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin
文件或者目录都有唯一的绝对路径,